CN101799767A - 一种利用模拟器多种运行模式反复切换进行并行模拟的方法 - Google Patents

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

Info

Publication number
CN101799767A
CN101799767A CN201010118457A CN201010118457A CN101799767A CN 101799767 A CN101799767 A CN 101799767A CN 201010118457 A CN201010118457 A CN 201010118457A CN 201010118457 A CN201010118457 A CN 201010118457A CN 101799767 A CN101799767 A CN 101799767A
Authority
CN
China
Prior art keywords
simulation
node
file
server
control software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010118457A
Other languages
English (en)
Other versions
CN101799767B (zh
Inventor
徐传福
车永刚
王勇献
褚瑞
王正华
彭宇行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN 201010118457 priority Critical patent/CN101799767B/zh
Publication of CN101799767A publication Critical patent/CN101799767A/zh
Application granted granted Critical
Publication of CN101799767B publication Critical patent/CN101799767B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种利用模拟器多种运行模式反复切换进行并行模拟的方法
技术领域
本发明涉及计算机系统体系结构的并行模拟方法,特别是在不改变Benchmark程序及其输入集的条件下,采用多个并行结点同时运行串行体系结构模拟器,利用模拟器支持的多种运行模式的反复切换进行并行模拟的方法。
背景技术
计算机体系结构模拟软件(简称模拟器)是一类对计算机系统行为进行模拟的软件,它们一般是可配置的,可以对目标计算机系统的体系结构参数或技术方案进行配置,在现有的计算机(称为宿主机)上模拟运行Benchmark程序(包括真实的基准测试程序或自动生成的工作负载),获得目标系统在给定配置下的性能数据,为计算机系统的体系结构设计决策提供参考。此外,基于模拟器还可对新计算机系统上的算法及软件进行调试与评估。
模拟器系统通常以串行软件方式实现对硬件行为的模拟,其时间开销通常比在真实目标机上运行相同Benchmark程序的时间大3个以上数量级。以常用的SPEC CPU2000[J.Henning等,SPEC CPU2000:Measuring CPU Performance in theNew Millennium,Computer,2000;J.Henning等,SPEC CPU2000:在新千年测量CPU性能,Computer,2000]为例,要完成其中所有Benchmark程序和输入的组合约需模拟7.2万亿条指令,按照当前主流模拟器的速率,完全模拟所有指令大约需要5个月的时间。随着新型Benchmark和微处理器的日益复杂、庞大,模拟器的速度瓶颈更加突出,已严重制约其应用效果,影响研究人员对体系结构设计空间的高效探索。模拟开销通常由模拟器软件系统本身、所模拟执行的Benchmark程序及其输入集共同决定。针对模拟速度问题,研究人员提出了许多减少模拟时间的加速方案,主要包括[Joshua J.Yi等,Simulation of ComputerArchitectures:Simulators,Benchmarks,Methodologies,and Recommendations,IEEETransactions on Computer,2006;Joshua J.Yi等,计算机体系结构模拟:模拟器,Benchmark基准程序,方法以及未来研究推荐,IEEE Transactions on Computer,2006]:
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[A.KleinOsowski等,MinneSPEC:A New SPEC Benchmark Workload for Simulation-Based ComputerArchitecture Research,Computer Architecture Letters,2002;A.KleinOsowski等,MinneSPEC:一个新的用于基于模拟的计算机体系结构研究的SPEC Benchmark负载,Computer Architecture Letters,2002;]。
3)统计抽样模拟:这种方法将Benchmark程序看作由一系列连续指令区间构成的样本空间,基于统计抽样理论选择部分区间作为样本进行详细模拟,目前常用的方法包括基于代表性抽样的SimPoint[T.Sherwood等,AutomaticallyCharacterizing Large Scale Program Behavior,ASPLOS 2002;T.Sherwood等,大规模程序行为的自动特征化,ASPLOS 2002]方法和基于系统抽样的SMARTS[R.Wunderlich等,SMARTS:Accelerating Microarchitectural Simulationvia Rigorous Statistical Sampling,ASPLOS 2002;R.Wunderlich等,SMARTS:采用严格的统计抽样加速微体系结构模拟,ASPLOS 2002]方法等。
上述方法尽管能在一定程度上减少模拟时间,但存在以下问题:
1)因部分模拟而损失模拟精度。由于只模拟了一部分Benchmark程序或者输入数据,因而与完整Benchmark程序负载特征相比有一定误差。此外,上述技术所能获得的加速比总是与精度成反比,以抽样模拟为例,为提高模拟精度,必须增加详细模拟的样本区间数,而这无疑会导致模拟开销的增加;
2)需要预处理或后处理,实现复杂。缩减输入集要求用户对程序流程有深入了解,而抽样方法如SimPoint等要求预先对每个Benchmark程序按照模拟点(Simulation Point)进行聚类,模拟结束后还需要对各模拟点的性能数据进行加权合并等后续处理操作。上述操作不仅存在较大的额外开销,对于普通用户而言,由于实现复杂,实际应用中采用的并不多。此外,上述方法的实现均依赖于具体Benchmark程序特征,当出现新的Benchmark程序时通常需要重复该过程。
长期以来,并行技术作为一种加速复杂问题计算求解过程的有效手段,广泛应用于空气动力学、天气预报、海量数据处理等领域。计算机系统本身由大量并行工作的部件单元构成,为利用这种潜在的并行性,研究人员也提出了利用并行技术加速模拟,即所谓的并行模拟。目前已提出的并行模拟方法包括:(1)设计开发并行模拟器。目前已有的并行模拟器包括威斯康辛大学的WWT II[S.Murkerjee等,Fast and Portable Parallel Architecture Simulation:Wisconsin WindTunnel II,IEEE Concurrency,2000;S.Murkerjee等,快速可移植的并行体系结构模拟:WWWT II,IEEE Concurrency,2000]、NASA的LAPSE[Phillip M等,Adistributed memory lapse:parallel simulation of message-passing programs,SIGSIM,1994;[Phillip M等,分布式存储的LAPSE:消息传递程序的并行模拟,SIGSIM,1994]、加州大学洛杉矶分校的MPI-SIM[Sundeep P等,Mpi-sim:Using parallelsimulation to evaluate mpi programs,IEEE Winter Simulation Conference,1998;Sundeep P等,Mpi-sim:采用并行模拟评估MPI程序性能,IEEE Winter SimulationConference,1998]、伊利诺伊大学香槟分校的BigSim[Gengbin Zheng等,BigSim:Aparallel simulator for performance prediction of extremely large parallel machines,IPDPS 2004;Gengbin Zheng等,BigSim:一个用于极大规模并行机器性能预测的并行模拟器,IPDPS 2004]等。这些并行模拟器针对特定的目标系统和应用进行了专门的设计,实现中也常常利用宿主机软硬件平台的特点提高并行模拟进程间的同步、通信等的效率,因而可扩展性和可移植性较差。(2)将已有串行模拟器并行化。例如,美国佛罗里达大学的研究人员基于SimpleScalar[T.Austin等,SimpleScalar:An Infrastructure for Computer System Modeling,Computer,2002;T.Austin等,SimpleScalar:计算机系统建模的基础环境,Computer,2002]开发了一个面向片上多核处理器(Chip-Multiprocessor,CMP)的并行模拟器SimpleCMP[M.Chidester等,Parallel Simulation of Chip-Multiprocessor Architecture,PARSIM 2002;M.Chidester等,片上多处理器体系结构的并行模拟,PARSIM 2002],斯坦福大学基于SimOS开发了Parallel SimOS[Robert E,Parallel SimOS:Scalability andPerformance for Large System Simulation,PhD thesis,2007;Robert E,并行SimOS:大规模系统模拟的可扩展性和性能,博士学位论文,2007]。这种方法利用已有代码避免重复开发,但需要对具体目标系统结构中的大量子单元进行高效划分并映射到并行模拟进程,以优化进程间通信、同步等开销,因此灵活性、通用性较差。
多数模拟器支持功能模拟和详细模拟两种运行模式。功能模拟仅模拟程序可见的体系结构部件如内存、寄存器等的状态以保证程序功能的正确执行,不统计性能数据;而详细模拟则要维护各种微体系结构部件如cache、分支预测器等的状态,需要考虑对这些部件的访问延迟以获得性能信息。研究人员常利用功能模拟推进到自己感兴趣的指令区间再进行详细模拟,但这种直接在功能模拟之后进行详细模拟会由于不精确的微体系结构状态而影响模拟精度,为减少这种影响,有些模拟器还支持在功能模拟之后详细模拟之前进行若干条指令的预热(Warmup)[W.Hadkind等,Accelerated Warmup for Sampled MicroarchitectureSimulation,ACM Transactions on Architecture and Code Optimization,2005;W.Hadkind等,用于抽样微体系结构模拟的加速预热技术,ACM Transactions onArchitecture and Code Optimization,2005],当前最主要的预热方法是基于详细模拟的预热,即对预热指令进行详细模拟以更新微体系结构状态,但这部分预热指令的模拟结果并不记入最终的性能数据中。
调查发现,功能模拟的速度通常快于详细模拟一个数量级以上,如果利用多台具有通信功能的计算结点同时模拟同一Benchmark程序的不同部分,同一结点上的各部分之间利用模拟器运行模式的切换进行推进,则可达到多个结点并行模拟同一Benchmark程序的效果,可有效减少模拟时间。
根据专利文献检索,以往的专利与文献中尚未见到利用已有串行模拟器的多种运行模式的反复切换实现并行模拟的相关报道。只有一些关于并行模拟器构造方面的方法申请了专利,如专利号分别为5956261、5442772的美国专利、专利号200710304653.9的中国专利,仅涉及如何处理并行模拟中的同步、通信及调度功能。
发明内容
本发明要解决的技术问题是:提出一种利用模拟器多种运行模式反复切换进行并行模拟的方法,在具有相互通信功能的多个计算结点上同时运行体系结构模拟器,将Benchmark程序分割为若干包含连续指令流的区间,区间之间互不重叠,各模拟结点分配若干指令区间进行详细模拟,在详细模拟的指令区间之间利用功能模拟快速推进,利用详细预热减少模拟精度损失,通过模拟器三种运行模式(功能模拟、详细预热、详细模拟)的反复切换实现多个结点并行模拟同一Benchmark程序,达到减少模拟时间的效果。
本发明技术方案如下:
第一步,构建运行模拟器的宿主机软硬件平台。宿主机软硬件平台由多个结点组成,要求是结点间能够相互通信,结点可以是单处理器系统或对称多处理器SMP(Symmetric Multiprocessors)系统,处理器可以是单核处理器或片上多核处理器CMP(Chip Multiprocessors)。结点分为两类:服务器结点和模拟结点。服务器结点只有一台,接收、处理、存储模拟结点传来的性能、状态数据;启动模拟结点,对其进行配置和控制;接收用户配置信息,为其他工具软件(如可视化工具等)提供各模拟结点的状态信息。模拟结点有N台(N为正整数),根据服务器结点的配置启动模拟器,对本机的模拟过程进行控制;将本结点模拟器输出的性能、状态信息上报给服务器结点。服务器节点和模拟节点均安装网络协议(如TCP/IP)、远程命令执行环境如RSH(Remote Shell)或SSH(SecureShell),两者之间可以互相通信并可远程启动对方的程序。各模拟结点均配有可在三种运行模式进行反复切换的模拟器软件、Benchmark程序及其输入集文件。服务器结点装有服务器端控制软件,模拟结点装有客户端控制软件。
第二步,根据用户提供的配置信息,在服务器结点上设置一个全局配置文件,由服务器端控制软件对参与并行模拟的结点进行全局配置和初始化,方法是:
2.1在服务器结点为整个并行模拟设置一个全局配置文件,具体流程是:
2.1.1准备一个空的文本文件。
2.1.2在文本文件中新增一行开始对服务器结点进行配置,配置形式为“X=Y”,其中X为配置项的名称,Y为取值,配置项与配置项之间以“:”进行分隔,服务器结点的配置项包括:
●服务器结点的本机IP地址。
●服务器结点监听模拟结点的端口号。
●位于服务器结点的全局性能指标文件的文件名。
●位于服务器结点的全局状态文件的文件名。
●模拟结点的局部性能指标文件的文件名。
●模拟结点的局部状态文件的文件名。
●参与并行模拟的结点的数量。
●位于模拟结点的Benchmark程序的文件名。
●位于模拟结点的Benchmark程序的的输入文件的文件名。
●指令区间所包含的指令数量。
●模拟结点详细模拟之前预热指令所占的比率即预热比率w。
2.1.3在文本文件中对所有参与并行模拟的N个模拟结点进行配置,具体流程如下:
2.1.3.1初始化计数器i为1。
2.1.3.2新增一空白行作为模拟结点之间的间隔。
2.1.3.3对第i个模拟结点进行配置,配置形式为“X=Y”,其中X为配置项的名称,Y为取值,配置项与配置项之间以“:”进行分隔,每个模拟结点的配置项相同,具体包括:
●模拟结点的主机名。
●模拟结点的序号。
●模拟结点的本地IP地址。
2.1.3.4计数器i的值增加1,若i≤N,转2.1.3.2;否则转2.1.4。
2.1.4全局配置文件创建完毕,关闭文件。
2.2对全局配置文件进行一致性检查,首先检查服务器结点的配置,然后检查所有并行模拟结点的配置,具体流程为:
2.2.1检查服务器结点配置,检查的内容包括:
●服务器结点的本机IP地址的取值是否符合IP地址格式。
●服务器结点监听模拟结点的端口号、参与并行模拟的结点的数量以及指令区间所包含的指令数量的取值是否为整数。
●模拟结点详细模拟之前预热指令所占比率的取值是否位于[0,1]。
●检查文件名的取值是否符合操作系统对文件名的命名要求,并确定
是否可在服务器结点成功创建空白的全局性能指标文件和状态文件。
2.2.2若服务器结点配置检查通过则转2.2.3,否则转2.2.4。
2.2.3依次检查所有并行模拟结点的序号的取值是否唯一且是否是位于[1,N]的整数,具体流程如下:
2.2.3.1初始化计数器i为1。
2.2.3.2获取并记录第i个模拟结点的序号的取值,记为Rank[i]。
2.2.3.3确定1≤Rank[i]≤N是否成立,若不成立则在屏幕上输出错误信息并退出模拟,否则执行2.2.3.4。
2.2.3.4依次检查Rank[i]的值与之前已记录的Rank[j](1≤j≤(i-1))的值是否相等,若相等则在屏幕上输出错误信息并退出模拟;否则转2.2.3.5。
2.2.3.5计数器i的值增加1,若i≤N,转2.2.3.2;否则表示一致性校验完成,执行2.3。
2.3生成可远程启动模拟结点客户端的shell脚本文件并通过该文件启动模拟结点客户端控制软件,具体流程是:
2.3.1服务器端创建一个空的shell脚本文件。
2.3.2初始化计数器i为1。
2.3.3在shell脚本文件中为第i个模拟结点的客户端的执行生成ssh命令,命令形式为:“ssh hostname client port rank intervalsize warmupratiolocalmetricfilename localstatfilename&”,其中:
●ssh表示采用ssh命令执行远程模拟结点上的程序。
●hostname为机器名或IP地址。
●client为模拟结点的客户端可执行程序名。
●port为服务器端监听的端口号。
●rank为该模拟结点的序号。
●intervalsize为指令区间中包含的指令的数量。
●warmupratio为预热比率。
●localmetricfilename为模拟结点性能指标文件的文件名。
●localstatfilename为模拟结点状态文件的文件名。
●&表示程序以背景模式运行。
2.3.4计数器i的值增加1,若i≤N则在文件中另起一行并转2.3.3;否则转2.3.5。
2.3.5关闭脚本文件。
2.3.6设置脚本文件的可执行属性。
2.3.7执行该脚本文件,通过远程命令执行环境启动各模拟结点的客户端。
第三步,各模拟结点的客户端控制软件完成本地初始化工作,并将初始化状态上报给服务器结点。具体流程是:
3.1根据性能指标文件的文件名创建空文件。
3.2根据状态文件的文件名创建空文件。
3.3将初始化状态消息发送给服务器结点,报告是否运行成功,初始化状态信息包括模拟结点序号、初始化是否成功、初始化时间三个字段,字段与字段之间以“:”进行分隔。
第四步,服务器结点与模拟结点进行通信初始化,接收模拟结点上报的初始状态信息。具体流程如下:
4.1服务器端控制软件执行shell脚本后进入监听状态。
4.2如果接收到模拟结点客户端上报的初始化状态信息,将其保存到全局状态文件中。
4.3若有模拟结点未上报初始化状态信息或上报初始化错误,则打印相关提示信息并结束运行,否则服务器结点与模拟结点通信初始化完毕。
第五步,客户端控制软件在模拟结点上运行模拟器,具体流程是:
5.1生成运行模拟器的命令,命令参数包括本地性能指标文件路径以及文件名,本地状态文件路径以及文件名,本结点的排序,指令区间大小,预热比率w。
5.2执行运行模拟器的命令,启动模拟器。
5.3若模拟器执行成功,则向服务器端上报本模拟结点的启动状态和时间信息;否则向服务器端上报错误信息并退出。
第六步,各模拟结点以三种模式(功能模拟、详细预热和详细模拟)并行模拟同一Benchmark程序,方法是:将整个Benchmark程序分为若干具有相同指令数且互不重叠的指令区间,各模拟结点首先确定进行详细模拟的指令区间,随后确定在详细模拟的指令区间之前进行功能模拟和详细预热的指令数;整个并行模拟过程中模拟器需要在功能模拟、详细预热和详细模拟三种模式之间进行切换。模拟过程中客户端控制软件通过监视本地性能指标文件和状态文件的变化获取运行信息,将这些信息发送给正在监听的服务器结点,服务器端控制软件根据接收到的信息进行处理。具体过程如下:
6.1各模拟结点根据用户在2.1.3.3中为各模拟结点指定的序号分配各结点详细模拟的指令区间,具体方法是:
(a1)每个模拟结点分配k个指令区间进行详细模拟,共N个结点,则需要将Benchmark程序中的指令分为B(B=kN)个相等的指令区间,每个指令区间包括I条指令,指令区间依次记为I1,I2,......,IB
(a2)对于序号为i(1≤i≤N)的结点,所分配的详细模拟指令区间表示为:Ii+(j-1)N,其中1≤j≤k。例如:若模拟结点的序号为1,则该模拟结点的所有详细模拟指令区间为:I1,I1+N,...,I1+(j-1)N,...I1+(k-1)N
6.2在对所分配的第一个详细模拟的指令区间进行处理之前,每个模拟结点根据结点序号确定是否进行预热或功能模拟。具体方法是:
(b1)若模拟结点的序号为1,则该结点详细模拟的第一个指令区间为I1,这也是整个Benchmark程序中的第一个指令区间,模拟结点直接进行详细模拟,无需预热或功能模拟。
(b2)对于其他模拟结点,详细模拟的第一个指令区间为Ii(i为结点序号,i≤2≤N),模拟结点在详细模拟之前需要进行功能模拟和预热,功能模拟的指令数为(i-1-w)I,预热的指令数为wI,其中w为2.1.2中指定的预热比率,I为指令区间包括的指令数。
6.3对于第2到第k个详细模拟的指令区间,所有模拟结点的处理方式均相同:首先进行(N-1-w)I条指令的功能模拟,随后进行wI条指令的详细预热,最后进行I条指令的详细模拟。模拟结点每完成一个指令区间的详细模拟需要更新、上报其性能指标数据和状态信息,具体流程如下:
6.3.1模拟结点更新本地状态信息和性能指标信息,方法是:
(c1)模拟结点在本地状态文件中新增一行,内容依次为结点序号、时间、已完成指令数三个字段,字段之间以“:”进行分隔。
(c2)模拟结点在本地指标文件中新增一行,,每个指标占一行,依次包括结点序号、指标名称、指标值三个字段,字段之间以“:”进行分隔。
6.3.2客户端控制软件通过监视本地性能指标文件和状态文件的变化并将其发送给服务器端控制软件,方法是:
(d1)客户端控制软件将模拟结点的性能指标文件和状态文件的内容发送给服务器端控制软件并记录上次文件的更新时间。
(d2)客户端控制软件周期性地检查模拟结点的性能指标文件和状态文件的更新时间,若当前更新时间晚于步骤(d1)记录的更新时间,则转(d1)。
6.3.3服务器端控制软件在2.1.2中设定的端口监听客户端发送的性能指标和状态信息,并根据接收到的信息进行处理。对于状态信息,服务器端按照原有格式进行保存,对于性能指标,将其分为两类:1)简单型指标:即在模拟过程中直接统计获取的性能指标;2)复合型指标:由多个简单型指标经过一定的运算关系获得的性能指标。这两种类型的指标的处理方法如下:
(e1)若为简单型指标,且各模拟结点上报的局部简单型指标数据为Ai(1≤i≤N),则全局的简单型性能指标为
Figure GSA00000050508700101
(e2).若为复合型指标,则需要重新计算,方法是:对于由简单型指标B和C经过运算关系⊙获得的性能指标D,即D=C⊙B,设各模拟结点上报的简单型指标值分别为Ci和Bi(1≤i≤N),则服务器端首先计算全局的简单型性能指标
Figure GSA00000050508700102
然后再根据
Figure GSA00000050508700104
计算全局的复合型性能指标D。
6.4模拟结点终止模拟时向状态文件中写入结束标记后退出,客户端控制软件在状态文件中检测到结束标记并将其发送给服务器端控制软件后退出。服务器端控制软件接收到所有模拟结点上报的结束标记后退出,整个并行模拟过程结束。
采用本发明可以达到以下技术效果:
1)加速效果明显且并行效率高。设对单个区间详细模拟和功能模拟所需时间开销分别为D和F,由于并行模拟的整体开销取决于最后结束的模拟结点,按照本发明的指令区间分配方法可知最后结束的模拟结点是序号为N的结点,则在无预热的情况下,整体并行模拟时间为k(N-1)F+kD,而串行模拟整个Benchmark程序的时间开销为kND,因此加速比为kND/(k(N-1)F+kD),令功能模拟与详细模拟速率之比为R,即R=D/F,则加速比为NR/((N-1)+R),通常R约为20,则当结点数N为5、10时,加速比分别可达4.2和6.9,并行效率达到84%和69%。
2)精度损失小。抽样模拟等加速技术由于只选取了少量指令区间作为样本进行详细模拟,因而存在一定的精度损失。此外,这种对样本的选择与具体的体系结构配置、Benchmark程序特征等有一定关系,因而对不同的Benchmark程序的精度影响可能不同。本发明中多个并行结点协作完成了整个Benchmark程序的详细模拟,与体系结构配置、Benchmark程序自身特征无关,同时可通过调整预热比率以减少精度损失,因此更能全面地反应整个Benchmark程序的动态行为,精度损失小。
3)简单易实现。采用本发明无需调整原有模拟器的核心功能、流程,仅需要增加一些配置模拟结点、输出数据等功能的外围代码,跟具体的目标体系结构无关,对于用户而言简单易实现。此外,本发明对宿主机软硬件环境要求也较低,不要求专门的并行系统,甚至无需构建集群系统,对参与并行模拟的结点的基本要求为具有通信功能,且由于通信量较小,对互连网络性能也要求较低。
4)兼容性高,通用性强。本发明可以与SimPoint等其他加速技术结合应用,兼容性高。例如,可以首先采用SimPoint确定Benchmark程序中的若干模拟点,再基于本发明对上述模拟点进行并行模拟。此外,本发明不需要像抽样模拟等加速模拟技术那样,对新的Benchmark程序需要重新确定模拟样本,因而通用性较强。
综上所述,本发明利用多个模拟结点实现了Benchmark程序的并行模拟,每个结点仅对程序的若干指令区间进行详细模拟,其他区间则由功能模拟进行快速推进并通过一定比率的详细预热提高模拟精度,各模拟结点在运行过程中在功能模拟、详细预热、详细模拟三种模式之间进行反复的切换,最终实现对整个程序的详细模拟。相对于单结点串行模拟方式和其他加速模拟技术而言,本发明能够获得较好的加速效果和并行效率,且精度损失小,实现简单,兼容性高,具有一定的通用性。
附图说明
图1是本发明的并行模拟结点与服务器结点间的逻辑结构图。
图2是本发明的服务器结点和模拟结点的软件结构图。
图3是本发明的总流程图。
具体实施方式
图1是本发明的并行模拟结点与服务器结点间的逻辑结构图。整个并行模拟环境由多个结点构成,每个节点都是一台可独立运行的计算机。各个节点间通过互连网络互连,可通过主机名或IP地址从网络访问各个节点。根据功能将结点分为服务器结点和模拟结点。服务器结点只有一个,它负责与用户交互,通过它进行并行模拟的全局配置、调度控制、接收各模拟结点上报的性能数据和状态数据等。其它节点称为模拟节点,它们控制本地结点上的模拟器并上报本地模拟结果。
图2是本发明服务器结点和模拟结点的软件结构图。服务器结点上安装有操作系统(OS)、网络协议软件(如TCP/IP)、远程命令执行环境(RSH或SSH)和服务器端控制软件。前三者是本领域的通用软件,可从公开发行的软件包中获得;服务器端控制软件是本发明的专用软件,它接收用户配置信息、启动模拟结点并对其进行配置和控制,接收、处理、存储模拟结点上报的性能、状态数据并为其他工具软件(如可视化工具等)提供各模拟结点的状态信息。模拟结点上安装有操作系统、网络协议软件如TCP/IP,远程命令执行环境(RSH或SSH)、模拟器、Benchmark程序和客户端控制软件。前三者是本领域的通用软件,可从公开发行的软件包中获得;模拟器和Benchmark程序是用户根据模拟的对象及模拟目标需求选定的专门软件。客户端控制软件是本发明的专用软件,它根据服务器结点的配置启动模拟器,对本机的模拟过程进行控制,收集本结点模拟器输出的性能、状态信息,上报给服务器结点。
图3是本发明的总流程图,主要包括以下六个步骤。
第一步,构建宿主机软硬件平台(包括一个服务器结点和N个模拟结点)。
第二步,由服务器结点对并行模拟进行全局配置和初始化。根据用户提供的配置信息,在服务器结点上设置一个全局配置文件,由服务器端控制软件对参与并行模拟的结点进行全局配置和初始化,包括对全局配置文件进行一致性检查、生成可远程启动模拟结点客户端的shell脚本文件并通过该文件启动模拟结点客户端控制软件等。
第三步,各模拟结点的客户端控制软件完成本地初始化工作,并将初始化状态上报给服务器结点。
第四步,服务器结点与模拟结点进行通信初始化,接收模拟结点上报的初始状态信息。如果接收到模拟结点客户端上报的初始化状态信息,将其保存到全局状态文件中,若有模拟结点未上报初始化状态信息或上报初始化错误,则打印相关提示信息并结束运行。第三步和第四步中服务器结点与模拟结点相互配合完成整个并行模拟的准备工作。
第五步,客户端控制软件在模拟结点上运行模拟器。首先生成运行模拟器的命令,随后通过命令启动模拟器可执行程序并向服务器结点上报状态信息。
第六步,各模拟结点以三种模式(功能模拟、详细预热和详细模拟)并行模拟同一Benchmark程序。模拟过程中客户端控制软件将本地状态和性能信息发送给服务器结点,服务器结点根据接收到的性能和状态信息进行处理。

Claims (5)

1.一种利用模拟器多种运行模式反复切换进行并行模拟的方法,其特征在于包括以下步骤:
第一步,构建运行模拟器的宿主机软硬件平台,宿主机软硬件平台由多个结点组成,结点间能够相互通信,结点是单处理器系统或对称多处理器SMP系统,处理器是单核处理器或片上多核处理器CMP,结点分为服务器结点和模拟结点;服务器结点只有一台,接收、处理、存储模拟结点传来的性能、状态数据;启动模拟结点,对模拟结点进行配置和控制;接收用户配置信息,为其他工具软件提供各模拟结点的状态信息;模拟结点有N台,N为正整数,根据服务器结点的配置启动模拟器,对本机的模拟过程进行控制;将本结点模拟器输出的性能、状态信息上报给服务器结点;服务器节点和模拟节点均安装网络协议、远程命令执行环境,两者之间互相通信并可远程启动对方的程序;各模拟结点均配有可在三种运行模式进行反复切换的模拟器软件、Benchmark程序及其输入集文件;服务器结点装有服务器端控制软件,模拟结点装有客户端控制软件;
第二步,根据用户提供的配置信息,在服务器结点上设置全局配置文件,由服务器端控制软件对参与并行模拟的结点进行全局配置和初始化,方法是:
2.1在服务器结点为整个并行模拟设置一个全局配置文件,具体流程是:
2.1.1准备一个空的文本文件;
2.1.2在文本文件中新增一行开始对服务器结点进行配置,服务器结点的配置项包括:服务器结点的本机IP地址、服务器结点监听模拟结点的端口号、位于服务器结点的全局性能指标文件的文件名、位于服务器结点的全局状态文件的文件名、模拟结点的局部性能指标文件的文件名、模拟结点的局部状态文件的文件名、参与并行模拟的结点的数量、位于模拟结点的Benchmark程序的文件名、位于模拟结点的Benchmark程序的的输入文件的文件名、指令区间所包含的指令数量、模拟结点详细模拟之前预热指令所占的比率即预热比率w;
2.1.3在文本文件中对所有参与并行模拟的N个模拟结点进行配置,具体流程如下:
2.1.3.1初始化计数器i为1;
2.1.3.2新增一空白行作为模拟结点之间的间隔;
2.1.3.3对第i个模拟结点进行配置,每个模拟结点的配置项相同,具体包括:模拟结点的主机名、模拟结点的序号、模拟结点的本地IP地址;
2.1.3.4计数器i的值增加1,若i≤N,转2.1.3.2;否则转2.1.4;
2.1.4全局配置文件创建完毕,关闭文件;
2.2对全局配置文件进行一致性检查,首先检查服务器结点的配置,然后检查所有并行模拟结点的配置,具体流程为:
2.2.1检查服务器结点配置,检查的内容包括:
●服务器结点的本机IP地址的取值是否符合IP地址格式;
●服务器结点监听模拟结点的端口号、参与并行模拟的结点的数量以及指令区间所包含的指令数量的取值是否为整数;
●模拟结点详细模拟之前预热指令所占比率的取值是否位于[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若模拟器执行成功,则向服务器端上报本模拟结点的启动状态和时间信息,否则向服务器端上报错误信息并退出;
第六步,各模拟结点以功能模拟、详细预热和详细模拟这三种模式并行模拟同一Benchmark程序,模拟过程中客户端控制软件通过监视本地性能指标文件和状态文件的变化获取运行信息,将这些信息发送给正在监听的服务器结点,服务器端控制软件根据接收到的信息进行处理。具体过程如下:
6.1各模拟结点根据用户在2.1.3.3中为各模拟结点指定的序号计算各结点详细模拟的指令区间,具体方法是:
(a1)每个模拟结点分配k个指令区间进行详细模拟,将Benchmark程序中的指令分为B个相等的指令区间,B=kN,每个指令区间包括I条指令,指令区间依次记为I1,I2,......,IB
(a2)对于序号为i的结点,所分配的详细模拟指令区间表示为:Ii+(j-1)N,其中1≤i≤N,1≤j≤k;
6.2在对所分配的第一个详细模拟的指令区间进行处理之前,每个模拟结点根据结点序号确定是否进行预热或功能模拟,具体方法是:
(b1)若模拟结点的序号为1,则该结点详细模拟的第一个指令区间为I1,模拟结点直接进行详细模拟;
(b2)对于其他模拟结点,详细模拟的第一个指令区间为Ii,i为结点序号,i≤2≤N,模拟结点在详细模拟之前需要进行功能模拟和预热,功能模拟的指令数为(i-1-w)I,预热的指令数为wI,其中w为预热比率,I为指令区间包括的指令数;
6.3对于第2到第k个详细模拟的指令区间,所有模拟结点的处理方式均相同:首先进行(N-1-w)I条指令的功能模拟,随后进行wI条指令的详细预热,最后进行I条指令的详细模拟,模拟结点每完成一个指令区间的详细模拟需要更新、上报其性能指标数据和状态信息,具体流程如下:
6.3.1模拟结点更新本地状态信息和性能指标信息,方法是:
(c1)模拟结点在本地状态文件中新增一行,内容依次为结点序号、时间、已完成指令数三个字段,字段之间以“:”进行分隔;
(c2)模拟结点在本地指标文件中新增一行,,每个指标占一行,依次包括结点序号、指标名称、指标值三个字段,字段之间以“:”进行分隔;
6.3.2客户端控制软件通过监视本地性能指标文件和状态文件的变化并将其发送给服务器端控制软件,方法是:
(d1)客户端控制软件将模拟结点的性能指标文件和状态文件的内容发送给服务器端控制软件并记录上次文件的更新时间;
(d2)客户端控制软件周期性地检查模拟结点的性能指标文件和状态文件的更新时间,若当前更新时间晚于步骤(d1)记录的更新时间,则转(d1);
6.3.3服务器端控制软件在2.1.2中设定的端口监听客户端发送的性能指标和状态信息,并根据接收到的信息进行处理,对于状态信息,服务器端按照原有格式进行保存,对于性能指标,将其分为两类:1)简单型指标:即在模拟过程中直接统计获取的性能指标;2)复合型指标:由多个简单型指标经过一定的运算关系获得的性能指标,这两种类型的指标的处理方法如下:
(e1)若为简单型指标,且各模拟结点上报的局部简单型指标数据为Ai,则全局的简单型性能指标为,1≤i≤N;
(e2).若为复合型指标,则需要重新计算,方法是:对于由简单型指标B和C经过运算关系⊙获得的性能指标D,即D=C⊙B,设各模拟结点上报的简单型指标值分别为Ci和Bi(1≤i≤N),则服务器端首先计算全局的简单型性能指标
Figure FSA00000050508600042
Figure FSA00000050508600043
,然后再根据
Figure FSA00000050508600044
计算全局的复合型性能指标D;
6.4模拟结点终止模拟时向状态文件中写入结束标记后退出,客户端控制软件在状态文件中检测到结束标记并将其发送给服务器端控制软件后退出;服务器端控制软件接收到所有模拟结点上报的结束标记后退出,整个并行模拟过程结束。
2.如权利要求1所述的利用模拟器多种运行模式反复切换进行并行模拟的方法,其特征在于所述全局配置文件中对服务器结点和模拟结点进行配置的配置形式为“X=Y”,其中X为配置项的名称,Y为取值,配置项与配置项之间以“:”进行分隔。
3.如权利要求1所述的利用模拟器多种运行模式反复切换进行并行模拟的方法,其特征在于所述依次检查所有并行模拟结点的序号的取值是否唯一且是否是位于[1,N]的整数的具体流程是:
3.1初始化计数器i为1;
3.2获取并记录第i个模拟结点的序号的取值,记为Rank[i];
3.3确定1≤Rank[i]≤N是否成立,若不成立则在屏幕上输出错误信息并退出模拟,否则执行3.4;
3.4依次检查Rank[i]的值与之前已记录的Rank[j]的值是否相等,1≤j≤i-1,若相等则在屏幕上输出错误信息并退出模拟;否则转3.5;
3.5计数器i的值增加1,若i≤N,转3.2;否则表示一致性校验完成。
4.如权利要求1所述的利用模拟器多种运行模式反复切换进行并行模拟的方法,其特征在于所述生成可远程启动模拟结点客户端的shell脚本文件的流程是:
4.1服务器端创建一个空的shell脚本文件;
4.2初始化计数器i为1;
4.3在shell脚本文件中为第i个模拟结点的客户端的执行生成ssh命令,命令形式为:“ssh hostname client port rank intervalsize warmupratio localmetricfilenamelocalstatfilename &”,其中:
●ssh表示采用ssh命令执行远程模拟结点上的程序;
●hostname为机器名或IP地址;
●client为模拟结点的客户端可执行程序名;
●port为服务器端监听的端口号;
●rank为该模拟结点的序号;
●intervalsize为指令区间中包含的指令的数量;
●warmupratio为预热比率;
●localmetricfilename为模拟结点性能指标文件的文件名;
●localstatfilename为模拟结点状态文件的文件名;
●&表示程序以背景模式运行。
4.4计数器i的值增加1,若i≤N则在文件中另起一行并转2.3.3;否则转2.3.5;
4.5关闭脚本文件;
4.6设置脚本文件的可执行属性;
4.7执行该脚本文件,通过远程命令执行环境启动各模拟结点的客户端。
5.如权利要求1所述的利用模拟器多种运行模式反复切换进行并行模拟的方法,其特征在于所述模拟结点完成一个指令区间的详细模拟后更新性能指标数据和状态信息的具体方法是:
(c1)模拟结点在本地状态文件中新增一行,内容依次为结点序号、时间、已完成指令数三个字段,字段之间以“:”进行分隔。
(c2)模拟结点在本地指标文件中新增一行,,每个指标占一行,依次包括结点序号、指标名称、指标值三个字段,字段之间以“:”进行分隔。
CN 201010118457 2010-03-05 2010-03-05 一种利用模拟器多种运行模式反复切换进行并行模拟的方法 Expired - Fee Related CN101799767B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010118457 CN101799767B (zh) 2010-03-05 2010-03-05 一种利用模拟器多种运行模式反复切换进行并行模拟的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010118457 CN101799767B (zh) 2010-03-05 2010-03-05 一种利用模拟器多种运行模式反复切换进行并行模拟的方法

Publications (2)

Publication Number Publication Date
CN101799767A true CN101799767A (zh) 2010-08-11
CN101799767B CN101799767B (zh) 2013-03-06

Family

ID=42595452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010118457 Expired - Fee Related CN101799767B (zh) 2010-03-05 2010-03-05 一种利用模拟器多种运行模式反复切换进行并行模拟的方法

Country Status (1)

Country Link
CN (1) CN101799767B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110051A (zh) * 2010-12-31 2011-06-29 北京邮电大学 应用程序切片技术的静态缺陷检测方法
CN102541708A (zh) * 2010-12-22 2012-07-04 无锡物联网产业研究院 一种实代码仿真的方法和装置
CN106201858A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 移动终端中应用程序的测试系统及其控制方法和装置
CN106789360A (zh) * 2017-02-15 2017-05-31 中国互联网络信息中心 一种dns流量模拟系统
CN107798057A (zh) * 2017-09-05 2018-03-13 平安科技(深圳)有限公司 交易数据处理方法、装置、存储介质和计算机设备
CN116737641A (zh) * 2023-06-26 2023-09-12 合芯科技有限公司 连接装置、四路服务器、四路服务器的初始化方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196828A (zh) * 2007-12-29 2008-06-11 中国科学院计算技术研究所 一种模拟器及方法
CN101464922A (zh) * 2009-01-22 2009-06-24 中国人民解放军国防科学技术大学 基于集群系统的计算机体系结构方案并行模拟优选方法
CN101470622A (zh) * 2007-12-27 2009-07-01 东芝解决方案株式会社 虚拟化程序、模拟装置以及虚拟化方法
CN101526915A (zh) * 2009-04-28 2009-09-09 中国人民解放军国防科学技术大学 并行模拟中支持踪迹文件并行输入输出的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470622A (zh) * 2007-12-27 2009-07-01 东芝解决方案株式会社 虚拟化程序、模拟装置以及虚拟化方法
CN101196828A (zh) * 2007-12-29 2008-06-11 中国科学院计算技术研究所 一种模拟器及方法
CN101464922A (zh) * 2009-01-22 2009-06-24 中国人民解放军国防科学技术大学 基于集群系统的计算机体系结构方案并行模拟优选方法
CN101526915A (zh) * 2009-04-28 2009-09-09 中国人民解放军国防科学技术大学 并行模拟中支持踪迹文件并行输入输出的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
徐传福 等: "大规模并行计算机系统并行性能模拟技术研究", 《计算机科学》, vol. 36, no. 9, 30 September 2009 (2009-09-30) *
徐传福: "计算机体系结构高效并行性能模拟技术研究", 《中国博士学位论文电子期刊网》, 31 December 2011 (2011-12-31) *
翁玉芬 等: "一种T race 驱动的多核SMP 集群并行性能模拟方法", 《计算机工程与科学》, vol. 31, no. 1, 31 December 2009 (2009-12-31), pages 172 - 175 *
高翔 等: "基于龙芯CPU的多核全系统模拟器SimOS-Goodson", 《软件学报》, vol. 18, no. 4, 30 April 2007 (2007-04-30), pages 1047 - 1054 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541708A (zh) * 2010-12-22 2012-07-04 无锡物联网产业研究院 一种实代码仿真的方法和装置
CN102110051A (zh) * 2010-12-31 2011-06-29 北京邮电大学 应用程序切片技术的静态缺陷检测方法
CN102110051B (zh) * 2010-12-31 2014-02-05 北京邮电大学 应用程序切片技术的静态缺陷检测方法
CN106201858A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 移动终端中应用程序的测试系统及其控制方法和装置
CN106789360A (zh) * 2017-02-15 2017-05-31 中国互联网络信息中心 一种dns流量模拟系统
CN107798057A (zh) * 2017-09-05 2018-03-13 平安科技(深圳)有限公司 交易数据处理方法、装置、存储介质和计算机设备
CN107798057B (zh) * 2017-09-05 2019-02-01 平安科技(深圳)有限公司 交易数据处理方法、装置、存储介质和计算机设备
CN116737641A (zh) * 2023-06-26 2023-09-12 合芯科技有限公司 连接装置、四路服务器、四路服务器的初始化方法及装置

Also Published As

Publication number Publication date
CN101799767B (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
Fujimoto Research challenges in parallel and distributed simulation
Bhimani et al. Fim: performance prediction for parallel computation in iterative data processing applications
CN101464922B (zh) 基于集群系统的计算机体系结构方案并行模拟优选方法
Hammoud et al. MRSim: A discrete event based MapReduce simulator
CN112433819B (zh) 异构集群调度的模拟方法、装置、计算机设备及存储介质
CN101799767B (zh) 一种利用模拟器多种运行模式反复切换进行并行模拟的方法
CN103544103A (zh) 一种软件性能测试模拟并发方法及系统
Acun et al. Preliminary evaluation of a parallel trace replay tool for hpc network simulations
CN103955373A (zh) 一种sdn应用集成开发环境的设计方法
CN100588197C (zh) 一种网格模拟方法及其模拟器
Rico et al. Scalable simulation of decoupled accelerator architectures
Del-Pozo-Puñal et al. A scalable simulator for cloud, fog and edge computing platforms with mobility support
CN101526915A (zh) 并行模拟中支持踪迹文件并行输入输出的方法
Huang et al. Performance and replica consistency simulation for quorum-based NoSQL system cassandra
Perumalla et al. Performance prediction of large-scale parallel discrete event models of physical systems
Paolucci et al. EURETILE 2010-2012 summary: first three years of activity of the European Reference Tiled Experiment
Neves et al. Mremu: An emulation-based framework for datacenter network experimentation using realistic mapreduce traffic
Smelyansky et al. Integrated environment for the analysis and design of distributed real-time embedded computing systems
Ding et al. An automatic performance model-based scheduling tool for coupled climate system models
Liu et al. BSPCloud: A hybrid distributed-memory and shared-memory programming model
CN102890642B (zh) 基于匹配矩阵的异构重构计算的性能分析方法
CN102760097B (zh) 一种计算机体系结构性能模拟方法及系统
Haque et al. Simulation of a complex distributed real-time database system
Ben Romdhanne et al. Coordinator-master-worker model for efficient large scale network simulation
Rose et al. Performance modeling of system architectures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130306