计算机系统性能测试与分析概论.ppt_第1页
计算机系统性能测试与分析概论.ppt_第2页
计算机系统性能测试与分析概论.ppt_第3页
计算机系统性能测试与分析概论.ppt_第4页
计算机系统性能测试与分析概论.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机系统性能测试 陈文光 清华大学计算机系,为什么要学这本门课?,组装一台电脑 关心哪些指标? 处理器主频 内存大小 如何评价一个计算机系统的性能?,2,选哪些程序评测? 都测试哪些值? 这些值如何汇总? 这些值真的能够反映计算机系统的性能吗?,为什么要学这本门课?,国家税务局购买一套高端容错机 IBM、HP 投标书:不同程序测试结果 XX银行搭建一个数据中心 处理器:英特尔E/L/X?I7可以吗? 内存规模:32GB?64GB?128GB? 网络:千兆、万兆、infiniband? 存储阵列:SAS、SATA?光纤、IB接口?,3,如何预测一个应用程序在某个计算机系统性能?,例子:高性能计算机评测,4,如何评测高性能计算机的性能?,例子:铁路网上订票系统,系统硬件处理能力不足? 订票软件设计存在瓶颈? 网络带宽不足?,为什么网络订票系统登录难、浏览慢、下单难,例子:铁路网上订票系统,网络订票系统体系结构:,客户端,Web服务器,数据库服务器,数据请求,返回结果,提出请求,返回HTML,如何了解负载特征,分析系统系统瓶颈?,例子:基于SAN存储系统,例子:实验设计,如何设计一篇文章的实验部分? 都要做哪些实验? 为什么要做这些实验? 都要测哪些指标?,8,课程目标,性能问题是和功能同等重要的问题 性能问题没有得到很好的重视,大家对其认识不足 基本概念 性能,频率,峰值速度,实测速度 基本方法和工具 测量方法 数据处理和解释方法 程序优化的方法 基本观点,9,内容安排(1),6月17日 引言和性能的量度(2课时) 实验结果处理中的统计学(4课时) 6月18日 系统测量和分析技术(4课时) 基准测试程序(4课时) 6月20日 线性回归模型(2课时) 实验设计(2课时) 考试(2课时),10,教材和参考书,教材 Measuring Computer Performance, by David J. Lilja, Cambridge University Press, 2000 参考书: The Art of Computer Systems Performance Analysis by Raj Jain, John Wiley & Sons Press, 1991 Computer Systems A Programmers Perspective by Randal E. Bryant and David R. O Hallaron, Person, 2003 Principles of Computer System Design, J. H. Saltzer, M. Frans Kaashoek.,11,主要会议,ACM SIGMETRICS IISWC (WWC) IEEE International Symposium on Workload Characterization ISPASS IEEE International Symposium on Performance Analysis of Systems and Software HPCA, CGO, SC, SOSP etc.,12,课程要求,平时-40分 课堂:参与讨论,回答问题,出勤 课程作业: 6次 考试-60分,13,特色,本课程的特色是: 综合性 由于面向整个系统,所学过的关于操作系统、编译原理、计算机体系结构、CPU结构在内的各种知识都要能够综合使用,才能够很好地完成性能测试与优化的任务 实践性 本课程将安排若干测试练习和其它编程练习,让大家在实际操作中真正地理解有关内容,解决实际问题。,14,学完本课程的收获,正确设计论文中的实验部分 正确处理和解释实验数据 基准测试程序的使用与开发 测量系统与程序参数的相关方法 系统的访存带宽和延迟 程序中的基本块个数、分支条数等 使用硬件计数器进行程序行为的测量 可用性、可管理性、功耗测试等 基于测试的优化技术,15,第一章 绪论,1. 为什么进行性能分析 2. 什么是性能,16,1.为什么要进行性能分析,对设计者 要达到设计的目标有不同的可选方案,如何在其中选择最好的方案? 世界上第一台千万亿次高性能计算机Roadrunner IBM Power处理器和 AMD Opteron处理器混合比例 通过分析、模拟和测试对比各个方案的性能、成本和功耗 设定期望 对消费者 购置的系统能否满足自己的要求 在一定的预算下获得最好的性能,17,性能分析技术,性能分析技术 分析 数学建模 排队论 模拟 功能模拟器、性能模拟器 Trace-driven、全系统模拟 测试 实际测试,18,例子:并行程序性能,并行程序的性能行为: 计算 通信 I/O,19,例子:并行程序性能,分析建模: 程序特征 收集浮点指令、整数指令、访存记录、I/O访问、通信(消息类型、大小、方向等) 机器性能 每条浮点/整数指令执行的cycle 访存指令时间 I/O性能 通信延迟、带宽 程序时间 Total execution time = comp + comm + I/O?,20,例子:并行程序性能,模拟的方法 Bigsim Dimemas SimpleScalar 输入: Trace、目标平台的参数,21,例子:并行程序性能,测试的方法 采集负载特征: 计算特征(PMU, Call Path profile) 通信特征 I/O 特征 方法: 静态分析 (编译) 动态测试 (插装),22,测试技术也是分析和模拟的基础,各种方法的比较,23,2. 什么是性能,2.1 性能与目标 2.2 性能与度量方式 2.3 性能与比较方式,24,性能与目标,目标不同做出的选择也不同 例子: 实验设计:程序选择,平台选择 负载分析:Trace, Profile? 模拟器:粗粒度、细粒度,25,2.1 性能与目标,哪个性能更好 单个乘客的旅行时间? 1天内可以运送多少乘客?,26,2.1 性能与目标,集群服务器 排队系统 LSF, PBS 性能 Latency Throughput,27,2.2 性能与度量方式,X系统是否比Y系统好?,28,2.2性能与度量方式(2),Y系统比X系统好?,29,2.2性能与度量方式(3),出现了什么问题? 哪台系统更快? 哪台系统更好?,30,2.2性能与度量方式(4),X系统编译优化后减少了61%浮点运算 对这个应用来说,X系统更快 对于哪个系统更好,没有简单的答案,需要根据使用的方式(目标)确定,31,2.3性能与比较方式,如何比较这两个系统的性能? 汇总多个数据,32,2.3性能与比较方式(2),绝对比较法 Perf(X)=(20+10)/2 = 15 Perf(Y)=(10+20)/2 = 15 相对比较法,以X为基准 Perf(X)=1 Perf(Y)=(0.5+2)/2 = 1.25 相对比较法,以Y为基准 Perf(Y)=1 Perf(X)=(2+0.5)/2 = 1.25 同样的数据,我们得出了3个不同的结论,33,2.3性能与比较方式(3),问题:哪个比较方式更合理? 为什么?其成立的条件是什么?,34,2.4什么是性能总结,计算机系统的性能,与进行性能分析的目的密切相关,度量方式、性能比较方式都需要用系统的方法进行选择,才能得到准确的性能数据,35,第二章 性能的度量,1.现有的性能度量方式 2.什么是好的性能度量方式 3.性能度量方式分析,36,metric,37,1. 现有的性能指标,时钟频率 MIPS GFLOPS Time - 程序的执行时间 Lat/BW 基准测试分数 SPEC CPU Linpack TPC Winstone 3DMark2001,3DMark2003 ,38,2. 什么是好的性能度量方式,线性性(Linearity) 符合人的直觉 例子:速度m/s 相反的例子 可靠性 当A的性能度量值好于B时,如果系统A总是比系统B快,则称该度量方式是可靠的 相反的例子MIPS,39,2. 什么是好的性能度量方式(2),可重复性 容易测量 一致性 独立性 生产商试图影响度量方式,40,3.1时钟频率,最简单,很常用但是最误导的性能度量方式 可重复,易测量,独立 非线性,不可靠 没有考虑到IPC的不同 没有考虑到其它子系统如内存、I/O的影响,41,42,3.2 MIPS,Millions of Instructions executed Per Second 容易测量,可重复,独立 非线性,不可靠,不一致 每条指令所执行的内容在不同体系结构中是不同的 RISC, CISC,43,3.3 MFlops,Millions of FLoating-point Operations executed Per Second 可重复 非线性,不可靠,不一致 不适合不执行浮点运算程序的系统 测量FLOPS并不容易,不同的浮点运算实现可能会带来不同的测试值 乘加、SIN, COS,44,3.3 Mflops(2),MIPS和Mflops都以单位时间内完成的操作次数为性能度量 但是指令和浮点运算都不是人们最终关心的准确的操作 要定义最终用户关心的操作,比如每秒事务处理数,每秒web访问次数等等 实际测试的数据才是有意义的 将比较限定在可比的范围内,采用相同度量方式的两个程序,一般不能互相比较,45,3.4单一程序的运行时间,程序执行时间: 我们最终关心的是程序的执行时间 线性,可重复,可靠,独立,一致 因此,时间是一个好的度量 存在的问题 实际测量非常复杂或不可行 系统可扩展性无法体现 严格的可靠性度量是不存在的!,46,程序的执行时间,测量程序段的执行时间 Start_count = read_timer(); Portion of program to be measured Stop_count = read_timer(); Elapsed_time = (stop_count start_count) * clock_period; Measures “wall clock” time Includes I/O waits, time-sharing, OS overhead, “CPU time” - include only processor time,Copyright 2004 David J. Lilja,47,3.5 基准测试程序,优点 一组有代表性的程序,比单个程序更能代表用户的负载状况 测试程序分数是程序运行时间的函数(线性或非线性) 以运行时间直接为度量,或是以单位时间内完成的操作为度量 缺点 仍然不具有可靠性 可能不独立,48,3.5.1 SPEC,System Performance Evaluation Cooperative SPEC CPU( fp, int ), SPEC WEB, SPEC Power, SPEC HPC, SPEC OMP ,49,3.5.1 SPEC(2),SPEC CPU的测量方法 测量每个程序的运行时间 正规化:除一个标准系统对该程序的运行时间,得到一个正规化后的值 算出上述正规化值的几何平均作为SPEC分数 问题: 非线性,50,3.5.1 SPEC(3),SPEC的产生办法 每一段时间更新,现在使用的是CPU2006,前边分别有SPEC 89, 92, 95, 2000 向全世界征集候选程序 由SPEC会员投票决定 公平性?,51,SPEC CPU测试网站,52,3.5.2其它benchmark,科学计算 HPL(top500所用的benchmark) HPCC( High Performance Computing Challenge Benchmark ) HPCG (High Performance Conjugate Gradient) SPEC HPC2002, SPEC OMP2001 商业计算 TPC SPEC web 底层 Membench IOMeter,53,Jack Dongarra,2010年11月TOP 500 List,54,Performance metrics summary,Copyright 2004 David J. Lilja,55,总结,性能的正确定义与评测目标,性能的度量方式和比较方式密切相关 性能的度量可以基本分为两类:基于时间的和基于单位时间内所完成的操作数的,两者之间可以换算 性能本质上是一个程序在一个系统上的指标,因此很难把多维空间映射到一维空间,用简单的一个数字来描述系统的性能,即绝对可靠的性能度量是不存在的,56,总结(2),基准测试程序,集成了某一类用户的典型负载,是进行程序性能度量的有力工具。但要特别注意所使用的基准测试程序和测试目标之间的相似性。,57,课后作业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论