当前位置: 首页 > 专利查询>清华大学专利>正文

一种大规模并行程序性能预测实现方法技术

技术编号:3856067 阅读:218 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于有代表性重放的大规模并行程序性能预测实现方法,该方法属于并行程序性能预测的技术领域,包括步骤:收集并行程序的通信序列和计算向量,分析各个进程计算的相似性并选取有代表性的进程,记录有代表性进程的通信内容,使用目标平台的一个计算节点重放有代表性进程,获取有代表性进程的顺序计算时间,用这些计算时间代替其它进程的计算时间;获取并行程序的通信记录;使用网络模拟器自动预测最终的程序性能。通过本发明专利技术能够使用很少的硬件资源,得到精确的并行程序预测性能。

【技术实现步骤摘要】

本专利技术涉及并行程序性能预测的

技术介绍
当前,大规模并行计算机包括成千上万个计算节点,在研制过程 中, 一般花费几年的开发时间和很高的人力和财力。对于这些计算机 的设计人员,在设计阶段能够预测某个应用在未来设计系统上的性能 对于提前发现系统瓶颈并改进系统设计具有重要意义。精确的预测某个应用在未来系统上的性能不但可以辅助设计未 来计算机,还可以帮助应用人员开发者在未来系统可用前,提前发现 应用程序的瓶颈,从而优化并改进程序性能。然而,精确的预测并行程序在未来系统上的性能是一件非常复杂 的问题。因为,并行程序的执行时间由程序中的顺序计算时间、通信 时间、以及它们之间的巻积三个因素决定。当前存在的网络模拟器能够很好模拟并行程序的通信时间,例如DIMEMAS和BigNetSim模 拟器。然而,当前的方法不能获得精确的并行程序中的计算时间。当 前国际上主要有三类方法用于估计程序中的顺序计算时间1、分析建模对并行程序中的顺序计算单元进行分析建模,得到 计算单元的时间。美国圣地亚哥超级计算中心的Snavdy等人(A. Snavely et al. A framework for application performance modeling and prediction. In SC,02, pages 1-17, 2002.)通过插装和硬件计数器等技术 收集程序的浮点、整数指令个数、访存模式等信息,以及目标系统的 机器特征,从而构建一个参数化模型来估计程序的顺序计算时间。但 是,随着体系结构和软件设计的复杂化,分析方法越来越难获得精确 的计算时间。例如,对于当前的超标量计算机,处理器能够乱序发射主流的多核计算机,共享资源的竟争 会对程序的性能产生复杂的影响,分析建模的方法很难捕捉这些影 响。2、 模拟技术模拟的技术被用来分析程序的行为,例如MPI-SIM 和BigSim模拟器。然而,周期精确的系统模拟器在模拟时间和资源 需求方面都远远超过实际的用户承受能力。当前对于高性能计算领 域,存在的模拟器都不能模拟大规模的并行应用。3、 测试和外推有一些研究人员通过在未来目标系统的原型系统 上实际测试来获得计算时间。直接测试的方法对于固定每个进程计算 规模的弱规模(weak-scaling)并行程序适用。但是对于固定整个问题 大小的强规模(strong-scaling)并行程序并不适用。因为,对于强规 模并行程序,程序中的顺序计算时间会随着总进程个数变化而变化。 此外,还有一些通过外推的方法来获取强规模并行程序的顺序计算时 间,但是外推的方法精度都比较低。总之,当前存在的技术不能获得并行程序中精确顺序计算时间, 尤其是对大规模的并行程序,从而导致并行程序的性能预测精度不 高。
技术实现思路
(一) 专利技术目的本专利技术的目的是提供一种基于代表性重放的大规模并行程序性 能预测实现方法,能精确地预测程序在目标大规模并行系统上的性 能。(二)
技术实现思路
,包括步骤 Sl:在主平台上收集并行程序中通信序列和计算向量; S2:分析并行程序各进程的计算相似性,且从中选出有代表性的 进程;S3:在主平台上执行并行程序,记录步骤S2中选取的有代表性进 程的每次通信内容;S4:在目标平台的一个节点上重放步骤S2得到的有代表性进程, 得到这些进程在目标平台上的顺序计算向量;S5:使用通信插装工具获得并行程序的通信记录;S6:将步骤S4得到的有代表性进程的顺序计算向量和步骤S5得到 的通信记录,输入网络模拟器,该模拟器输出并行程序的预测时间。其中,所述步骤S1包括S101:对程序中每个通信函数调用进行插装,按照通信函数调用 的时间顺序记录每次的通信类型,分别得到N个进程的通信序列,并 存储在本地日志文件中;S102:记录程序每个进程通信调用之间的计算时间开销,按照时 间先后顺序存取,分别得到N个进程的计算向量,并存储在本地曰志 文件中。其中,所述步骤S2包括S201:分析步骤S101获得的程序通信序列,把通信序列相同的 进程放入一组,得到T个进程组,其中T〈-N;S202:指定包含K个进程的进程组中的每个进程为一个单独的 类,其中K<=N;S203:按照如下公式计算任意两个进程间的距离,得到一个K 维的距离矩阵M,其中,x和y表示步骤S102获得的两个进程的计算向量,Xi和 yi表示计算向量的每个元素,m表示向量的维数。S204:在步骤S203中得到的距离矩阵M中选取距离具有最小值 的两个进程p和q,把p和q进程合并成一个新的类V;S205:按照以上公式重新计算类V与其他进程的距离,然后得到新的距离矩阵M;S206:重复步骤S204和步骤S205,直到合并到剩下一个进程类; S207:对步骤S206得到的进程组划分,得到X个进程组,从每 个进程组中选取距离进程组的计算向量空间质心最近的进程作为有 代表性进程,该步骤得到X个有代表性的进程,其中X〈-N。其中,在所述步骤S207之前还包括设定用于对S206得到的进程 组划分的阈值。其中,所述通信序列是按照时间顺序记录的每个进程产生的通信 调用类型。其中,所述计算向量是用来记录并行程序中每个进程的顺序计算性能的时间向量。一种基于上述方法的大规模并行程序性能预测实现系统,包括 用于在主平台上收集并行程序中通信序列和计算向量的模块; 用于分析并行程序各进程的计算相似性,且从中选出有代表性的进程的模块;用于在主平台上执行并行程序,记录步骤S2中选取的有代表性进 程的每次通信内容的模块;用于在目标平台的一个节点上重放步骤S2得到的有代表性进程, 得到这些进程在目标平台上的顺序计算向量的模块;用于使用通信插装工具获得并行程序的通信记录的模块;用于将步骤S4得到的有代表性进程的顺序计算向量和步骤S5得 到的通信记录,输入网络模拟器,该模拟器输出并行程序的预测时间 的模块。(三)有益效果使用本方法预测并行程序的性能具有如下关键特征和优点1、 基于有代表性重放技术获取并行程序中精确的顺序计算时间;2、 预测过程中使用的资源少,仅仅需要目标系统的一个计算节点;3、程序的预测过程自动化,不需要用户干预。 附图说明图l是根据本专利技术的基于有代表性重放的并行程序性能预测方法流程图2是图1中步骤S2的流程图3是步骤S3记录有代表性进程的每次通信内容示意图; 图4是步骤S4重放并行程序中代表性进程示意图; 图5深腾-F平台上Swee3D的预测结果; 图6深腾-B平台上Swee3D的预测结果; 图7正常执行和重放执行时间对比。具体实施例方式本专利技术提出的基于有代表性重放的并行程序性能预测方法,需要 两个硬件平台第一个是主平台,这个平台就是一般的集群系统,主平台的内存必须满足将预测的并行程序的需求;第二个是目标系统的一个子节点。这个节点用于收集有代表性进程的计算向量,下面会具 体介绍获取方法。如果目标平台的节点系统尚处于开发阶段, 一个目标平台节点的硬件模拟器是必须的。预测系统需要的软件平台包括 一个公开的网络模拟器SIM-MPI和一个通信记录收集软件FACT。结 合附图说明如下。 如图l所示Sl:收集并行程序的通信序列和计算向量。在主平台上运行并行 程序,使用插装的方法,对并行程序中每个通信函数调用进行插装,本文档来自技高网
...

【技术保护点】
一种大规模并行程序性能预测实现方法,其特征在于,包括步骤: S1:在主平台上收集并行程序中通信序列和计算向量; S2:分析并行程序各进程的计算相似性,且从中选出有代表性的进程; S3:在主平台上执行并行程序,记录步骤S2中 选取的有代表性进程的每次通信内容; S4:在目标平台的一个节点上重放步骤S2得到的有代表性进程,得到这些进程在目标平台上的顺序计算向量; S5:使用通信插装工具获得并行程序的通信记录; S6:将步骤S4得到的有代表性进程的 顺序计算向量和步骤S5得到的通信记录,输入网络模拟器,该模拟器输出并行程序的预测时间。

【技术特征摘要】

【专利技术属性】
技术研发人员:郑纬民陈文光翟季冬
申请(专利权)人:清华大学
类型:发明
国别省市:11[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利