发明名称 并行模拟中支持踪迹文件并行输入输出的方法
摘要 本发明公布了一种并行模拟中支持踪迹文件并行输入输出的方法,目的是提出一种支持分布式并行Trace文件I/O的方法,提高并行模拟过程中Trace文件I/O的效率和模拟精度。技术方案是先构建运行并行模拟器的由主控节点和模拟节点组成的宿主机,在主控节点上执行主配置程序,进行全局配置;然后由主控节点上的调度软件A调度模拟节点上的模拟器A执行模拟工作,再由主控节点上的Trace分布软件为每个目的模拟节点生成Trace移动脚本并发给目的模拟节点,目的模拟节点执行Trace移动脚本,从相应的源节点上将Trace文件移动到本节点;最后由主控节点上的调度软件B调度模拟节点上的模拟器B执行模拟工作。采用本发明可大幅度提高Trace文件I/O的效率,同时还可提高模拟精度。
申请公布号 CN101526915B 申请公布日期 2011.09.07
申请号 CN200910043233.9 申请日期 2009.04.28
申请人 中国人民解放军国防科学技术大学 发明人 车永刚;徐传福;王勇献;王正华;彭宇行
分类号 G06F11/34(2006.01)I;G06F9/455(2006.01)I;G06F9/46(2006.01)I 主分类号 G06F11/34(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 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个节点的主机名HE<sub>i</sub>;2.1.4在当前节点的主机名HE<sub>i</sub>后写入该节点的模拟进程数目PE<sub>i</sub>;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个节点的主机名HS<sub>j</sub>;2.2.4在当前节点的主机名HS<sub>j</sub>后写入该节点上的模拟进程数目PS<sub>j</sub>;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,在全局配置文件中记录映射方法的名称,用变量MAP<sub>E</sub>标识;2.3.4设置第二个模拟阶段的模拟进程到节点的映射方法,映射方法与第一个模拟阶段相同,在全局配置文件中记录映射方法的名称,用变量MAP<sub>S</sub>标识;2.3.5设置Trace文件名的前导标识符,记录在全局配置文件中;2.3.6关闭全局配置文件,完成全局配置;第三步,由主控节点上的调度软件A调度模拟节点上的模拟器A执行模拟工作,进行第一个模拟阶段的并行模拟:调度软件A的流程如下:3.1从全局配置文件获得源节点列表文件的存放目录及名字,以及第一个模拟阶段模拟进程到节点的映射方法MAP<sub>E</sub>和Trace文件名的前导标识符;3.2解析源节点列表文件,获得参与第一个模拟阶段模拟的节点名及其上的模拟进程数;3.3启动每个模拟节点上的模拟进程,即逐个启动每个参与第一个模拟阶段模拟的模拟节点上的PE<sub>k</sub>个模拟进程,PE<sub>k</sub>为编号为k的模拟节点上的模拟进程数1≤k≤NE;3.4给每个模拟进程分配不同的逻辑进程号,逻辑进程号从1到<img file="FSB00000517448700021.GIF" wi="211" he="97" />第k个模拟节点上的PE<sub>k</sub>个模拟进程的编号分别是<img file="FSB00000517448700022.GIF" wi="326" he="101" /><img file="FSB00000517448700023.GIF" wi="333" he="100" />...,<img file="FSB00000517448700024.GIF" wi="208" he="95" />模拟节点端模拟器A的执行过程如下:3.5模拟器A的各个模拟进程并行地参与模拟运行Benchmark程序,进行功能仿真和初步的性能模拟;3.6每个模拟进程生成一个与本进程的逻辑进程号相同编号的Trace文件,记录本模拟阶段已模拟得到的性能数据以及下一模拟阶段所需要的性能事件,每个模拟进程产生的Trace文件都存储在本地磁盘中,即第k个模拟节点上模拟进程产生的Trace文件记录在节点名为HE<sub>k</sub>的节点上,Trace文件的命名采用“前导标识符”+“编号”的方式;第四步,主控节点上的Trace分布软件为每个目的节点生成一个Trace移动脚本,将其发给目的节点,目的节点执行Trace移动脚本,从相应的源节点上将Trace文件移动到本节点。4.1在主控节点端执行Trace分布软件,流程如下:4.1.1初始化目的节点号q为1,置第二个模拟阶段的模拟进程数<img file="FSB00000517448700031.GIF" wi="335" he="100" />Trace文件数<img file="FSB00000517448700032.GIF" wi="362" he="94" />如果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置目的节点上的逻辑进程号<maths num="0001"><![CDATA[<math><mrow><mi>m</mi><mo>=</mo><mi>m</mi><mn>1</mn><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mn>1</mn><mo>&le;</mo><mi>q</mi><mn>1</mn><mo>&le;</mo><mrow><mo>(</mo><mi>q</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></munder><msub><mi>PS</mi><mrow><mi>q</mi><mn>1</mn></mrow></msub><mo>;</mo></mrow></math>]]></maths>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文件编号NF=TN×RN+(m-RN-1)(TN-1)+t,初始化计数器r的值为0,置PT的值为0;4.1.7计算:r=r+1;PT=PT+PE<sub>r</sub>;4.1.8如果NT>PT,转4.1.7;否则,转4.1.9;4.1.9在该新的Trace移动脚本中加入一条命令,功能是使用远程复制命令将源节点HE<sub>r</sub>上编号为NT的Trace文件移动到目的节点HS<sub>q</sub>上;4.1.10如果t<IMAX,置t=t+1,转4.1.6;4.1.11若m1<PS<sub>q</sub>,置m1=m1+1,转4.1.4;4.1.12关闭该新的Trace移动脚本,使用远程复制命令将该新的Trace移动脚本移动到目的节点HS<sub>q</sub>上,并在节点HS<sub>q</sub>上启动该新的Trace移动脚本;4.1.13若q<NS,置q=q+1,转4.1.2;否则,结束;4.2目的节点端从源节点上将Trace文件移动到本节点,方法是:每个目的节点接收主控节点发来的Trace移动脚本,执行该Trace移动脚本,将第二个模拟阶段本节点上的模拟进程要读取的Trace文件逐个地从源节点移动到本节点上;第五步,主控节点上的调度软件B调度模拟节点上的模拟器B执行模拟工作,调度软件B的流程如下:5.1从全局配置文件中获得目的节点列表的存放目录及名字,以及第二个模拟阶段模拟进程到节点的映射方法MAP<sub>S</sub>;5.2解析目的节点列表文件,获得参与第二个模拟阶段模拟的各个节点名及其上的模拟进程数;5.3启动每个模拟节点上的模拟进程,即逐个启动每个参与第二个模拟阶段模拟的模拟节点上的PS<sub>q</sub>个模拟进程,PS<sub>q</sub>为编号为q的模拟节点上的模拟进程数,1≤q≤NS;5.4给每个模拟进程分配不同的逻辑进程号,逻辑进程号从1到<img file="FSB00000517448700041.GIF" wi="203" he="101" />第q个节点上的PS<sub>q</sub>个模拟进程的逻辑进程号分别是<img file="FSB00000517448700042.GIF" wi="330" he="104" /><img file="FSB00000517448700043.GIF" wi="340" he="103" />...,<img file="FSB00000517448700044.GIF" wi="205" he="101" />模拟节点端模拟器B的执行过程如下:5.5模拟器B的各个模拟进程并行地从本地磁盘上读取Trace文件:若RN等于0,则其读取的Trace文件编号是TN*(u-1)+1,TN*(u-1)+2,...,TN*u,u为模拟进程的逻辑进程号,<img file="FSB00000517448700045.GIF" wi="351" he="138" />若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),<img file="FSB00000517448700046.GIF" wi="381" he="114" />5.6各个模拟进程基于Trace文件中记录的信息并行地进行模拟,综合第一个模拟阶段的性能数据,得到最终的模拟预测性能数据。
地址 410073 湖南省长沙市砚瓦池正街47号