CN101526915A - 并行模拟中支持踪迹文件并行输入输出的方法 - Google Patents

并行模拟中支持踪迹文件并行输入输出的方法 Download PDF

Info

Publication number
CN101526915A
CN101526915A CN200910043233A CN200910043233A CN101526915A CN 101526915 A CN101526915 A CN 101526915A CN 200910043233 A CN200910043233 A CN 200910043233A CN 200910043233 A CN200910043233 A CN 200910043233A CN 101526915 A CN101526915 A CN 101526915A
Authority
CN
China
Prior art keywords
node
simulation
file
trace
simulator
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
CN200910043233A
Other languages
English (en)
Other versions
CN101526915B (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 CN2009100432339A priority Critical patent/CN101526915B/zh
Publication of CN101526915A publication Critical patent/CN101526915A/zh
Application granted granted Critical
Publication of CN101526915B publication Critical patent/CN101526915B/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

本发明公布了一种并行模拟中支持踪迹文件并行输入输出的方法,目的是提出一种支持分布式并行Trace文件I/O的方法,提高并行模拟过程中Trace文件I/O的效率和模拟精度。技术方案是先构建运行并行模拟器的由主控节点和模拟节点组成的宿主机,在主控节点上执行主配置程序,进行全局配置;然后由主控节点上的调度软件A调度模拟节点上的模拟器A执行模拟工作,再由主控节点上的Trace分布软件为每个目的模拟节点生成Trace移动脚本并发给目的模拟节点,目的模拟节点执行Trace移动脚本,从相应的源节点上将Trace文件移动到本节点;最后由主控节点上的调度软件B调度模拟节点上的模拟器B执行模拟工作。采用本发明可大幅度提高Trace文件I/O的效率,同时还可提高模拟精度。

Description

并行模拟中支持踪迹文件并行输入输出的方法
技术领域
本发明涉及并行计算机系统模拟方法,特别是在具有分布式磁盘存储系统的并行宿主机上,对并行模拟过程中的Trace(踪迹)文件进行分布式并行输入输出(Input/Output,I/O)的方法。
背景技术
计算机体系结构模拟软件(简称模拟器)是一类对计算机系统行为进行模拟的软件。它们一般是可配置的,可以对目标计算机系统的体系结构参数或技术方案进行配置,在现有的计算机(称为宿主机)上模拟运行Benchmark程序(包括真实的基准测试程序或自动生成的工作负载),获得目标系统在给定配置下的性能数据,为计算机系统的体系结构设计决策提供参考。此外,基于模拟器还可对新计算机系统上的算法及软件进行调试与评估。
模拟器模拟硬件的行为,其时间开销通常比在真实目标机上运行相同Benchmark程序的时间大几个数量级,并且内存开销也很大。对于大规模并行计算机系统的模拟来说,串行宿主机难以胜任,只有采用并行计算机系统作为宿主机,基于并行模拟器并利用并行机的计算与存储资源进行模拟,才能满足计算能力与存储容量的需求。目前已经出现了一些基于并行宿主机的并行模拟器原型系统,如WWT II(威斯康辛大学)、LAPSE(NASA)、MPI-SIM(加州大学洛杉矶分校)、BigSimulator(伊利诺伊大学香槟分校)、BGLsim(IBM公司与伊利诺伊大学香槟分校)、SILAS(德国尤利西超级计算中心)等。
很多并行模拟器(如SILAS和BigSimulator)采用了Trace驱动的方式。Trace是对Benchmark程序执行过程中发生的事件或操作的记录,其中可以包括程序执行的指令序列及指令地址、访存地址序列、通信事件发生的时刻与数量、通信的对象等信息,通常将其以Trace文件的方式存储在磁盘系统中,后续的性能分析或模拟软件以Trace文件为输入,进行进一步的性能评估。例如BigSimulator原型模拟器中的性能模拟预测分两个步骤,第一个步骤称为仿真(Emulation),在其中进行初步模拟并生成Trace文件;第二个步骤称为模拟(Simulation),它基于前一步骤的Trace文件进行更详细的性能模拟预测。但是基于Trace的模拟带来了问题:
(1)Trace文件占据很大的存储空间,导致对Trace文件进行磁盘I/O的开销大。如文献(Gao Xiaofeng等,Path Grammar Guided Trace Compression and TraceApproximation,IEEE HPDC-15,2006)报道,NPB(NAS Parallel Benchmark)中BT程序采用Class A输入集时,只使用4个并行模拟进程,其有效地址的Trace文件大小就超过了260GB。由于需要在磁盘系统上存储和读取的Trace文件的容量巨大,模拟器的执行性能严重受限于Trace文件的磁盘I/O操作。
(2)模拟器进行Trace文件记录的过程对目标程序执行过程是一种干扰,可能影响模拟器的模拟精度。因为Trace驱动的性能模拟器往往基于计算时间、通信时间的综合来预测并行程序在目标并行机上的性能,计算时间根据宿主机上测得的Benchmark程序计算部分的时间来估计(Gengbin Zheng等,Simulation-based performance predictionfor large parallel machines,International Journal of Parallel Programming,2005),而Trace文件I/O操作是对Benchmark程序执行过程的一种干扰,可能影响测得的计算时间,从而在最终的预测性能中引入误差。
由于上述原因,如何优化Trace文件的磁盘I/O操作以提高模拟器的性能,并降低Trace文件I/O操作对计算时间估计的影响,成为模拟器研究领域的一个重要问题。在并行模拟器中,这一问题更加重要,因为并行模拟中通常运行规模更大的并行Benchmark程序,产生的Trace文件容量更大;并且,由于并行编程模式传统上只由主进程进行I/O操作,并行模拟器中通常也只有一个主模拟进程进行Trace文件的I/O操作,由单个主进程支持多个模拟进程的Trace文件I/O操作,很可能造成性能瓶颈。
目前已提出的解决Trace文件输入输出问题的方法主要有三类:(1)缓冲存储方法:将模拟过程中持续不断产生的Trace缓存在主存中,直到模拟结束时才将Trace以文件方式写入磁盘,这样减少磁盘I/O操作执行的次数,一定程度上提高性能。这种方法在多种模拟器中都有采用。但Trace的缓冲存储方法对宿主机的主存使用带来压力,在主存容量不足的情况下,会出现频繁的磁盘交换操作,性能大幅度降低。(2)在并行模拟器中,每个模拟进程都进行Trace文件I/O操作,这样可缓解单个进程处理Trace文件I/O时的性能瓶颈。例如BigSimulator中就采用了这种方法。但这种方法通常采用单个I/O服务器,基于网络文件系统(如NFS)支持多个模拟进程的Trace文件I/O,一方面单个I/O服务器可提供的磁盘I/O带宽有限,另一方面Trace文件数据还要通过网络传输,数据访问的路径更长,读取延迟比本地磁盘的更大,带宽受限于网络带宽,导致Trace文件I/O操作的效率低,影响并行模拟器系统的执行效率。据在一个100M以太网互连的集群系统(采用SCSI磁盘存储)上的测试结果,基于网络文件系统NFS从I/O节点读取Trace文件的带宽不到12MB/s,而从本地磁盘读取Trace文件的I/O带宽可达到200MB/s以上。(3)Trace文件压缩方法,通过压缩减小Trace文件大小,从而减少相应的I/O开销。例如文献(ALEKSANDAR
Figure A20091004323300081
等,An Efficient Single-PassTrace Compression Technique Utilizing Instruction Streams,ACM Transactions on Modelingand Computer Simulation,2007)报告了一种基于流的压缩方法SBC,可将Dinero模拟器生成的SPEC CPU2000的指令和数据地址Trace文件的大小压缩到原来的1/18到1/309,并可跟通用压缩技术如gzip结合使用。但Trace文件压缩和解压缩操作也带来额外的开销,例如在3GHz的Intel Pentium4处理器上,SBC对SPEC2000每个程序产生的Trace文件的平均压缩时间需要28.9分钟,平均解压缩时间为86秒。对于并行Trace文件的压缩和解压缩操作则更加费时,如据文献(Gao Xiaofeng等,Path Grammar GuidedTrace Compression and Trace Approximation,IEEE HPDC-15,2006)报道,采用一种Trace文件压缩方法Sequitur压缩NPB中EP程序944MB大小的控制流Trace文件共花费了约70个小时。
通过调查发现,除了少数系统中只配有集中式的磁盘存储系统之外,目前的并行计算机通常在每个节点上都配有本地磁盘,特别是主流的集群结构并行计算机系统通常如此。如果并行模拟器的每个模拟进程都可利用本进程所在节点上的磁盘来存储Trace文件,则可以在多个磁盘上并行地进行Trace文件的I/O操作,使得Trace文件I/O也具有高度的并行性,大幅提高并行模拟器中Trace文件I/O的效率,加快模拟速度,并且降低Trace文件I/O操作对模拟准确性的影响,获得更准确的模拟结果。如果能够以具有分布式磁盘存储的并行计算机系统为宿主机,以现有的消息传递并行模拟器软件为基础,通过设计相应的过程控制方案及软件,确保每个模拟步骤中各个模拟进程都可在本结点的本地磁盘上输出或者读取Trace文件,则可以以较低的代价实现对并行模拟的Trace文件的分布式并行I/O。本发明就是根据这种思路而提出来的。
根据专利文献检索,以往的专利与文献中尚未见到对并行模拟的Trace文件进行分布式并行I/O的方法的相关报道。只有一些关于并行模拟器构造方面的方法申请了专利,如专利号分别为5956261、5442772的美国专利、专利号200710304653.9的中国专利。此外,专利号5327361的美国专利涉及到了计算机模拟过程中Trace的生成方法,专利号6347383的美国专利涉及到了Trace文件压缩的方法。
发明内容
本发明要解决的技术问题是:在以具有分布式磁盘存储的并行计算机为宿主机的并行模拟中,提出一种支持分布式并行Trace文件I/O的方法,以分布式并行I/O的方式来实现Trace文件的输入输出,提高消息传递式并行模拟过程中Trace文件I/O的效率,缩短模拟时间,提高预测准确性。
本发明技术方案如下:
第一步,构建运行并行模拟器的宿主机,宿主机由多个节点构成,每个节点都是一台可独立运行的计算机,都具有主存和本地磁盘存储,各个节点间通过网络互连。每个节点既可以是一个单处理器系统,也可以是一个对称多处理器(SymmetricMultiprocessors,SMP)系统,其中的处理器可以是单核处理器或片上多核处理器(ChipMultiprocessors,CMP)。指定一个节点为主控节点,它负责与用户交互,通过它进行整个模拟预测过程的配置与控制。其它节点称为模拟节点,它们可根据需要参与并行模拟。各个模拟节点结构和配置均可以不同。主控节点和模拟节点均安装有操作系统、网络协议软件和远程命令执行软件如RSH(Remote Shell)或SSH(Secure Shell),使得主控节点与模拟节点上的模拟用户间可以互相进行远程文件复制,或者启动对方上的程序。从网络访问各个节点可通过主机名或IP地址,为描述方便,统一采用主机名来标识每个节点。基于Trace的并行模拟器的模拟过程通常分为两个模拟阶段(如SILAS和BigSimulator都是如此),每个阶段采用不同的模拟器,实现不同目标的模拟,为描述方便,将第一阶段的模拟器称为模拟器A,第二阶段的模拟器称为模拟器B。在模拟节点上安装有两个模拟阶段的模拟器——模拟器A和模拟器B、Benchmark程序,它们是用户根据需要选择并安装在模拟节点上的专门软件。主控节点上装有主配置程序、Trace分布软件、调度软件A和调度软件B,其中调度软件A用于调度模拟器A的执行,调度软件B用于调度模拟器B的执行。
第二步,在主控节点上执行主配置程序,进行全局配置。主要工作包括:为两个并行模拟阶段分别设置参与并行模拟的节点、每个节点上参与模拟的模拟进程数,据此生成源节点和目的节点列表文件;创建一个全局配置文件,在其中记录源节点和目的节点列表文件的存放目录及名字、两个模拟阶段模拟进程到节点的映射方法、Trace文件名的前导标识符。过程如下:
2.1设置参与第一个阶段模拟的节点及其上模拟进程的数目,每一行存储一个节点的信息,生成源节点列表文件。假设参与第一阶段并行模拟的节点有NE个,分别给其编号为1-NE,记其中第i个节点的主机名为HEi、模拟进程数为PEi(1≤i≤NE)。具体流程是:
2.1.1建一个空的源节点列表文件。
2.1.2初始化计数器i为1。
2.1.3在源节点列表文件中新起一行,写入第i个节点的主机名HEi
2.1.4在当前节点的主机名HEi后写入该节点上的模拟进程数目PEi
2.1.5计数器i的值增加1,若i≤NE,转2.1.3;否则,关闭源节点列表文件,完成源节点列表文件的创建。
2.2设置参与第二个阶段模拟的节点及其上模拟进程的数目,生成目的节点列表文件。假设参与第二阶段并行模拟的节点有NS个,分别给其编号为1-NS,记其中第j个节点的主机名为HSj、模拟进程数为PSj(1≤j≤NS)。具体流程是:
2.2.1建一个空的目的节点列表文件。
2.2.2初始化计数器j为1。
2.2.3在目的节点列表文件中新起一行,写入第j个节点的主机名HSj
2.2.4在当前节点的主机名HSj后写入该节点上的模拟进程数目PSj
2.2.5计数器j的值增加1,若j≤NS,转2.2.3;否则,关闭目的节点列表文件,完成目的节点列表文件的创建。
2.3创建一个全局配置文件,在其中记录全局配置信息。具体流程是:
2.3.1创建一个空的全局配置文件。
2.3.2在全局配置文件中记录源节点和目的节点列表文件的存放目录及名字。
2.3.3设置第一个模拟阶段模拟进程到节点的映射方法。映射方法可以为块分布、循环分布等,这里采用本领域常用的块分布映射方法(记为BLOCK_MAP)。在全局配置文件中记录映射方法的名称(用变量MAPE标识)。
2.3.4设置第二个模拟阶段的模拟进程到节点的映射方法,映射方法与第一个模拟阶段相同。在全局配置文件中记录映射方法的名称(用变量MAPS标识)。
2.3.5设置Trace文件名的前导标识符,记录在全局配置文件中。
2.3.6关闭全局配置文件,完成全局配置。
第三步,由主控节点上的调度软件A调度模拟节点上的模拟器A执行模拟工作,进行第一个阶段的并行模拟。
调度软件A的流程如下:
3.1从全局配置文件获得源节点列表文件的存放目录及名字,以及第一个模拟阶段模拟进程到节点的映射方法MAPE和Trace文件名的前导标识符。
3.2解析源节点列表文件,获得参与第一阶段模拟的节点名及其上的模拟进程数。
3.3启动每个模拟节点上的模拟进程,即逐个启动每个参与第一阶段模拟的模拟节点上的PEk个模拟进程,PEk为编号为k的模拟节点上的模拟进程数(1≤k≤NE)。
3.4给每个模拟进程分配不同的逻辑进程号,逻辑进程号从1到因MAPE等于BLOCK_MAP,故第k个模拟节点上的PEk个模拟进程的编号分别是 1 + Σ 1 ≤ k 1 ≤ ( k - 1 ) PE k 1 , 2 + Σ 1 ≤ k 1 ≤ ( k - 1 ) PE k 1 , . . . , Σ 1 ≤ k 1 ≤ k PE k 1 (1≤k≤NE)。
模拟节点端模拟器A的执行过程如下:
3.5模拟器A的各个进程并行地参与模拟运行Benchmark程序,进行功能仿真和初步的性能模拟。
3.6每个模拟进程生成一个与本进程的逻辑进程号相同编号的Trace文件,记录本阶段已模拟得到的性能数据以及下一阶段所需要的性能事件(例如网络通信),每个模拟进程产生的Trace文件都存储在本地磁盘中,即第k个模拟节点上模拟进程产生的Trace文件记录在节点名为HEk的节点上(1≤k≤NE)。Trace文件的命名采用“前导标识符”+“编号”的方式。
第四步,主控节点上的Trace分布软件为每个目的模拟节点生成一个Trace移动脚本,将其发给目的模拟节点,目的模拟节点执行Trace移动脚本,从相应的源节点上将Trace文件移动到本节点。
进行Trace文件的重新分布的原因是:由于不同阶段并行模拟器在并行宿主机上的可扩展性的差异、不同模拟阶段模拟任务可扩展性的差异,以及并行宿主机中不同节点处理能力的差异,为了获得最佳的并行模拟效率,在不同阶段不一定使用相同数目的节点并行模拟,并且不同模拟阶段中模拟进程到宿主机节点的映射方式也不同,因此需要将Trace文件重新进行分布以保证后续模拟过程可从本地获得需要读取的Trace文件。Trace文件重分布关键问题是确定每个目的节点上的各个模拟进程需要读取哪些Trace,这些Trace原来分布于哪些源节点上,方法是:
(a1)计算每个目的节点上的模拟进程的逻辑进程号,逻辑进程号从1到
Figure A20091004323300121
因为MAPS等于BLOCK_MAP,故第q个目的节点上模拟进程的逻辑进程号分别是 1 + Σ 1 ≤ q 1 ≤ ( q - 1 ) PS q 1 2 + Σ 1 ≤ q 1 ≤ ( q - 1 ) PS q 1 . . . , Σ 1 ≤ q 1 ≤ q PS q 1 (1≤q≤NS)。
(a2)计算第二个模拟阶段每个模拟进程应读取的Trace文件编号。第二个模拟阶段的模拟进程数 NNP = &Sigma; 1 &le; q &le; NS PS q , Trace文件数 NNT = &Sigma; 1 &le; r &le; NE PE r 如果NNP整除NNT,则令TN=DIV(NNT,NNP),RN=0;否则,令TN=DIV(NNT,NNP)+1,RN=MOD(NNT,NNP)。其中DIV(NNT,NNP)表示NNT除以NNP得到的整数,MOD(NNT,NNP)表示NNT除以NNP得到的余数。对进程号为u的模拟进程,若RN等于0,则其所读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,..., TN * u ( 1 &le; u &le; &Sigma; 1 &le; q &le; NS PS q ) ; 若RN不等于0,则其所读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,...,TN*u(u≤RN),或者TN*RN+(u-RN-1)*(TN-1)+1,TN*RN+(u-RN-1)*(TN-1)+2,...,TN*RN+(u-RN)*(TN-1) ( RN < u &le; &Sigma; 1 &le; q &le; NS PS q )
(a3)计算每个Trace文件原来分布于哪个源节点上。记Trace文件的编号为NT,则它所在源节点的编号SN满足: &Sigma; 1 &le; r &le; ( SN - 1 ) PE r < NT &le; &Sigma; 1 &le; r &le; SN PE r
4.1在主控节点端执行Trace分布软件,流程如下:
4.1.1初始化目的节点号q为1。置第二个模拟阶段的模拟进程数 NNP = &Sigma; 1 &le; q &le; NS PS q , Trace文件数 NNT = &Sigma; 1 &le; r &le; NE PE r 如果NNP整除NNT,则置变量TN=DIV(NNT,NNP),变量RN=0;否则,置变量TN=DIV(NNT,NNP)+1,变量RN=MOD(NNT,NNP)。
4.1.2创建一个新的Trace移动脚本文件。
4.1.3初始化计数器ml的值为1。
4.1.4置目的节点上的逻辑进程号 m = m 1 + &Sigma; 1 &le; q 1 &le; ( q - 1 ) PS q 1
4.1.5初始化计数器t的值为1。如果RN等于0,或者RN不等于0且m不大于RN,置IMAX=TN;否则,置IMAX=TN-1。
4.1.6如果RN等于0,或者RN不等于0且m不大于RN,置Trace文件编号NT=TN×(m-1)+t;否则,置Trace文件编号NT=TN×RN+(m-RN-1)(TN-1)+t。初始化计数器r的值为0,置PT的值为0。
4.1.7计算:r=r+1;PT=PT+PEr
4.1.8如果NT>PT,转4.1.7;否则,转4.1.9。
4.1.9在脚本文件中加入一条命令,功能是使用远程复制命令将源节点HEr上编号为NT的Trace文件(文件名为“前导标识符”+NT)移动到本机(目的节点HSq)上。
4.1.10如果t<IMAX,置t=t+1,转4.1.6。
4.1.11若m1<PSq,置m1=m1+1,转4.1.4。
4.1.12关闭Trace移动脚本文件,使用远程复制命令将该脚本移动到目的节点HSq上,并在节点HSq上启动该脚本文件。
4.1.13若q<NS,置q=q+1,转4.1.2;否则,结束。
4.2目的模拟节点端从源节点上将Trace文件移动到本节点,方法是:
每个目的模拟节点接收主控节点发来的Trace移动脚本文件,执行该脚本,将第二个模拟阶段本节点上的模拟进程要读取的Trace文件逐个地从源节点移动到本节点上。
在Trace文件重分布过程中,由于Trace分布软件在启动目的节点上的Trace移动脚本后就返回,接着为后续目的节点生成Trace移动脚本,且Trace分布软件的执行时间远小于每个目的节点上进行Trace文件移动的时间,因此,各个目的节点并行地执行Trace文件移动操作,即Trace文件重分布过程基本上是全并行的,并行度接近NS。
第五步,主控节点上的调度软件B调度模拟节点上的模拟器B执行模拟工作。
调度软件B的流程如下:
5.1从全局配置文件中获得目的节点列表的存放目录及名字,以及第一个模拟阶段模拟进程到节点的映射方法MAPS
5.2解析目的节点列表文件,获得参与第二阶段模拟的各个节点名及其上的模拟进程数。
5.3启动每个模拟节点上的模拟进程,即逐个启动每个参与第二阶段模拟的模拟节点上的PSq个模拟进程,PSq为编号为q的模拟节点上的模拟进程数,1≤q≤NS。
5.4给每个模拟进程分配不同的逻辑进程号。逻辑进程号从1到
Figure A20091004323300131
因MAPS等于BLOCK_MAP,故第q个节点上的PSq个模拟进程的逻辑进程号分别是 1 + &Sigma; 1 &le; q 1 &le; ( q - 1 ) PS q 1 2 + &Sigma; 1 &le; q 1 &le; ( q - 1 ) PS q 1 . . . , &Sigma; 1 &le; q 1 &le; q PS q 1 (1≤q≤NS)。
模拟节点端模拟器B的执行过程如下:
5.5模拟器B的各个模拟进程并行地从本地磁盘上读取Trace文件。设模拟进程的逻辑进程号为u,若RN等于0,则其读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,..., TN * u ( 1 &le; u &le; &Sigma; 1 &le; q &le; NS PS q ) ; 若RN不等于0,则其读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,...,TN*u(u≤RN),或者TN*RN+(u-RN-1)*(TN-1)+1,TN*RN+(u-RN-1)*(TN-1)+2,...,TN*RN+(u-RN)*(TN-1) ( RN < u &le; &Sigma; 1 &le; q &le; NS PS q )
5.6各个模拟进程基于Trace文件中记录的信息并行地进行详细模拟,综合第一个阶段的性能数据,得到最终的模拟预测性能数据。
采用本发明可以达到以下技术效果:
(1)效率高,第三步中采用所有源节点上的磁盘系统支持并行的Trace写操作,第四步中各个目的节点并行地从源节点上移动Trace文件,第五步中采用所有目的节点上的磁盘系统支持并行的Trace度操作,大幅度提高了Trace文件I/O的效率,进而提高了并行模拟效率。
(2)因为Trace文件I/O效率提高,对目标Benchmark程序的干扰减小,有利于提高模拟结果的精度。
(3)由于解决了单I/O服务器导致的Trace文件I/O性能瓶颈,可以支持使用更大数量的节点来进行并行模拟,提高了并行模拟器自身的并行可扩展性。
(4)实施简单,所要求的并行宿主机的软硬件的特性在常见并行机系统上都具备,无需特别的软件支持,也不受限于具体文件系统。
(5)与Trace缓冲存储、Trace压缩等方法兼容,可共同实施。
综上所述,本发明基于具有分布式磁盘存储的并行宿主机系统,采取“并行的本地Trace文件I/O、并行的Trace文件重分布”的方式,实现了对计算机体系结构并行模拟中Trace文件I/O操作的并行化,大大加快了模拟评估的速度,并提高了模拟预测数据的准确性。
附图说明
图1是本发明中并行宿主机的逻辑结构图。
图2是本发明中主控节点和模拟节点的软件部署图。
图3是本发明的总流程图。
图4是主配置程序的流程图。
图5是第一个并行模拟阶段的流程图。
图6是Trace分布软件的流程图。
图7是第二个并行模拟阶段的流程图。
具体实施方式
图1是本发明的并行宿主机的逻辑结构图。并行宿主机由多个节点构成,每个节点都是一台可独立运行的计算机,既可以是一个单处理器系统,也可以是一个对称多处理器(SMP)系统,其中的处理器可以是单核处理器或片上多核处理器(CMP)。随着多核处理器的日益广泛使用,通常并行宿主机的每个节点上都有多个CPU核。每个节点均配有主存和本地磁盘存储。各个节点间通过网络互连,网络可以是以太网、Myrinet、Infiniband,或是其它类型的网络。可通过主机名或IP地址从网络访问各个节点。根据功能将集群的节点分为主控节点和模拟节点。主控节点只有一个,它负责与用户交互,通过它进行全局配置、执行调度程序、控制进行Trace文件重分布操作等。其它节点称为模拟节点,它们可根据需要参与并行模拟。
图2是本发明主控节点和模拟节点的软件部署图。在主控节点上安装有操作系统、TCP/IP协议软件、远程命令执行软件(RSH或SSH)、主控程序、主配置程序和Trace分布软件。其中前三者是本领域的通用软件,可从公开发行的软件包中获得;后三者是本发明的专用软件。在模拟节点上安装有操作系统、TCP/IP协议软件、远程命令执行软件、Benchmark程序,以及两个并行模拟阶段的模拟器——模拟器A和模拟器B。其中前三者是通用软件,可从公开发行的软件包中获得。模拟器A、模拟器B和Benchmark程序是用户根据模拟的对象及模拟目标需求选定的专门软件。
图3所示是本发明中本发明的总流程图。主要流程是:
步骤S301,构建运行并行模拟器的宿主机。
步骤S302,主配置程序在主控节点上执行,进行全局配置。
步骤S303,主控节点上的调度软件A调度模拟节点上的模拟器A,执行第一个阶段的并行模拟。
步骤S304,主控节点上的Trace分布软件控制各个模拟节点进行Trace的重分布。
步骤S305,主控节点上的调度软件B调度模拟节点上的模拟器B,执行第二个阶段的并行模拟。
图4是主配置程序的流程图。主配置程序的流程是:
步骤S401,设置参与第一个阶段模拟的节点及其上模拟进程的数目,生成源节点列表文件。
步骤S402,设置参与第二个阶段模拟的节点及其上模拟进程的数目,生成目的节点列表文件。
步骤S403,创建一个全局配置文件,在其中记录全局配置信息。
图5是第一个并行模拟阶段的流程图。该流程包括主控节点上的调度软件A的流程和模拟节点上的模拟器A的流程。
调度软件A的流程如下:
步骤S501,从全局配置文件中获得源节点列表文件的存放目录及名字,以及第一个模拟阶段进程到节点的映射方法MAPE和Trace文件名的前导标识符。
步骤S502,解析源节点列表文件,获得参与第一阶段模拟的各个节点名及其上的模拟进程数。
步骤S503,启动每个模拟节点上的模拟进程。
步骤S504,给每个模拟进程分配不同的逻辑进程号。
模拟节点端模拟器A的过程如下:
步骤S505,各个模拟进程并行地参与模拟运行Benchmark程序,进行功能仿真和初步的性能模拟。
步骤S506,每个模拟进程生成一个与本进程的逻辑进程号相同编号的Trace文件,记录本阶段已模拟得到的性能数据以及下一阶段所需要的性能事件,每个模拟进程产生的Trace文件都存储在本地磁盘中,即第k个节点上模拟进程产生的Trace文件记录在HEk节点上(1≤k≤NE)。
图6是Trace分布软件进行Trace文件的重分布的流程图。
主控节点端的流程:
步骤S601,从全局配置文件中获得全局配置信息,包括:源节点和目的节点列表文件的存放目录及名字,两个模拟阶段进程到节点的映射方法MAPE和MAPS,以及Trace文件名的前导标识符。
S602,解析源节点和目的节点列表,分别获得参与两个阶段模拟的各个节点名、模拟进程数。
S603为每个目的节点生成Trace移动脚本,发送到目的节点,并在该节点上启动该脚本。
模拟节点端的流程:
S604每个目的节点接收主控节点发来的Trace文件移动脚本,执行该脚本,将第二个模拟阶段本节点上的模拟进程需要读取的Trace文件逐个地从源节点移动到本节点上。
图7是第二个并行模拟阶段的流程图。该流程包括主控节点上的调度软件B的流程和模拟节点上的模拟器B的流程。
调度软件B的过程如下:
步骤S701,从全局配置文件中获得目的节点列表的存放目录及名字,以及第一个模拟阶段模拟进程到节点的映射方法MAPS
步骤S702,解析目的节点列表文件,获得参与第二阶段模拟的各个节点名及其上的模拟进程数。
步骤S703,启动每个模拟节点上的模拟进程。
步骤S704,给每个模拟进程分配不同的逻辑进程号。
模拟节点端模拟器B的过程如下:
步骤S705,各个模拟进程并行地从本地磁盘上读取Trace文件。
步骤S706,各个模拟进程基于Trace文件中记录的信息并行地进行详细模拟,综合第一个阶段的性能数据,得到最终的模拟预测性能数据。

Claims (1)

1.一种并行模拟中支持踪迹文件并行输入输出的方法,其特征在于包括以下步骤:
第一步,构建运行并行模拟器的宿主机,宿主机由多个节点构成,每个节点都是一台可独立运行的计算机,都具有主存和本地磁盘存储,各个节点间通过网络互连;指定一个节点为主控节点,它负责与用户交互,通过它进行模拟预测过程的配置与控制;其它节点称为模拟节点,它们根据需要参与并行模拟;主控节点和模拟节点均安装有操作系统、网络协议软件和远程命令执行软件,各个节点采用主机名来标识;基于Trace的并行模拟器的模拟过程分为两个模拟阶段,第一阶段的模拟器称为模拟器A,第二阶段的模拟器称为模拟器B,在模拟节点上安装有模拟器A和模拟器B、Benchmark程序;主控节点上装有主配置程序、Trace分布软件、调度软件A和调度软件B,调度软件A调度模拟器A的执行,调度软件B调度模拟器B的执行;
第二步,在主控节点上执行主配置程序,进行全局配置,过程如下:
2.1设置参与第一个阶段模拟的节点及其上模拟进程的数目,每一行存储一个节点的信息,生成源节点列表文件,具体流程是:
2.1.1建一个空的源节点列表文件;
2.1.2初始化计数器i为1;
2.1.3在源节点列表文件中新起一行,写入第i个节点的主机名HEi
2.1.4在当前节点的主机名HEi后写入该节点的模拟进程数目PEi
2.1.5计数器i的值增加1,若i≤NE,转2.1.3;否则,关闭源节点列表文件,完成源节点列表文件的创建,NE为参与第一阶段并行模拟的节点数,各节点编号为1-NE;
2.2设置参与第二个阶段模拟的节点及其上模拟进程的数目,生成目的节点列表文件,具体流程是:
2.2.1建一个空的目的节点列表文件;
2.2.2初始化计数器j为1;
2.2.3在目的节点列表文件中新起一行,写入第j个节点的主机名HSj
2.2.4在当前节点的主机名HSj后写入该节点上的模拟进程数目PSj
2.2.5计数器j的值增加1,若j≤NS,转2.2.3;否则,关闭目的节点列表文件,完成目的节点列表文件的创建,NS为参与第二阶段并行模拟的节点个数,各节点编号为1-NS;
2.3创建全局配置文件,流程是:
2.3.1创建一个空的全局配置文件;
2.3.2在全局配置文件中记录源节点和目的节点列表文件的存放目录及名字;
2.3.3设置第一个模拟阶段模拟进程到节点的映射方法为块分布映射方法,记为BLOCK_MAP,在全局配置文件中记录映射方法的名称,用变量MAPE标识;
2.3.4设置第二个模拟阶段的模拟进程到节点的映射方法,映射方法与第一个模拟阶段相同,在全局配置文件中记录映射方法的名称,用变量MAPS标识;
2.3.5设置Trace文件名的前导标识符,记录在全局配置文件中;
2.3.6关闭全局配置文件,完成全局配置;
第三步,由主控节点上的调度软件A调度模拟节点上的模拟器A执行模拟工作,进行第一个阶段的并行模拟:
调度软件A的流程如下:
3.1从全局配置文件获得源节点列表文件的存放目录及名字,以及第一个模拟阶段模拟进程到节点的映射方法MAPE和Trace文件名的前导标识符;
3.2解析源节点列表文件,获得参与第一阶段模拟的节点名及其上的模拟进程数;
3.3启动每个模拟节点上的模拟进程,即逐个启动每个参与第一阶段模拟的模拟节点上的PEk个模拟进程,PEk为编号为k的模拟节点上的模拟进程数1≤k≤NE;
3.4给每个模拟进程分配不同的逻辑进程号,逻辑进程号从1到
Figure A2009100432330003C1
第k个模拟节点上的PEk个模拟进程的编号分别是 1 + &Sigma; 1 &le; k 1 &le; ( k - 1 ) PE k 1 , 2 + &Sigma; 1 &le; k 1 &le; ( k - 1 ) PE k 1 , . . . , &Sigma; 1 &le; k 1 &le; k PE k 1 ;
模拟节点端模拟器A的执行过程如下:
3.5模拟器A的各个进程并行地参与模拟运行Benchmark程序,进行功能仿真和初步的性能模拟;
3.6每个模拟进程生成一个与本进程的逻辑进程号相同编号的Trace文件,记录本阶段已模拟得到的性能数据以及下一阶段所需要的性能事件,每个模拟进程产生的Trace文件都存储在本地磁盘中,即第k个模拟节点上模拟进程产生的Trace文件记录在节点名为HEk的节点上,Trace文件的命名采用“前导标识符”+“编号”的方式;
第四步,主控节点上的Trace分布软件为每个目的模拟节点生成一个Trace移动脚本,将其发给目的模拟节点,目的模拟节点执行Trace移动脚本,从相应的源节点上将Trace文件移动到本节点:
4.1在主控节点端执行Trace分布软件,流程如下:
4.1.1初始化目的节点号q为1,置第二个模拟阶段的模拟进程数 NNP = &Sigma; 1 &le; q &le; NS PS q , Trace文件数 NNT = &Sigma; 1 &le; r &le; NE PE r , 如果NNP整除NNT,则置变量TN=DIV(NNT,NNP),变量RN=0;否则,置变量TN=DIV(NNT,NNP)+1,变量RN=MOD(NNT,NNP);
4.1.2创建一个新的Trace移动脚本文件;
4.1.3初始化计数器m1的值为1;
4.1.4置目的节点上的逻辑进程号 m = m 1 + &Sigma; 1 &le; q 1 &le; ( q - 1 ) PS q 1 ;
4.1.5初始化计数器t的值为1,如果RN等于0,或者RN不等于0且m不大于RN,置IMAX=TN;否则,置IMAX=TN-1;
4.1.6如果RN等于0,或者RN不等于0且m不大于RN,置Trace文件编号NT=TN×(m-1)+t;否则,置Trace文件编号NT=TN×RN+(m-RN-1)(TN-1)+t,初始化计数器r的值为0,置PT的值为0;
4.1.7计算:r=r+1;PT=PT+PEr;
4.1.8如果NT>PT,转4.1.7;否则,转4.1.9;
4.1.9在脚本文件中加入一条命令,功能是使用远程复制命令将源节点HEr上编号为NT的Trace文件移动到目的节点HSq上;
4.1.10如果t<IMAX,置t=t+1,转4.1.6;
4.1.11若m1<PSq,置m1=m1+1,转4.1.4;
4.1.12关闭Trace移动脚本文件,使用远程复制命令将该脚本移动到目的节点HSq上,并在节点HSq上启动该脚本文件;
4.1.13若q<NS,置q=q+1,转4.1.2;否则,结束;
4.2目的模拟节点端从源节点上将Trace文件移动到本节点,方法是:每个目的模拟节点接收主控节点发来的Trace移动脚本文件,执行该脚本,将第二个模拟阶段本节点上的模拟进程要读取的Trace文件逐个地从源节点移动到本节点上;
第五步,主控节点上的调度软件B调度模拟节点上的模拟器B执行模拟工作,
调度软件B的流程如下:
5.1从全局配置文件中获得目的节点列表的存放目录及名字,以及第一个模拟阶段模拟进程到节点的映射方法MAPS
5.2解析目的节点列表文件,获得参与第二阶段模拟的各个节点名及其上的模拟进程数;
5.3启动每个模拟节点上的模拟进程,即逐个启动每个参与第二阶段模拟的模拟节点上的PSq个模拟进程,PSq为编号为q的模拟节点上的模拟进程数,1≤q≤NS;
5.4给每个模拟进程分配不同的逻辑进程号,逻辑进程号从1到
Figure A2009100432330005C1
第q个节点上的PSq个模拟进程的逻辑进程号分别是 1 + &Sigma; 1 &le; q 1 &le; ( q - 1 ) PS q 1 2 + &Sigma; 1 &le; q 1 &le; ( q - 1 ) PS q 1 . . . , &Sigma; 1 &le; q 1 &le; q PS q1 ;
模拟节点端模拟器B的执行过程如下:
5.5模拟器B的各个模拟进程并行地从本地磁盘上读取Trace文件:若RN等于0,则其读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,...,TN*u,u为模拟进程的逻辑进程号, 1 &le; u &le; &Sigma; 1 &le; q &le; NS PS q ; 若RN不等于0,则其读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,...,TN*u,u≤RN,或者TN*RN+(u-RN-1)*(TN-1)+1,TN*RN+(u-RN-1)*(TN-1)+2,...,TN*RN+(u-RN)*(TN-1), RN < u &le; &Sigma; 1 &le; q &le; NS PS q ;
5.6各个模拟进程基于Trace文件中记录的信息并行地进行模拟,综合第一个阶段的性能数据,得到最终的模拟预测性能数据。
CN2009100432339A 2009-04-28 2009-04-28 并行模拟中支持踪迹文件并行输入输出的方法 Expired - Fee Related CN101526915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100432339A CN101526915B (zh) 2009-04-28 2009-04-28 并行模拟中支持踪迹文件并行输入输出的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100432339A CN101526915B (zh) 2009-04-28 2009-04-28 并行模拟中支持踪迹文件并行输入输出的方法

Publications (2)

Publication Number Publication Date
CN101526915A true CN101526915A (zh) 2009-09-09
CN101526915B CN101526915B (zh) 2011-09-07

Family

ID=41094785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100432339A Expired - Fee Related CN101526915B (zh) 2009-04-28 2009-04-28 并行模拟中支持踪迹文件并行输入输出的方法

Country Status (1)

Country Link
CN (1) CN101526915B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799767A (zh) * 2010-03-05 2010-08-11 中国人民解放军国防科学技术大学 一种利用模拟器多种运行模式反复切换进行并行模拟的方法
CN102043594A (zh) * 2010-12-31 2011-05-04 中科海量存储技术(北京)有限公司 分布式环境下实现输入输出踪迹收集回放的系统和方法
CN102486805A (zh) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 工程现场应用的模拟方法及装置
CN102567079A (zh) * 2011-12-29 2012-07-11 中国人民解放军国防科学技术大学 基于渐进式踪迹更新的并行程序能耗模拟评估方法
CN102932464A (zh) * 2012-11-06 2013-02-13 无锡江南计算技术研究所 一种存储系统的性能分析方法及装置
WO2018103045A1 (zh) * 2016-12-08 2018-06-14 华为技术有限公司 测试点的创建方法,装置和系统
CN110968395A (zh) * 2019-10-23 2020-04-07 华为技术有限公司 一种在模拟器中处理渲染指令的方法及移动终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015314A1 (en) * 2004-06-30 2006-01-19 International Business Machines Corporation Methods, systems and program products for annotating system traces with control program information and presenting annotated system traces

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799767B (zh) * 2010-03-05 2013-03-06 中国人民解放军国防科学技术大学 一种利用模拟器多种运行模式反复切换进行并行模拟的方法
CN101799767A (zh) * 2010-03-05 2010-08-11 中国人民解放军国防科学技术大学 一种利用模拟器多种运行模式反复切换进行并行模拟的方法
CN102486805A (zh) * 2010-12-02 2012-06-06 中兴通讯股份有限公司 工程现场应用的模拟方法及装置
CN102043594A (zh) * 2010-12-31 2011-05-04 中科海量存储技术(北京)有限公司 分布式环境下实现输入输出踪迹收集回放的系统和方法
CN102567079B (zh) * 2011-12-29 2014-07-16 中国人民解放军国防科学技术大学 基于渐进式踪迹更新的并行程序能耗模拟评估方法
CN102567079A (zh) * 2011-12-29 2012-07-11 中国人民解放军国防科学技术大学 基于渐进式踪迹更新的并行程序能耗模拟评估方法
CN102932464A (zh) * 2012-11-06 2013-02-13 无锡江南计算技术研究所 一种存储系统的性能分析方法及装置
CN102932464B (zh) * 2012-11-06 2015-10-07 无锡江南计算技术研究所 一种存储系统的性能分析方法及装置
WO2018103045A1 (zh) * 2016-12-08 2018-06-14 华为技术有限公司 测试点的创建方法,装置和系统
CN108604205A (zh) * 2016-12-08 2018-09-28 华为技术有限公司 测试点的创建方法,装置和系统
CN108604205B (zh) * 2016-12-08 2021-02-12 华为技术有限公司 测试点的创建方法,装置和系统
CN110968395A (zh) * 2019-10-23 2020-04-07 华为技术有限公司 一种在模拟器中处理渲染指令的方法及移动终端
CN110968395B (zh) * 2019-10-23 2024-02-09 华为技术有限公司 一种在模拟器中处理渲染指令的方法及移动终端

Also Published As

Publication number Publication date
CN101526915B (zh) 2011-09-07

Similar Documents

Publication Publication Date Title
Carreira et al. A case for serverless machine learning
CN101526915B (zh) 并行模拟中支持踪迹文件并行输入输出的方法
Dong et al. Data elevator: Low-contention data movement in hierarchical storage system
CN101464922B (zh) 基于集群系统的计算机体系结构方案并行模拟优选方法
Zheng et al. PreDatA–preparatory data analytics on peta-scale machines
US8365111B2 (en) Data driven logic simulation
Castiglione et al. Modeling performances of concurrent big data applications
CN101231589B (zh) 用于原位开发嵌入式软件的系统和方法
CN109814990A (zh) 一种分布式并行协同仿真架构
US11436258B2 (en) Prometheus: processing-in-memory heterogenous architecture design from a multi-layer network theoretic strategy
US8725486B2 (en) Apparatus and method for simulating a reconfigurable processor
KR101715986B1 (ko) 신호 흐름이 프로그램된 디지털 신호 프로세서 코드의 효율적인 자원 관리를 위한 시스템 및 방법
CN103440163A (zh) 使用gpu并行实现的基于pic模型的加速器仿真方法
Long et al. A toolkit for modeling and simulating cloud data storage: An extension to cloudsim
Xiao et al. Prometheus: Processing-in-memory heterogeneous architecture design from a multi-layer network theoretic strategy
Wijerathne et al. Strengthening of parallel computation performance of integrated earthquake simulation
Ye et al. Accelerating CFD simulation with high order finite difference method on curvilinear coordinates for modern GPU clusters
He et al. Fecaffe: Fpga-enabled caffe with opencl for deep learning training and inference on intel stratix 10
CN101799767B (zh) 一种利用模拟器多种运行模式反复切换进行并行模拟的方法
CN115271078A (zh) 一种超级计算机与量子计算机协同的软件栈及工作方法
CN101141315A (zh) 网络资源调度仿真系统
Nie et al. Angel-ptm: A scalable and economical large-scale pre-training system in tencent
Korenkov et al. Simulation concept of NICA-MPD-SPD Tier0-Tier1 computing facilities
Poyraz et al. Application-specific I/O optimizations on petascale supercomputers
Lu et al. DistSim: A performance model of large-scale hybrid distributed DNN training

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110907

Termination date: 20140428