《计算机系统性能测试与分析概论.ppt》由会员分享,可在线阅读,更多相关《计算机系统性能测试与分析概论.ppt(59页珍藏版)》请在优知文库上搜索。
1、计算机系统性能测试为什么要学这本门课?组装一台电脑 关心哪些指标?处理器主频 内存大小 如何评价一个计算机系统的性能?21.选哪些程序评测?选哪些程序评测?2.都测试哪些值?都测试哪些值?3.这些值如何汇总?这些值如何汇总?4.这些值真的能够反映计算机系统的性能吗?这些值真的能够反映计算机系统的性能吗?为什么要学这本门课?国家税务局购买一套高端容错机 IBM、HP 投标书:不同程序测试结果 XX银行搭建一个数据中心 处理器:英特尔E/L/X?I7可以吗?内存规模:32GB?64GB?128GB?网络:千兆、万兆、infiniband?存储阵列:SAS、SATA?光纤、IB接口?3如何预测一个应
2、用程序在某个计算机系统性能?例子:高性能计算机评测4 系统硬件处理能力不足?系统硬件处理能力不足?订票软件设计存在瓶颈?订票软件设计存在瓶颈?网络带宽不足?网络带宽不足?客户端客户端Web服务器服务器数据库服务器数据库服务器数据请求数据请求返回结果返回结果提出请求提出请求返回返回HTML如何了解负载特征,分析系统系统瓶颈?如何了解负载特征,分析系统系统瓶颈?例子:实验设计 如何设计一篇文章的实验部分?都要做哪些实验?为什么要做这些实验?都要测哪些指标?8课程目标 性能问题是和功能同等重要的问题 性能问题没有得到很好的重视,大家对其认识不足 基本概念 性能,频率,峰值速度,实测速度 基本方法和工
3、具 测量方法 数据处理和解释方法 程序优化的方法 基本观点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
4、&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 Symp
5、osium on Performance Analysis of Systems and Software HPCA,CGO,SC,SOSP etc.12课程要求 平时-40分 课堂:参与讨论,回答问题,出勤 课程作业:6次 考试-60分13特色 本课程的特色是:综合性 由于面向整个系统,所学过的关于操作系统、编译原理、计算机体系结构、CPU结构在内的各种知识都要能够综合使用,才能够很好地完成性能测试与优化的任务 实践性 本课程将安排若干测试练习和其它编程练习,让大家在实际操作中真正地理解有关内容,解决实际问题。14学完本课程的收获 正确设计论文中的实验部分 正确处理和解释实验数据 基准测试程
6、序的使用与开发 测量系统与程序参数的相关方法 系统的访存带宽和延迟 程序中的基本块个数、分支条数等 使用硬件计数器进行程序行为的测量 可用性、可管理性、功耗测试等 基于测试的优化技术15第一章 绪论 1.为什么进行性能分析 2.什么是性能161.为什么要进行性能分析 对设计者 要达到设计的目标有不同的可选方案,如何在其中选择最好的方案?世界上第一台千万亿次高性能计算机Roadrunner IBM Power处理器和 AMD Opteron处理器混合比例 通过分析、模拟和测试对比各个方案的性能、成本和功耗 设定期望 对消费者 购置的系统能否满足自己的要求 在一定的预算下获得最好的性能17性能分析
7、技术 性能分析技术 分析 数学建模 排队论 模拟 功能模拟器、性能模拟器 Trace-driven、全系统模拟 测试 实际测试18例子:并行程序性能 并行程序的性能行为:计算 通信 I/O19例子:并行程序性能 分析建模:程序特征 收集浮点指令、整数指令、访存记录、I/O访问、通信(消息类型、大小、方向等)机器性能 每条浮点/整数指令执行的cycle 访存指令时间 I/O性能 通信延迟、带宽 程序时间 Total execution time=comp+comm+I/O?20例子:并行程序性能 模拟的方法 Bigsim Dimemas SimpleScalar 输入:Trace、目标平台的参数
8、21例子:并行程序性能 测试的方法 采集负载特征:计算特征(PMU,Call Path profile)通信特征 I/O 特征 方法:静态分析(编译)动态测试(插装)22测试技术也是分析和模拟的基础各种方法的比较分析建模分析建模模拟模拟测量测量灵活性高高低成本低中高可信度低中高232.什么是性能2.1 性能与目标2.2 性能与度量方式2.3 性能与比较方式24性能与目标 目标不同做出的选择也不同 例子:实验设计:程序选择,平台选择 负载分析:Trace,Profile?模拟器:粗粒度、细粒度252.1 性能与目标 哪个性能更好 单个乘客的旅行时间?1天内可以运送多少乘客?26飞机华盛顿巴黎速度
9、mph载客量波音7476.5小时610470协和3小时1350132吞吐率mph*person286,700178,2002.1 性能与目标 集群服务器 排队系统 LSF,PBS 性能 Latency Throughput272.2 性能与度量方式 X系统是否比Y系统好?28X系统秒Y系统秒原有程序270192优化后的程序1031692.2性能与度量方式(2)Y系统比X系统好?29X系统GFLOPSY系统GFLOPS原有程序6591优化后的程序711032.2性能与度量方式(3)出现了什么问题?哪台系统更快?哪台系统更好?302.2性能与度量方式(4)X系统编译优化后减少了61%浮点运算 对这
10、个应用来说,X系统更快 对于哪个系统更好,没有简单的答案,需要根据使用的方式(目标)确定312.3性能与比较方式 如何比较这两个系统的性能?汇总多个数据32X系统tpsY系统tps负载A2010负载B10202.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个不同的结论332.3性能与比较方式(3)问题:哪个比较方式更合理
11、?为什么?其成立的条件是什么?342.4什么是性能总结 计算机系统的性能,与进行性能分析的目的密切相关,度量方式、性能比较方式都需要用系统的方法进行选择,才能得到准确的性能数据35第二章 性能的度量 1.现有的性能度量方式 2.什么是好的性能度量方式 3.性能度量方式分析36metric371.现有的性能指标 时钟频率 MIPS GFLOPS Time-程序的执行时间 Lat/BW 基准测试分数 SPEC CPU Linpack TPC Winstone 3DMark2001,3DMark2003 382.什么是好的性能度量方式 线性性(Linearity)符合人的直觉 例子:速度m/s 相反
12、的例子 可靠性 当A的性能度量值好于B时,如果系统A总是比系统B快,则称该度量方式是可靠的 相反的例子MIPS392.什么是好的性能度量方式(2)可重复性 容易测量 一致性 独立性 生产商试图影响度量方式403.1时钟频率 最简单,很常用但是最误导的性能度量方式 可重复,易测量,独立 非线性,不可靠 没有考虑到IPC的不同 没有考虑到其它子系统如内存、I/O的影响41423.2 MIPS Millions of Instructions executed Per Second 容易测量,可重复,独立 非线性,不可靠,不一致 每条指令所执行的内容在不同体系结构中是不同的 RISC,CISC433
13、.3 MFlops Millions of FLoating-point Operations executed Per Second 可重复 非线性,不可靠,不一致 不适合不执行浮点运算程序的系统 测量FLOPS并不容易,不同的浮点运算实现可能会带来不同的测试值 乘加、SIN,COS443.3 Mflops(2)MIPS和Mflops都以单位时间内完成的操作次数为性能度量 但是指令和浮点运算都不是人们最终关心的准确的操作 要定义最终用户关心的操作,比如每秒事务处理数,每秒web访问次数等等 实际测试的数据才是有意义的 将比较限定在可比的范围内,采用相同度量方式的两个程序,一般不能互相比较45
14、3.4单一程序的运行时间 程序执行时间:我们最终关心的是程序的执行时间 线性,可重复,可靠,独立,一致 因此,时间是一个好的度量 存在的问题 实际测量非常复杂或不可行 系统可扩展性无法体现 严格的可靠性度量是不存在的!46程序的执行时间 测量程序段的执行时间 Start_count=read_timer();Portion of program to be measuredStop_count=read_timer();Elapsed_time=(stop_count start_count)*clock_period;Measures“wall clock”time Includes I/O
15、 waits,time-sharing,OS overhead,“CPU time”-include only processor timeCopyright 2004 David J.Lilja473.5 基准测试程序 优点 一组有代表性的程序,比单个程序更能代表用户的负载状况 测试程序分数是程序运行时间的函数(线性或非线性)以运行时间直接为度量,或是以单位时间内完成的操作为度量 缺点 仍然不具有可靠性 可能不独立483.5.1 SPEC System Performance Evaluation Cooperative SPEC CPU(fp,int),SPEC WEB,SPEC Powe
16、r,SPEC HPC,SPEC OMP 493.5.1 SPEC(2)SPEC CPU的测量方法 测量每个程序的运行时间 正规化:除一个标准系统对该程序的运行时间,得到一个正规化后的值 算出上述正规化值的几何平均几何平均作为SPEC分数 问题:非线性503.5.1 SPEC(3)SPEC的产生办法 每一段时间更新,现在使用的是CPU2006,前边分别有SPEC 89,92,95,2000 向全世界征集候选程序 由SPEC会员投票决定 公平性?51SPEC CPU测试网站523.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 IOMeter53Jack Dongarra2010年11月TOP 500 List54RankSiteComputer/Year V