计算机系统性能预测模型综述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为当前的一个研究热点。本文将对当前计算 机系统的性能预测的现状进行深入的分析 和总结,并提出这个领域的未来发展方向。 本文主要分为以下四个部分,第一部分介绍 性能预测的概念和方法,指出该研究的目标 和意义,第二部分总结现有国内外的研究状 况,对性能预测模型分三类进行介绍;第三 部分是对各种预测模型进行分析和评价,指 出其存在的优缺点;最后本文提出对性能预 测方面研究的展望。
程序的轮廓(Application Profiles):计
算出一个应用程序在执行的过程中独立某 个特定的机器的操作统计。
回卷的方法(Convolution Methods): 数学的映射程序的轮廓到机器的特征,得到 最后的性能预测。
对于这方面研究,美国圣地亚哥数据中 心 的 PMAC ( Performance Modeling and Characterization)工程做了很多很好的工作。 他们的研究主要针对访存密集型应用,他们 的研究基于两个经验规则(rules of thumb): 单处理器上的程序性能主要是它存储操作 的函数;一个程序的可扩展性主要是它互连 特性的一个函数。
计算机系统的性能预测就是指在一个 给定的计算机系统上产生一个应用程序运 行时间的估计。对应用程序的性能进行精确 预测在很多方面具有重要意义:体系结构设 计者可以用它来评测某种未来的计算机体 系结构的性能;编译器设计者需要在未来的 机器上评估所开发出的编译器性能;软件开 发者需要了解机器的性能来优化他们的软 件代码。
在测量的过程中他们主要使用了工具 MAPS 和 MetaSim 来得到机器的特征和程 序的轮廓。
MAPS ( Memory Access Pattern Signature):是一个探测器,它可以用来测 量或决定一个单处理器或 SMP 机器节点随着 问题规模的大小和存取类型的差别所能达 到 的 速 率 。 下 图 显 示 的 是 在 Power3 NightHawk II 处理器上步长为一的存储操 作,从中可以看出该机器的存储器性能。
4 总结和研究展望
本文主要分析和总结了性能预测的三 种经典模型,指出他们存在的优缺点。可以 看出,这些方法都存在一些不足,还有很大
的改进空间。同时,以上介绍的现有的预测
模型主要是集中串行程序的预测,对于并行
程序的性能分析研究工作很少。主要由于并
行应用程序的性能预测是复杂的,它是程序
算法、编译器、操作系统、处理器的体系结
参考文献
[1] A. Snavely, N. Wolter, and L. Carrington, “Modeling Application Performance by Convolving Machine Signatures with Application Profiles”, IEEE 4th Annual Workshop on Workload Characterization, Austin, Dec. 2, 2001. [2] D. Ofelt and J. L. Hennessy, “Efficient Performance Prediction for Modern Microprocessors” SIGMETRICS, pages 229-239, June 2000. [3] D. J. Kerbyson, H. Alme, A. Hoisie, F. Petrini, H. Wasserman, M. Gittings, “Predictive Performance and Scalability Modeling of a Large-Scale Application”, Supercomputing 2001. [4] A. Snavely, N. Wolter, L. Carrington, R. Badia, J. Labarta, A. Purkasthaya, “A Framework to Enable Performance Modeling and Prediction”, Supercomputing 2002. [5] L. Carrington, N. Wolter, and A. Snavely, “A Framework for Application Performance Prediction to Enable Scalability Understanding”, Scaling to New Heights
n
∑ MetaSim Num = (Wt.BBi * RateBBi ) i =1
在这个公式中 Wt BBi 指该基本块动态
存储指令占程序的比例,RateBBi 是该基本 块通过回卷的方法得到的运行时所能达到 的带宽。通过这个公式可以得到程序中每个 基本块中访存带宽的总和。对这个公式进行 修改得到下面的公式:
现在主要有两类模拟器,一是仿真器, 另一个是基于事件的模拟器。仿真器实际执 行程序中每条指令,精度高,但是时间最长。 基于事件的模拟器运行在所收集的事件上, 一个应用程序首先需要在插装工具下运行, 产生一系列的重要事件的记录,然后把这些 记录保存在一个文件中,模拟器在这些事件 的驱动下执行。基于事件的模拟器比仿真器 的模拟时间短,而且具有可重复性。它的缺 点是很难处理数据相关性的影响,除非收集 足够多的信息。 2.2 基于程序轮廓的方法
1 研究的目的和意义
引言
对计算机系统的性能进行自动的预测 和评价具有很大的挑战性。在现在的计算机 系统中,软件的规模越来越大,复杂度越来 越高;处理器方面也采用了大量精心设计 的、旨在提高系统性能的新技术,例如:分 支预测、超标量、乱序发射、超线程、多核 心技术等。这些技术的引入对计算机系统的 性能进行自动预测和评价变得越来越复杂。 现在,我们再也不能紧紧凭借处理器的频率 就可以简单预测某个应用程序的运行时间。 因此,对计算机系统性能的进行自动预测成
中提取有代表性的一部分数据,同时保持原 有数据的有效性,从而达到减少模拟时间的 效果。
经典的基于程序轮廓的预测方法在预 测现代的微处理器上存在很大缺陷,由于现 代微处理器的乱序发射、超标量等技术的引 入,导致用基本块隔离的技术已经不能精确 预测程序性能。Stanford 大学 Hennessy 带领 的一个小组,提出一种 Pairwise 算法可以有 效解决经典模型的一些缺陷。他们算法的主 要思想是在调度每个基本块的时候,不单考 虑每个基本块的执行时间,也要考虑每个基 本块对它相邻的基本块的时间影响,这样可 以有效的避免上面提到的乱序发射、超标量 带来的性能预测挑战,但该算法依然不能很 好的处理由于数据 cache 造成的影响。
得到性能的预测。可以分为以下三个部分:
先单独分析机器的特性,得到机器的一个特
征描述,然后静态的分析程序轮廓,通过机
器特征和程序轮廓的某种映射关系而得到
程序的性能预测。
机器的特征(Machine Signatures):
主要是机器对一些基本的操作运算的速率,
这些基本操作运算独立于特定的应用程序。
例如,存储带宽、cache 大小等。
基于程序轮廓(Profile-based)方法通 过使用插装工具(Instrumentation Tool)运 行应用程序一次,然后产生这个应用程序的 统计信息。这个统计信息包括,程序中基本 块的个数,每个基本块的起始位置,每个基 本执行的次数等信息。然后把这些统计信息 输入一个分析工具,最后得到程序运行时间 的一个估计。这种方法需要插装工具引入的 额外开销应该尽可能的小,分析阶段理想情 况下需要分析每条指令然后产生程序运行
n
∑ MFLOPs = (Wt.BBi * RateBBi * IntensityBBi ) i =1 在这个公式中,IntensityBBi 指该基本块
中浮点操作和访存操作的比例,通过这个公 式就可以得到访存密集型应用的性能预测。
3 对现有模型的分析和评价
对于性能预测的三种模型,基于模拟的 方法、基于程序轮廓的方法和回卷的方法, 下面着重分析其存在的优缺点。
现在对计算机系统性能进行自动的预 测和评价主要存在以下难点和挑战:
超标量影响:现在的处理器都是超标量
作者简介:翟季冬(1981-),男(汉族),黑龙江,博士研究生。
Email: dijd03@mails.tsinghua.edu.cn 联系人: 郑纬民,教授,Email: zwm-dcs@tsinghua.edu.cn
在机器特征和程序轮廓之间产生某种 映射关系的模型,这种预测方法主要是针对 访存密集型的应用会产生很好的预测效果, 因为在性能预测方面重点强调了存储子系 统的对于程序的影响。对于计算密集型的应 用,美国 Rice 大学的 G. Marin 等人提出的 分析程序中的动态的控制流程图(Control Flow Graph CFG)来解决计算密集型的应用 程序性能预测,取得了很好的结果。
2.1 基于模拟的方法
基于模拟的方法(Simulation-based)进 行性能预测,首先需要有一个将分析的某种 体系结构的模拟器,然后在这个模拟器上运 行应用程序的每个动态指令。由于每个指令 被模拟,所以模拟器能够产生一个应用程序 精确的性能预测。使用模拟器的缺点主要 是,由于程序中每个动态指令都需要模拟, 所以模拟的时间会很长。
构和互连网络等一系列影响因素的函数。因
此未来我们可以在现有串行程序预测模型
的基础上分析并行程序的性能。这是一个很
具有挑战性的工作,但随着大规模数据的不
断涌现,对计算机的处理能力要求越来越
高,我们可以预知,在未来的发展中,并行
程序将起着越来越重要的作用。因此对于并
行程序的性能预测将具有了很深远的意义。
这个过程可以用下面的公式来表示,其
中程序的执行时间用 Tprogram 表示,它是所有
基本块执行时间的总和;Ti 表示每个基本块
的执行时间, Counti 表示每个基本块执行
的次数:
numBBs
∑ Tprogram =
Ti *Counti
i=0
2.3 回卷预测模型
这种方法主要是隔离出每个影响性能
预测的因素,最后把这些因素合成到一起,
表 1 MetaSim 采集的信息
回卷的方法:回卷的方法就是映射机器 特征和程序的轮廓,得到程序在单个处理器
基于模拟的方法由于可以模拟每条指 令的执行,所以可以比较精确的预测程序的 性能。但是,它的缺点也是明显的,模拟的 时间通常也是难以让人接受的。所以现在有 很多研究机构正研究如何从全部的数据集
4
3
Leabharlann Baidu
上的性能。通过把 MetaSim 得到的信息映射 到通过 MAPS 得到的曲线上,就可以得到程 序预计运行中的存取带宽。通常访存密集型 的应用性能主要由机器的存取速率决定。这 样我们就可以得到下面的一个公式:
图 1 MAPS 产生的机器特征
MetaSim 是一个运行时事件采集库,能 够在程序运行的过程中统计本地存储访问 操作,同时捕获该程序中存储的操作类型。 对于某种特定的机器配置参数,通过处理程 序的地址流信息和用户提供的关于存储子 系统的机器配置参数,它能够产生一个应用 程序轮廓。MetaSim 把存储操作类型的信息 和每个基本块中的动态指令关联,得到每个 基本块中的程序轮廓,包括访存指令的技 术,访存指令的类型,访存指令和计算指令 的比例,各级 cache 的命中率。表 1 是 NPB 中 CG 程序使用 MetaSim 模拟的输出结果, 我们通过这个表格可以看到,这三个基本块 的访存操作指令占全部程序的 99%以上。
的,这意味着它们在一个周期内处理器内部 可以同时发射多条指令。具有多发射的处理 器,当程序中一个基本块内的指令不能填满 全部的发射槽时,就需要后继的基本块指令 来填满发射槽。这种重叠现象对性能预测会 产生很大的影响。
乱序发射的影响:处理器的乱序发射功 能允许不按照程序中指令的顺序把指令发 射到处理器的功能部件上。所以,当一个基 本块内部相关指令导致处理器延迟时,在两 个基本块中独立的指令就可以交叉执行。这 样连续的两个基本块执行时间可以比分别 执行时间要短。
多核技术的引入,导致大量并行程序的 出现。对并行程序,通信的频率和带宽都将 影响程序的性能。此外,数据相关性、流水 线的起始、存储器层次的带宽和延迟的影响 都对性能的自动预测产生巨大的挑战。
2 研究现状
计算机系统的性能预测模型主要有三 类:基于程序模拟的性能分析,这种模型可 以比较精确的预测程序的性能,但是需要很 长的时间才能够得到程序的性能;基于程序 轮廓(Profile)的性能分析,这种方法的速 度会比较快,但是需要考虑指令之间相互作 用;通过在机器特征和程序轮廓中进行某种 映射关系来预测程序的性能。
计算机系统性能预测模型综述 1
翟季冬,陈文光,郑纬民 (清华大学 计算机科学与技术系 北京 邮编 100084)
文摘:计算机系统的性能预测就是在一个给 定的计算机系统上产生一个应用程序运行 时间的估计。精确的系统预测模型有很多用 途:可以用来评价未来体系结构,优化当前 应用程序性能。本文首先介绍了性能预测模 型的概念和方法,在总结了当今国外著名高 校和研究机构提出的性能预测模型后,本文 归纳出三种经典的性能预测模型,并对这三 种模型进行分析和评价。最后,本文指出在 性能预测方面的研究方向和展望。 关键词:性能预测,性能分析
2
时间的估计,所以分析的时间和指令的数量 成正比。
经典的基于程序轮廓的方法包括两个 阶段,第一个阶段是插装分析应用程序,得 到在运行中每一个基本块的运行次数,第二 个阶段在一个简单流水线模拟器上调度每 一个基本块,得到每个基本块的执行时间, 然后乘以每个基本块的执行次数,最后相加 得到这个程序的一个执行时间估计。