一种利用模拟器多种运行模式反复切换进行并行模拟的方法技术

技术编号:3936887 阅读:332 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种利用模拟器多种运行模式反复切换进行并行模拟的方法,目的是减少模拟精度损失通并减少模拟时间。技术方案是构建运行模拟器的宿主机软硬件平台,服务器结点装有服务器端控制软件,模拟结点装有客户端控制软件;由服务器端控制软件对参与并行模拟的结点进行全局配置和初始化;服务器结点与模拟结点进行通信初始化;客户端控制软件在模拟结点上运行模拟器;各模拟结点以功能模拟、详细预热和详细模拟这三种模式并行模拟同一Benchmark程序,客户端控制软件监视本地性能指标文件和状态文件的变化,获取运行信息,将这些信息发送给服务器结点,服务器结点得到这些信息进行相应处理得到模拟结果。本发明专利技术加速效果明显且并行效率高,精度损失小。

【技术实现步骤摘要】

本专利技术涉及计算机系统体系结构的并行模拟方法,特别是在不改变Benchmark程序及其输入集的条件下,采用多个并行结点同时运行串行体系结构模拟器,利用模拟器支 持的多种运行模式的反复切换进行并行模拟的方法。
技术介绍
计算机体系结构模拟软件(简称模拟器)是一类对计算机系统行为进行模拟的软 件,它们一般是可配置的,可以对目标计算机系统的体系结构参数或技术方案进行配置,在 现有的计算机(称为宿主机)上模拟运行Benchmark程序(包括真实的基准测试程序或自 动生成的工作负载),获得目标系统在给定配置下的性能数据,为计算机系统的体系结构设 计决策提供参考。此外,基于模拟器还可对新计算机系统上的算法及软件进行调试与评估。模拟器系统通常以串行软件方式实现对硬件行为的模拟,其时间开销通常比在真 实目标机上运行相同Benchmark程序的时间大3个以上数量级。以常用的SPEC CPU2000 为例,要完成其中所有Benchmark程序和输入的组合约需模拟7. 2万亿条指令,按照当前 主流模拟器的速率,完全模拟所有指令大约需要5个月的时间。随着新型Benchmark和微 处理器的日益复杂、庞大,模拟器的速度瓶颈更加突出,已严重制约其应用效果,影响研究 人员对体系结构设计空间的高效探索。模拟开销通常由模拟器软件系统本身、所模拟执行 的Benchmark程序及其输入集共同决定。针对模拟速度问题,研究人员提出了许多减少模 拟时间的加速方案,主要包括1) Benchmark程序选择即从Benchmark程序簇中选取小部分而非全部Benchmark 程序进行模拟,利用主成分分析方法(Primary Component Analysis, PCA)等对簇中的 Benchmark程序进行聚类,研究人员只需从每类中选取一个代表性的Benchmark程序进行 模拟。2) Benchmark程序输入集缩减(Input Set Reduction)多数Benchmark程序通过 输入文件提供所处理的数据,例如,SPEC CPU中的Benchmark程序具有test,reference, train三种输入集,其中reference开销最大,通常专用于性能评估。研究人员可通过命令 行参数指定Benchmark程序只处理输入集中的部分数据或者重新构建新的规模较小的输 入集,例如 MinneSPEC。3)统计抽样模拟这种方法将Benchmark程序看作由一系列连续指令区间构成 的样本空间,基于统计抽样理论选择部分区间作为样本进行详细模拟,目前常用的方法包 括基于代表性抽样的 SimPoint方法和基于系统抽样的 SMARTS方法等。上述方法尽管能在一定程度上减少模拟时间,但存在以下问题1)因部分模拟而损失模拟精度。由于只模拟了一部分Benchmark程序或者输入 数据,因而与完整Benchmark程序负载特征相比有一定误差。此外,上述技术所能获得的加 速比总是与精度成反比,以抽样模拟为例,为提高模拟精度,必须增加详细模拟的样本区间 数,而这无疑会导致模拟开销的增加;2)需要预处理或后处理,实现复杂。缩减输入集要求用户对程序流程有深入了 解,而抽样方法如SimPoint等要求预先对每个Benchmark程序按照模拟点(Simulation Point)进行聚类,模拟结束后还需要对各模拟点的性能数据进行加权合并等后续处理操 作。上述操作不仅存在较大的额外开销,对于普通用户而言,由于实现复杂,实际应用中 采用的并不多。此外,上述方法的实现均依赖于具体Benchmark程序特征,当出现新的 Benchmark程序时通常需要重复该过程。长期以来,并行技术作为一种加速复杂问题计算求解过程的有效手段,广泛应 用于空气动力学、天气预报、海量数据处理等领域。计算机系统本身由大量并行工作的 部件单元构成,为利用这种潜在的并行性,研究人员也提出了利用并行技术加速模拟, 即所谓的并行模拟。目前已提出的并行模拟方法包括(1)设计开发并行模拟器。目前 已有的并行模拟器包括威斯康辛大学的WffT II > NASA ^ LAPSE 、加州大学洛杉矶分校的MPI-SIM、伊利诺伊大学香槟分校的 BigSim等。这些并行模拟器针对特定的目标系统 和应用进行了专门的设计,实现中也常常利用宿主机软硬件平台的特点提高并行模拟进 程间的同步、通信等的效率,因而可扩展性和可移植性较差。(2)将已有串行模拟器并行 化。例如,美国佛罗里达大学的研究人员基于SimpleScalar 开发了一个面向片上多核处 理器(Chip-Multiprocessor, CMP)的并行模拟器 SimpleCMP,斯坦福大学基于SimOS开发了 Parallel SimOS。这种方法利用已有代码避免重复开发,但需要对具体目标系统结构 中的大量子单元进行高效划分并映射到并行模拟进程,以优化进程间通信、同步等开销,因 此灵活性、通用性较差。 多数模拟器支持功能模拟和详细模拟两种运行模式。功能模拟仅模拟程序可 见的体系结构部件如内存、寄存器等的状态以保证程序功能的正确执行,不统计性能数 据;而详细模拟则要维护各种微体系结构部件如cache、分支预测器等的状态,需要考虑 对这些部件的访问延迟以获得性能信息。研究人员常利用功能模拟推进到自己感兴趣 的指令区间再进行详细模拟,但这种直接在功能模拟之后进行详细模拟会由于不精确 的微体系结构状态而影响模拟精度,为减少这种影响,有些模拟器还支持在功能模拟之 后详细模拟之前进行若干条指令的预热(Warmup) , Ξ^ι Τ^ ^ Wfj^fli^fe^ 基于详细模拟的预热,即对预热指令进行详细模拟以更新微体系结构状态,但这部分预热 指令的模拟结果并不记入最终的性能数据中。调查发现,功能模拟的速度通常快于详细模拟一个数量级以上,如果利用多台具 有通信功能的计算结点同时模拟同一 Benchmark程序的不同部分,同一结点上的各部分之 间利用模拟器运行模式的切换进行推进,则可达到多个结点并行模拟同一 Benchmark程序 的效果,可有效减少模拟时间。根据专利文献检索,以往的专利与文献中尚未见到利用已有串行模拟器的多种运 行模式的反复切换实现并行模拟的相关报道。只有一些关于并行模拟器构造方面的方法申 请了专利,如专利号分别为5956261、5442772的美国专利、专利号200710304653. 9的中国 专利,仅涉及如何处理并行模拟中的同步、通信及调度功能。
技术实现思路
本专利技术要解决的技术问题是提出一种利用模拟器多种运行模式反复切换进行 并行模拟的方法,在具有相互通信功能的多个计算结点上同时运行体系结构模拟器,将 Benchmark程序分割为若干包含连续指令流的区间,区间之间互不重叠,各模拟结点分配若 干指令区间进行详细模拟,在详细模拟的指令区间之间利用功能模拟快速推进,利用详细 预热减少模拟精度损失,通过模拟器三种运行模式(功能模拟、详细预热、详细模拟)的反 复切换实现多个结点并行模拟同一 Benchmark程序,达到减少模拟时间的效果。本专利技术技术方案如下第一步,构建运行模拟器的宿主机软硬件平台。宿主机软硬件平台由多个结点组 成,要求是结点间能够相互通信,本文档来自技高网
...

【技术保护点】
一种利用模拟器多种运行模式反复切换进行并行模拟的方法,其特征在于包括以下步骤:  第一步,构建运行模拟器的宿主机软硬件平台,宿主机软硬件平台由多个结点组成,结点间能够相互通信,结点是单处理器系统或对称多处理器SMP系统,处理器是单核处理器或片上多核处理器CMP,结点分为服务器结点和模拟结点;服务器结点只有一台,接收、处理、存储模拟结点传来的性能、状态数据;启动模拟结点,对模拟结点进行配置和控制;接收用户配置信息,为其他工具软件提供各模拟结点的状态信息;模拟结点有N台,N为正整是否位于[0,1];  ●检查文件名的取值是否符合操作系统对文件名的命名要求,并确定是否可在服务器结点成功创建空白的全局性能指标文件和状态文件;  2.2.2若服务器结点配置检查通过则转2.2.3,否则转2.2.4;  2.2.3依次检查所有并行模拟结点的序号的取值是否唯一且是否是位于[1,N]的整数,若是唯一且是位于[1,N]的整数则执行2.3,否则在屏幕上输出错误信息并退出模拟;  2.3生成可远程启动模拟结点客户端的shell脚本文件并通过该文件启动模拟结点客户端控制软件;  第三步,各模拟结点的客户端控制软件完成本地初始化工作,并将初始化状态上报给服务器结点,具体流程是:  3.1根据性能指标文件的文件名创建空文件;  3.2根据状态文件的文件名创建空文件;  3.3将初始化状态消息发送给服务器结点,报告是否运行成功,初始化状态信息包括模拟结点序号、初始化是否成功、初始化时间三个字段,字段与字段之间以“:”进行分隔;  第四步,服务器结点与模拟结点进行通信初始化,接收模拟结点上报的初始状态信息,具体流程如下:  4.1服务器端控制软件执行shell脚本后进入监听状态;  4.2如果接收到模拟结点客户端上报的初始化状态信息,将其保存到全局状态文件中;  4.3若有模拟结点未上报初始化状态信息或上报初始化错误,则打印相关提示信息并结束运行,否则服务器结点与模拟结点通信初始化完毕;第五步,客户端控制软件在模拟结点上运行模拟器,具体流程是:  5.1生成运行模拟器的命令,命令参数包括本地性能指标文件路径以及文件名,本地状态文件路径以及文件名,本结点的排序,指令区间大小,预热比率w;  5.2执行运行模拟器的命令,启动模拟器;  5.3若模拟器执行成功,则向服务器端上报本模拟结点的启动状态和时间信息,否则向服务器端上报错误信息并退出;第六步,...

【技术特征摘要】

【专利技术属性】
技术研发人员:徐传福车永刚王勇献褚瑞王正华彭宇行
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43[中国|湖南]

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

1