CN101464922B - 基于集群系统的计算机体系结构方案并行模拟优选方法 - Google Patents
基于集群系统的计算机体系结构方案并行模拟优选方法 Download PDFInfo
- Publication number
- CN101464922B CN101464922B CN2009100425829A CN200910042582A CN101464922B CN 101464922 B CN101464922 B CN 101464922B CN 2009100425829 A CN2009100425829 A CN 2009100425829A CN 200910042582 A CN200910042582 A CN 200910042582A CN 101464922 B CN101464922 B CN 101464922B
- Authority
- CN
- China
- Prior art keywords
- analog
- parameter
- configuration file
- file
- node
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于集群系统的计算机体系结构方案并行模拟优选方法,目的是提供一种计算机体系结构设计方案并行模拟优选的方法。技术方案是先构建具备远程命令执行环境的由主控节点和模拟节点组成的集群并行计算机系统,主控节点上安装有全局配置程序、模拟配置文件生成程序、任务调度程序和结果分析程序。全局配置程序进行全局性的配置设置;模拟配置文件生成程序生成所有的模拟配置文件;任务调度程序将模拟评估任务分配给各个节点,控制各个模拟节点并行地进行模拟评估;结果分析程序搜索模拟节点发来的模拟结果文件,进行统计,筛选出最优配置参数值,输出报告。采用本发明既能减少评价优选的时间,又能提高选择的准确度。
Description
技术领域
本发明涉及计算机系统模拟方法,特别是以集群并行计算机系统为宿主机,对计算机体系结构的不同配置方案进行并行模拟评估,以便对计算机体系结构设计方案进行优选的方法。
背景技术
在计算机系统的研制过程中,通常需要对计算机体系结构的各种配置情况进行评估,使得在技术与成本限制下获得最优的设计方案。例如,片上多处理器系统(CMP)的片上处理器核的数目及互连结构、处理器上高速缓存(Cache)大小、块大小和相联性等重要参数都有一定的可能范围,参数取值不同可能导致性能的很大变化,需要综合考虑这些参数的值,才能获得好的设计结果。又例如,计算机系统内部互连网络的拓扑结构可有多种方案,不同方案在性能特征方面存在很大差别。随着计算机体系结构的迅速发展,影响性能的因素越来越多,设计空间(全部配置选项的所有可能的组合情况)日益增大。对体系结构设计人员来说,如何评估巨大的设计空间中的各个配置方案,获得最优的选择是重要问题。
计算机体系结构模拟软件(以下简称模拟器)在上述计算机体系结构设计过程中具有广泛用途。模拟器一般具有可配置、可复用的能力,可以对所模拟的计算机系统的各项体系结构参数或方案选项进行配置,在现有的计算机(宿主机)上模拟运行真实基准测试程序或自动生成的工作负载(以下统称为Benchmark程序),获得目标系统采用该配置方案时的性能数据,为体系结构设计决策提供参考。基于模拟器对计算机体系结构进行评估已成为高性能计算机系统或关键器件研制周期中的重要环节,设计人员广泛使用模拟器来评价体系结构创新或改进的效果。例如,IBM公司在其PowerPC和Cell处理器研发中一直采用Mambo模拟器进行验证和评估,在其BlueGene系列超级计算机研制中采用BigSimulator来研究超级并行计算机系统的性能特性。AMD公司在其微处理器研制中也基于SimNow模拟器进行验证。Intel公司在内部使用一些专门的模拟器如XTREM、Simics等进行设计验证。国内中科院计算所在基于龙芯CPU的片上多核体系结构研究中也基于SimOS-Goodson来进行测试验证(高翔等,基于龙芯CPU的多核全系统模拟器SimOS-Goodson,软件学报,2007)。一些学者指出,为保持计算机系统的创新研究,模拟技术的能力必须实现新的跨越,为此他们专门向美国NSF呼吁增加对模拟器技术的支持(Kevin Skadron等,Challenges in Computer Architecture Evaluation,IEEE Computer,2003)。
目前已有很多模拟器软件系统,如SimpleScalar(威斯康星大学)、SimOS(斯坦福大学)、Wattch(哈佛大学)、PROTEUS(麻省理工大学)、WWT II(威斯康辛大学)、MPI-SIM(加州大学洛杉矶分校)、BigSimulator(伊利诺伊大学香槟分校)、Simics(瑞典Virtutech公司)、Mambo(IBM公司)、SimNow(AMD公司)、XTREM(普林斯顿大学和Intel公司)、GEMS(威斯康辛大学)、RSIM(莱斯大学、伊利诺伊大学等)、M5(密歇根大学)、LSE(普林斯顿大学)等。基于模拟器进行体系结构设计空间探索的方法通常是由设计人员手工设定所模拟的目标系统各个参数的具体取值和技术方案的具体选项(以下称为模拟配置),然后在宿主计算机上基于模拟器模拟运行Benchmark程序,获得该特定配置的性能数据(例如Benchmark程序在目标计算机系统上的执行时间,或者网络通信的带宽,或者是系统吞吐率)。为对设计空间内的多个候选配置进行评价,需要对每个候选配置逐个进行模拟评估。由于模拟器是采用软件的方法来模拟硬件的行为,其运行Benchmark程序的时间很长,通常比在真实目标机上运行相同Benchmark程序的时间大几个数量级,因此这种方法的时间开销很大。例如,文献(张福新等,基于SimpleScalar的龙芯CPU模拟器Sim-Godson,计算机学报,2007)报告了一种龙芯CPU的串行模拟器,在3.0GHz的Pentium 4微机上,模拟速度约为500K条指令每秒。而常用的CPU评测Benchmark程序集SPEC CPU2000中的多数程序在使用标准Ref输入集时都具有数千亿条指令,例如Mgrid程序约有640000000K条指令。据此推算,采用Sim-Godson模拟器,在一台3.0GHz的Pentium 4微机上对龙芯CPU的一种配置进行串行模拟,运行完整Mgrid程序所需时间约为14.8天;如果针对龙芯CPU的多种配置进行模拟优选,运行SPEC CPU2000中全部26个程序所需时间将会长达数年。由于串行模拟的时间太长,通常只能对设计空间内的少数几种配置情况进行模拟评估,而这极有可能遗漏最优的配置。还有的方法不对完整Benchmark程序进行模拟,而对Benchmark程序进行缩减,或者对Benchmark程序进行采样模拟,例如文献(Michael Van Biesbrouck等,Efficient SamplingStartup for Sampled Processor Simulation,2005 International Conference on HighPerformance Embedded Architectures & Compilers,2005)报告了一种处理器模拟的Benchmark采样方法,但其测试结果表明,没有进行预热(Warmup)的采样模拟方法得到的21个SPEC CPU2000程序的每指令时钟周期数(Cycle Per Instruction,CPI)的误差平均为16%到24%,对有的程序误差可达40%以上,使用固定预热大小的采样模拟方法对21个程序的平均误差在4%,但对部分程序的误差仍然达到17%。基于误差这么明显的模拟结果进行体系结构设计方案优选,同样有可能得不到最优的配置。且设计者手工进行机器配置参数与模拟选项的设置、模拟数据的收集与比较,不仅使用不方便,而且手工操作还容易出错。这是影响模拟器在体系结构设计中的应用效果的主要问题。
并行计算机系统相对于单处理器系统具有更强的计算能力与更大的存储容量,如果能够利用并行计算机系统来做模拟器软件的宿主机平台,可以有效地加速体系结构模拟评估的过程。但是,存在以下困难:
(1)目前绝大多数模拟器软件是串行程序,一个模拟器实例(指模拟器的运行实体,下同)只能运行于单个处理器(核)上,无法利用并行计算机的多个处理器(核)进行并行模拟。而使用串行模拟器在单处理器系统上进行模拟的时间开销是非常大的。
(2)当前部分模拟器软件(如GEMS和M5)具有多线程并行版本,一个模拟器实例能够使用片上多处理器系统的多个核,或者是对称多处理器(SMP)系统的多个处理器。例如文献(Kun Wang等,Parallelization of IBM Mambo SystemSimulator in functional modes,ACM SIGOPS Operating Systems Review,2008)报告了IBM中国研究中心开发的多线程并行版本的Mambo模拟器,对OpenMP版的NAS Parallel Benchmark 3.2的模拟,在4核宿主机上的并行加速比达到3.4。另一个典型例子是文献(Robert E.Lantz,Parallel SimOS:Scalabilityand Performance for Large System Simulation,斯坦福大学博士论文,2007)中报道的并行SimOS,其最大使用了64个处理器进行模拟,这是有文献报道的使用宿主机规模最大的多线程模拟器,并且损失了部分模拟精度。由于片上多处理器系统所包含的处理器核的数目通常不大,对称多处理器系统所包含的处理器的数目通常也很小(通常小于8个,含8个以上处理器的对称多处理器系统非常昂贵),故多线程并行模拟器所能达到的并行度都不高,对体系结构设计方案模拟优选时间的改善幅度非常有限。
(3)目前确实出现了部分支持以分布存储并行计算机为宿主机的消息传递模式并行模拟器原型系统,如WWT II、MPI-SIM和BigSimulator。但是,分布存储并行模拟器通常不适于模拟高性能共享存储和片上多处理器系统体系结构,原因是此类模拟器在模拟节点间的通信延迟很大,模拟紧耦合系统时的通信开销巨大,导致模拟性能急剧下降(Robert E.Lantz,Parallel SimOS:Scalability andPerformance for Large System Simulation,斯坦福大学博士论文,2007)。即使对松耦合的集群并行计算机系统的模拟,由于并行离散事件模拟中存在很大的步与通信开销,这些并行模拟器系统的并行效率也受到很大的影响,目前有文献报告的最好结果是BigSimulator在256节点的集群并行计算机系统上获得近150的并行加速比(Gengbin Zheng等,Simulation-based performanceprediction for large parallel machines,International Journal of ParallelProgramming,2005),而目前世界超级计算机排行榜Top500中的大多数计算机系统的规模都在1024个处理器(核)以上(http://www.top500.org/)。此外,此类并行模拟器原型系统基本上都采用直接执行模拟方式(R.C.Covington等,The Rice Parallel Processing Testbed,1988ACM SIGMETRICS Conference onMeasurement and Modeling of Computer Systems,1988),实际上只实现了对并行应用程序的模拟,而未真正实现对计算机体系结构的模拟,其主要目标是模拟并行应用程序在并行计算机系统上的行为特征,为并行算法与并行程序设计和优化提供验证方法(Gengbin Zheng,Achieving High Performance onExtremely Large Parallel Machines:Performance Prediction and Load Balancing,伊利诺伊大学博士论文,2005)。它们并不适用于支持计算机体系结构设计方案的优选。
由于上述困难的存在,目前在体系结构设计方案的优选过程中,仍然普遍采用单处理器系统作为宿主机来进行模拟测试。而随着并行计算技术的发展,并行计算机系统日益在科研单位或工业部门得到普及,利用并行计算机系统来加速设计方案优选过程已成为现实需求。
体系结构设计人员的需求是对大量设计方案进行评价,筛选出最优的方案,这种需求的核心是体系结构模拟的吞吐率——在尽可能短的时间内完成给定设计方案集的评估,或者在给定时间段内完成尽可能多的设计方案的评估。因此,可以转变思路,采用吞吐率计算(Throughput Computing)的方法来实现对多个方案的并行评估,而不是试图提高每个模拟方案评估的速度。只要以现有的串行或多线程并行模拟器软件为基础,以并行计算机系统为模拟的宿主机,通过设计相应的实验控制方案及软件程序,调度多个处理器上的模拟器软件来对多个设计方案并行地进行评估,就可以达到提高设计方案评估的吞吐率、加快总的评估进度的目标。这种方法的优点包括:(1)效率高,每个模拟器实例都以其既有方式在一个节点上运行,不会因为并行模拟而有效率上的损失,可使用成千上万处理器进行并行模拟,获得成千上万倍的性能加速效果;(2)更快的速度意味着可以对更大的体系结构设计空间进行探索,增加找到更优的设计方案的机会。(3)实施简单,无需对体系结构模拟器软件进行并行化,通常不需要对原模拟器软件进行修改,或者只需对原模拟器软件的输入输出接口做少量修改,即可利用并行宿主机的多个节点的计算处理能力;(4)通用性好,无论原模拟器软件是串行程序还是多线程并行程序,运行于何种体系结构的宿主机上,都可在本方法的框架中实施。因为目前集群并行计算机系统在学术研究机构与工业部门使用最为广泛,故以集群并行计算机系统为宿主机来进行计算机体系结构设计方案并行模拟优选能够更好地满足设计周期的需求。
根据专利文献检索,以往的专利与文献中尚未见到以吞吐率计算方式实现基于集群并行计算机系统的计算机体系结构设计方案模拟优选的相关报道。只有一些关于模拟器构造方面的方法申请了专利,如专利号分别为98808090.7、200480008289.6、200480033145.6的中国专利、专利号PCT/US2004/004092的美国专利,专利号为PCT/JP361914/2003、PCT/JP 376210/2002、PCT/JP 360362/2002的日本专利。另有一些专利关注并行模拟器技术,如专利号为5956261、5442772的美国专利等。
发明内容
本发明要解决的技术问题是提出一种采用集群并行计算机系统为宿主机来进行计算机体系结构设计方案并行模拟优选的方法,既减少评价优选的时间,又提高选择的准确度,且操作方便。
本发明技术方案包括以下步骤:
第一步,构建具备远程命令执行环境的集群并行计算机系统(以下简称集群系统),该集群系统由多个节点构成,每个节点都是一台可独立运行的计算机,各个节点间通过网络设备相互连接。指定一个节点为主控节点,它负责与用户交互,完成输入输出及模拟配置文件的生成、任务调度和结果分析。主控节点配有用户终端设备,如键盘、鼠标和显示器。其它节点称为模拟节点,它们负责对具体的体系结构配置进行模拟,并将模拟结果发送给主控节点。为后面描述方便,设共有P个可用的模拟节点,编号为1-P。
主控节点和模拟节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。主控节点和各个模拟节点都具有IP地址与主机名,并建立主机名与IP地址的映射关系,可通过主机名进行访问。同时,在主控节点与模拟节点上安装有配置远程命令执行环境(例如RSH(Remote Shell)或SSH(Secure Shell)),使得主控节点与模拟节点上的模拟用户间可以互相进行远程文件复制,或者启动对方机器上的程序。
主控节点上安装有全局配置程序、模拟配置文件生成程序、任务调度程序和结果分析程序。全局配置程序负责将全局性的配置设置记录在全局配置文件中,以对整个优选过程进行控制。模拟配置文件生成程序根据全局配置文件生成覆盖整个设计空间的模拟配置文件,每个模拟配置文件记录体系结构的一种配置,包含设计空间中每个参数的一个具体的取值,代表了设计空间的一个点。任务调度程序根据全局配置文件将模拟配置文件分发到各个模拟节点,并调度各个模拟节点针对各自分配的模拟配置文件进行模拟评估。结果分析程序接收各个模拟节点上的模拟结果,进行统计分析,筛选出最优配置。
模拟节点上安装有目标体系结构模拟器和Benchmark程序,模拟节点收到主控节点向它分配的模拟配置文件后,根据从模拟配置文件中获得各个体系结构参数的取值,在模拟器上模拟运行Benchmark程序,得到目标体系结构采用当前配置情况下的性能数据。
第二步,主控节点执行全局配置程序,进行全局性的配置设置,将设置结果记录在全局配置文件中,全局配置文件包含模拟节点列表域、模拟器软件域、体系结构参数域和目标性能参数域。全局配置程序进行配置设置的方法是:
2.1在一次体系结构方案模拟优选过程开始时,集群系统中有些节点可能因为发生故障、或者因为运行其它任务而不能用做本次模拟评估任务的模拟节点。全局配置程序指定当前可用做模拟节点的节点,并将各个节点的主机名记录在全局配置文件的模拟节点列表域中。
2.2任务调度程序在调度模拟节点上的模拟器执行Benchmark程序时,需要知道模拟节点上的模拟器软件和Benchmark程序的名称与路径,还有Benchmark程序运行时所需的命令行参数(这些参数是应用相关的参数而非体系结构参数,例如问题规模等)。因此,全局配置程序需要将模拟器软件的完整路径(含文件名)、Benchmark程序的完整路径(含文件名)以及运行Benchmark程序时的命令行参数记录在全局配置文件的模拟器软件域中。
2.3目标体系结构模拟器运行时,需要以模拟配置文件作为输入,该文件记录了本次模拟的目标计算机系统的各个体系结构参数的具体配置。模拟配置文件生成程序自动生成可覆盖整个体系结构设计空间的模拟配置文件,它需要从全局配置文件中获得各个体系结构参数的取值范围,故由全局配置程序将体系结构设计空间所包含的配置参数的名称及其取值范围记录在全局配置文件的体系结构参数域。体系结构参数域包含三个子域:枚举型参数子域、整数型参数子域和浮点型参数子域。设体系结构设计空间中包含K个枚举型参数e1,e2,…,eK,第α个枚举型参数eα(1≤α≤K)可取nα个枚举值eα(1),eα(2),…,eα(nα),则在枚举型参数子域中记录每个枚举参数eα的名称及其全部枚举值的集合{eα(1),eα(2),…,eα(nα)}。设模拟器需要L个整数型参数i1,i2,…,iL,第β个整数参数iβ(1≤β≤L)的下界为ILowβ,上界为IUpβ,递增步长为IStepβ(ILowβ、IUpβ和IStepβ均为整数,且IStepβ>0),则在整数型参数子域中记录每个整数参数的名称、上下界及步长。假设模拟器需要M个浮点型参数f1,f2,…,fM,第γ个浮点参数fγ(1≤γ≤M)的下界为FLowγ,上界为FUpγ,递增步长为FStepγ(其中FLowγ、FUpγ和FStepγ均为整数,且FStepγ>0),则在浮点型参数子域中记录每个浮点参数的名称、上下界及步长。通常对每个枚举型参数、整数型参数和浮点型参数都使用一行来记录,以方便解析。
2.4结果分析程序对模拟结果进行自动分析,优选出最优的结果。为对模拟结果进行自动分析,需要知道用户究竟关心模拟结果中的哪些性能参数,这些参数的值是大好,还是小好。因此,全局配置程序将用户关心的这些目标性能参数及其正负向属性设置在全局配置文件的目标性能参数域。如果参数值越大说明对应的体系结构配置越好,则这种参数具有正向属性;如果参数值越大说明对应体系结构配置越差,则这种参数具有负向属性。例如,模拟运行Benchmark程序获得的浮点性能、存储带宽、网络带宽等参数越大越好,属于正向参数,其正负向属性值设为1;而模拟运行Benchmark程序获得的执行时间、CPI、Cache失效率、网络延迟等参数越小越好,属于负向参数,其正负向属性设值为-1。设共有R个目标性能参数PU1,PU2,…,PUR,全局配置程序在全局配置文件的目标性能参数域中记录各个目标性能参数的名称与正负向属性PV1,PV2,…,PVR,各个目标性能参数的名称与模拟器输出文件中对应参数的名称要保持一致。
第三步,主控节点上的模拟配置文件生成程序从全局配置文件的体系结构参数域中获得体系结构设计空间包含的各个参数的名称及其取值范围,生成所有的模拟配置文件。每个模拟配置文件对应目标体系结构设计空间的一个具体配置,它包含K+L+M行(K是枚举型参数的数目,L是整数型参数的数目,M是浮点型参数的数目),每一行记录一个体系结构参数的名称及其当前取值。
模拟配置文件生成过程是:
3.1根据全局配置文件产生一个模拟配置文件生成脚本。步骤是:
3.1.1创建一个脚本程序,向脚本程序中写入初始化代码将模拟配置文件编号File_ID设为1。
3.1.2解析全局配置文件,获得全部枚举型参数e1,e2,...,eK的名称及其枚举集合E1,E2,...EK。对每一个枚举型参数,写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该参数所有的取值。除第一条循环语句外,每次写入的循环语句都要位于前一次写入的循环语句结构的内部。这样就得到了一个K层的紧嵌套循环。
3.1.3解析全局配置文件,获得全部整数型参数i1,i2,...,iL的名称、下界ILow1,ILow2...,ILowL、上界IUp1,IUp2,...,IUpL和递增步长IStep1,IStep2,...,IStepL。对每一个整数型参数iβ(1≤β≤L),写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该整数型参数所有的取值,以一个整数为索引变量,索引变量的下界是ILowβ,上界是IUpβ,步长为IStepβ。其中第一次写入的循环语句位于步骤3.1.2生成的嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入的循环语句结构的内部。该步骤在步骤3.1.2得到的最内层循环中加入了一个L层的紧嵌套循环。
3.1.4解析全局配置文件,获得全部浮点型参数f1,f2,...,fM的名称、下界FLow1,FLow2...,FLowM、上界FUp1,FUp2,...,FUpM和递增步长FStep1,FStep2,...,FStepM。因为程序中一般不支持以浮点变量作为循环的索引变量,需要做专门处理。对每个浮点参数fγ(1≤γ≤M),先计算Nγ=(FUpγ-FLowγ)/FStepγ(Nγ取整数);然后,写入一个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变量的下界是1,上界是Nγ,步长是1。其中第一次写入的循环语句位于步骤3.1.3得到嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入循环语句结构的内部。该步骤在步骤3.1.3得到的最内层循环中加入了一个M层的嵌套循环。
3.1.5在步骤3.1.4得到的模拟配置文件生成脚本中的最内层循环内,写入功能代码块,该功能代码块的流程是:
(1)创建编号为File_ID的模拟配置文件,模拟配置文件的名字都以固定的标识符开头,并将其编号作为文件名的一部分。
(2)对每个枚举型模拟配置参数,在当前模拟配置文件中写入一行语句,记录该枚举参数的当前值。配置文件生成脚本执行时,由于在该语句外有多层嵌套循环,该语句会被多次迭代执行,枚举参数当前取值就是嵌套循环的当次迭代时该枚举参数对应的索引变量的值。
(3)对每个整数型模拟配置参数,在当前模拟配置文件中写入一行,记录该整数参数的当前值。整数参数当前取值就是嵌套循环的当次迭代时该整数参数对应的索引变量的值。
(4)对每个浮点型模拟配置参数,首先计算其当前取值,然后在当前模拟配置文件中写入一行,记录其当前值。
(5)关闭当前模拟配置文件,File_ID的值增加1。
3.1.6在配置文件生成脚本的最后写入代码,功能是将生成的不同模拟配置文件的数目记录到一个文件中。
3.2执行模拟配置文件生成脚本,生成全部模拟配置文件,存储在主控节点上,每个模拟配置文件按其生成的顺序编号。模拟配置文件生成脚本的执行流程是:
3.2.1初始化,将模拟配置文件初始编号File_ID的值设为1。
3.2.2开始执行嵌套循环的一次迭代,创建编号为File_ID的模拟配置文件SCFile_ID。嵌套循环的每一次迭代是其每个循环索引变量取得一个具体的值时的执行过程。
3.2.3对每个枚举型模拟配置参数,在模拟配置文件SCFile_ID中写入一行,记录该枚举参数的当前值,形式为:枚举参数名=枚举参数当前取值。
3.2.4对每个整数型模拟配置参数,在当前模拟配置文件SCFile_ID中写入一行,记录该整数参数的当前值,形式为:整数参数名=整数参数当前取值。
3.2.5对每个浮点型模拟配置参数fγ(1≤γ≤M),首先计算其当前取值。设执行嵌套循环当次迭代时该浮点参数对应的索引变量的取值为FlIdxγ,则浮点型参数的当前取值为FLowλ+FStepλ*(FlIdxγ-1)。然后,在模拟配置文件SCFile_ID中写入一行,形式为:浮点参数名=浮点参数当前取值。
3.2.6关闭模拟配置文件SCFile_ID,File_ID的值增加1。
3.2.7如果已执行完嵌套循环的所有迭代,则转步骤3.2.8,否则转步骤3.2.2。
3.2.8创建一个文件,在其中写入File_ID-1的值。
上述过程遍历了设计空间的每一个点,对每一个点,采用该点对应的全部体系结构参数的当前取值生成一个配置文件,并且按照模拟配置文件生成的顺序给其编号。因此,所生成的全部模拟配置文件能够完全覆盖目标体系结构设计空间,且不会出现重复。
第四步,任务调度程序将模拟评估任务分配给各个节点,并控制各个模拟节点并行地进行模拟评估。
4.1模拟评估任务分配。由于各个模拟节点的处理能力相同,为了有效利用所有模拟节点,实现负载平衡,应保证每个模拟节点上的模拟任务基本相等。每个模拟任务的执行过程就是模拟器软件针对一个模拟配置进行模拟评估的过程,故每个模拟任务与一个模拟配置文件对应。通常对不同配置进行模拟的时间开销大致相等,故要求在各个模拟节点上尽可能平均地分配模拟配置文件。循环分布策略是可以达到这一要求的一种策略,其方法是:
设共有P个可用模拟节点,N个模拟配置文件(N>P)。若P|N(N能被P整除),则模拟节点Wη(1≤η≤P)上分配的模拟配置文件集合是{SCη,SCη+P,SCη+2P,...,SCη+N-P};否则,令N除以P的余数为ε(ε≠0),则模拟节点Wη(1≤η≤ε)上分配的配置文件集合是{SCη,SCη+P,SCη+2P,...,SCη+N-P},模拟节点Wη(ε<η≤P)上分配的配置文件集合是{SCη,SCη+P,SCη+2P,...,}。其中表示不大于的最大整数。
任务调度程序根据上述分配策略,将模拟配置文件从主控节点分发到各个模拟节点,即完成了模拟评估任务分配。注意在主控节点上要保留所有模拟配置文件的副本。
4.2控制各个模拟节点并行地进行模拟评估。任务调度程序调度各个模拟节点启动体系结构模拟器,以各自分配的模拟配置文件为目标计算机体系结构配置,模拟运行Benchmark程序,得到该配置情况下Benchmark程序运行的性能数据,记录在结果文件中,并将结果文件发送给主控节点。具体步骤是:
4.2.1任务调度程序在主控节点上生成模拟控制脚本。该模拟控制脚本程序的流程是:
(a)搜索本模拟节点上一个尚未评估过的的模拟配置文件,记录其编号File_ID。
(b)执行模拟器软件,目标体系结构采用当前模拟配置文件中的配置,对Benchmark程序进行模拟测试,模拟结果输出到编号为File_ID的结果文件中。
(c)将生成的模拟结果文件发送到主控节点。
(d)若尚未评估完本节点上的全部模拟配置文件,转步骤(a);否则流程结束。
4.2.2任务调度程序将模拟控制脚本从主控节点上复制到各个模拟节点上。
4.2.3任务调度程序启动各个模拟节点上的模拟控制脚本;各个模拟节点执行模拟控制脚本,对各个模拟配置文件进行模拟评估,将每个模拟配置文件的评估结果记录在一个结果文件中,结果文件的编号与模拟配置文件的编号相同,每评估完一个模拟配置文件就将其结果文件发送给主控节点。
第五步,主控节点上的结果分析程序不断地搜索模拟节点发来的模拟结果文件,进行统计,筛选出针对各个性能参数的最优配置参数值,最后输出报告。步骤是:
5.1进行初始化工作。具体是:
(i)解析全局配置文件,初始化目标性能参数列表PU1,PU2,…,PUR,并为每个目标性能参数PUλ(1≤λ≤R)创建一个数组结构PSCλ,用于存储该性能参数值最优时对应的模拟配置参数值,该数组包含K+L+M个元素,其中第h个元素PSCλ[h]对应第h个模拟配置参数。
(ii)从记录文件中获得总模拟配置数SCount,初始化计数器RCounter的值为1。
(iii)任意选取一个模拟结果文件,采用其中的性能参数值来初始化目标性能参数列表PU1,PU2,…,PUR,采用与该模拟结果文件编号相同的模拟配置文件中的配置参数值来初始化每个数组PSCλ(1≤λ≤R)。
5.2搜索一个尚未统计过的模拟结果文件CrtRFile,从中获得全部性能参数的值CrtPU1,CrtPU2,…,CrtPUR。
5.3分别将CrtPU1,CrtPU2,…,CrtPUR与已记录的对应最优性能参数进行比较,如果CrtPU1,CrtPU2,…,CrtPUR中的一个或多个优于已记录的对应最优性能参数,则转5.4;否则,转5.5。
5.4更新最优性能参数和对应的模拟配置参数的记录,过程如下:
(A)找到与结果文件CrtRFile编号相同的模拟配置文件CrtSCFile。
(B)解析CrtSCFile中模拟配置参数的值,记录在临时数组tempSC中。
(C)初始化,置迭代索引变量λ的值为1。
(D)若PVλ=1且CrtPUλ>PUλ,或者PVλ=-1且CrtPUλ<PUλ,则转(E);否则,转(I)。
(E)置PUλ=CrtPUλ。
(F)初始化,置迭代索引变量h的值为1。
(G)置PSCλ[h]=tempSC[h]。
(H)若h<K+L+M,则h的值增加1,转(G);否则,退出迭代,转(I)。
(I)若λ<R,则λ的值增加1,转(D);否则,步骤5.4结束。
5.5计数器变量RCounter的值增加1。
5.6进行判断,如果RCounter<SCount,则转5.2;否则,转5.7。
5.7输出最终获得的各个最优性能参数PU1,PU2,...,PUR以及它们对应的模拟配置参数的值。
与现有技术相比,本发明有以下技术优点:
1.通过良好的过程设计及一系列专用程序的配合,实现了模拟配置文件的自动生成、模拟任务的自动调度和模拟结果的自动分析,极大地方便了用户操作。模拟配置文件自动生成保证了能够完全覆盖模拟配置空间,并且没有重复的点。模拟任务的调度通过均匀分配模拟配置文件,使各个模拟节点上的模拟评估任务基本相等,基本实现了负载平衡。
2.可扩展性好。主控节点与各个模拟节点之间需要通过网络传输的只有模拟配置文件、结果输出文件和一些远程执行命令,通信量很小。主控节点上的全局配置程序、模拟配置文件生成程序、任务调度程序、结果分析程序的开销都很小,相对于模拟器软件的执行开销来说几乎可以忽略不计。因此,一个主控节点即可协调控制成千上万模拟节点来并行地进行配置方案评估。
3.并行效率高。一个模拟节点上的模拟器运行期间不需要与其它模拟节点上的模拟器进行同步与通信,不存在额外的并行开销,每个模拟器在模拟节点上的运行效率均不会降低,总体上能够获得线性并行加速比,即采用P个模拟节点就能使模拟优选过程的时间缩短为原来的1/P。例如,使用1000个处理器,可以将原来需要1年才能完成的计算机体系结构设计方案优选工作在9小时内完成。
4.由于体系结构设计方案优选速度的大幅度提高,从而可以对更大的体系结构设计空间进行探索,有利于找到更优的体系结构设计方案。
综上所述,本发明基于集群系统,采取“模拟配置自动生成、任务自动调度、吞吐率式并行模拟、模拟结果自动筛选”的方式,以较小的成本实现了对计算机体系结构设计空间的并行模拟评估,大大加快了对计算机体系结构设计空间进行模拟评估的速度,并提高了体系结构设计方案优选过程的自动化程度。
附图说明
图1是本发明第一步构建的集群系统的物理结构图。
图2是本发明集群系统的软件部署图。
图3是本发明的总流程图。
图4是全局配置程序的流程图。
图5是模拟配置文件生成程序产生模拟配置文件生成脚本的流程图。
图6是模拟配置文件生成脚本的执行流程图。
图7是任务调度程序的流程图。
图8是模拟节点上模拟控制脚本的执行流程图。
图9是结果分析程序的流程图。
具体实施方法
图1是发明第一步构建的集群系统的物理结构图。根据功能将集群的节点分为主控节点和模拟节点。主控节点和模拟节点均包含处理器、主存、磁盘和网络接口设备。主控节点配有输入输出终端。主控节点与模拟节点之间通过互连网络设备相连,互连网络可以是以太网、Myrinet、Infiniband,或是其它类型的网络。
图2是本发明集群系统的软件部署图。在主控节点上安装有操作系统软件、网络TCP/IP软件、远程命令执行软件、全局配置程序,模拟配置文件生成程序、任务调度程序和结果分析程序。其中前三者是通用软件,可从一些公开发行的软件包中获得;后四者是本发明的专用软件。在模拟节点上安装有操作系统软件、TCP/IP网络软件、远程命令执行软件、体系结构模拟器、Benchmark程序。其中前三者是通用软件,可从一些公开发行的软件包中获得。体系结构模拟器和Benchmark程序是体系结构设计者根据需要选定的专门软件,其中Benchmark程序应该是已编译过的可直接在模拟器上运行的程序。
图3所示是本发明总流程图。
主控节点端的总流程:
步骤S301,全局配置程序进行全局配置设置,并将所产生的全集配置信息记录在全局配置文件中。
步骤S302,模拟配置文件生成程序生成所有的模拟配置文件,并按照模拟配置文件生成的顺序给其编号。
步骤S303,任务调度程序将模拟配置文件从主控节点分发到各个模拟节点上。
步骤S304,任务调度程序生成模拟控制脚本,并将其分发到各个模拟节点上。
步骤S305,任务调度程序启动各个模拟节点上的模拟控制脚本。
步骤S306,结果分析程序搜索一个尚未分析过的模拟结果文件,进行统计分析。
步骤S307,结果分析程序判断是否已分析完全部的模拟结果文件,若尚未分析完,则转步骤S306;否则,转步骤S308。
步骤S308,输出最终获得的各个最优性能参数及其对应的模拟配置参数的值,流程结束。
每个模拟节点端的总流程:
步骤S309,模拟节点响应主控节点上任务调度程序的文件分发命令,接收属于本节点的模拟配置文件子集。
步骤S310,模拟节点响应主控节点上任务调度程序的文件复制命令,接收模拟控制脚本。
步骤S311,模拟节点响应主控节点上任务调度程序发出的远程执行命令,执行模拟控制脚本,该脚本程序控制对本节点所分配的模拟配置文件逐个进行模拟评估,每个模拟配置文件的评估结果记录在一个与模拟配置文件同编号的结果文件中,并将结果文件发送给主控节点。当完成本节点全部模拟配置文件的模拟评估后,流程结束。
图4所示是全局配置程序的流程图。主要过程:
步骤S401,接受输入的参与本次模拟评估任务的各个模拟节点的主机名,记录在全局配置文件的模拟节点列表域中。
步骤S402,设置模拟节点上的模拟器软件和Benchmark程序的名称和路径,设置Benchmark程序运行时所需的命令行参数,记录在在全局配置文件的模拟器软件域中。
步骤S403,设置设计空间所包含的所有配置参数名及其取值范围,在全局配置文件的体系结构参数域写入三个子域:枚举型参数子域、整数型参数子域和浮点型参数子域。
步骤S404,设置用户关心的目标性能参数及其正负向属性。设共有R个用户感兴趣的性能参数PU1,PU2,...,PUR,如果PUλ(1≤λ≤R)为正向参数,则其正负向属性PVλ=1;如果PUλ为负向参数,则其正负向属性PVλ=-1。在全局配置文件的目标性能参数域中记录各个目标性能参数的名称与正负向属性。记录完成后,过程结束。
图5所示是模拟配置文件生成程序产生模拟配置文件生成脚本的流程图。主要过程:
步骤S501,创建一个新的模拟配置文件生成脚本程序,写入初始化代码(初始化File_ID为1)。
步骤S502,解析全局配置文件,获得全部枚举型参数e1,e2,...,eK的名称及其枚举值集合E1,E2,...EK。对每一个枚举型参数,写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该参数所有的取值。除第一条循环语句外,每次写入的循环语句都要位于前一次写入的循环语句结构的内部。
步骤S503,解析全局配置文件,获得全部整数型参数i1,i2,...,iL的名称、下界ILow1,ILow2...,ILowL、上界IUp1,IUp2,...,IUpL和递增步长IStep1,IStep2,...,IStepL。对每一个整数型参数iβ(1≤β≤L),写入一个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变量的下界是ILowβ,上界是IUpβ,步长为IStepβ,功能是枚举该整数型参数所有的取值。其中第一次写入的循环语句位于步骤S502生成的嵌套循环的最内层循环内,其后每次写入的循环语句都要位于前一次写入的循环语句结构的内部。
步骤S504,解析全局配置文件,获得全部浮点型参数f1,f2,...,fM的名称、下界FLow1,FLow2...,FLowM、上界FUp1,FUp2,...,FUpM和递增步长FStep1,FStep2,...,FStepM。因为程序中一般不支持对以浮点变量作为循环的索引变量,这里需要做专门处理。对每个浮点参数fγ(1≤γ≤M),先计算Nγ=(FUpγ-FLowγ)/FStepγ(Nγ取整数);然后,写入一个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变量的下界是1,上界是Nγ,步长是1。其中第一次写入的循环语句位于步骤S503生成嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入的循环语句结构的内部。
步骤S505,在步骤S504得到的模拟配置文件生成脚本的最内层循环内,写入主要的功能代码块,该代码块的流程是:
S505.1创建编号为File_ID的模拟配置文件,模拟配置文件的名字都以固定的标识符开头,并将编号作为其文件名的一部分。
S505.2对每个枚举型模拟配置参数,在当前模拟配置文件中写入一行,记录该枚举参数的当前值。
S505.3对每个整数型模拟配置参数,在当前模拟配置文件中写入一行,记录该整数参数的当前值。
S505.4对每个浮点型模拟配置参数,首先计算其当前取值,然后在当前模拟配置文件记录其当前值。
S505.5关闭当前模拟配置文件,File_ID的值增加1。
步骤S506,在步骤S505得到的配置文件生成脚本的最后写入结束代码,功能是记录生成的不同模拟配置文件的数目到一个文件中。
图6所示是模拟配置文件生成脚本的执行流程图。主要过程:
步骤S601,进行初始化,将模拟配置文件初始编号File_ID的值设为1。
步骤S602,开始执行嵌套循环的一个迭代,创建编号为File_ID的模拟配置文件SCFile_ID。
步骤S603,对每个枚举型模拟配置参数,在模拟配置文件SCFile_ID中写入一行,记录该枚举参数的当前值,形式为:枚举参数名=枚举参数当前取值。
步骤S604,对每个整数型模拟配置参数,在当前模拟配置文件SCFile_ID中写入一行,记录该整数参数的当前值,形式为:整数参数名=整数参数当前取值。
步骤S605,对每个浮点型模拟配置参数fλ(1≤λ≤M),首先计算其当前取值。设嵌套循环的当次迭代时该浮点参数对应的索引变量的取值为FlIdxj,则浮点型参数的当前取值为FLowλ+FStepλ*(FlIdxγ-1)。然后,在模拟配置文件SCFile_ID中写入一行,形式为:浮点参数名=浮点参数当前取值。
步骤S606,关闭模拟配置文件SCFile_ID,File_ID的值增加1。
步骤S607,判断是否已执行完嵌套循环的所有迭代,如果已执行完,则转步骤S608,否则转步骤S602。
步骤S608,创建一个记录生成的不同模拟配置文件的数目的文件,在其中写入File_ID-1的值。
图7所示是任务调度程序的流程图。主要流程:
步骤S701,解析全局配置文件,获得模拟节点列表,采用循环分布策略,将模拟配置文件从主控节点上分发到各个模拟节点上。该步骤完成后,每个模拟节点上都有一个属于自己的模拟配置文件子集,不同模拟节点上模拟配置文件之间的交集为空。
步骤S702,生成模拟控制脚本,该脚本是控制各个模拟节点进行工作的批处理程序。
步骤S703,将模拟控制脚本复制到每个模拟节点上。
步骤S704,启动模拟节点上的模拟控制脚本,使各个模拟节点对其所分配的模拟配置逐个进行模拟。
图8所示是模拟节点上模拟控制脚本的执行流程图。主要流程:
步骤S801,搜索本模拟节点上一个尚未评估过的模拟配置文件,记录其编号File_ID。
步骤S802,执行模拟器软件,目标体系结构采用当前模拟配置文件中的配置,对Benchmark程序进行模拟测试,模拟结果输出到编号为File_ID的结果文件中。
步骤S803,将步骤S802生成的模拟结果文件发送到主控节点上。
步骤S804,判断本节点上的所有模拟配置文件是否已评估完,若未评估完,转步骤S801;否则,流程结束。
图9所示是结果分析程序的流程图。主要流程:
步骤S901,进行初始化工作。过程如下:
S901.1解析全局配置文件,初始化用户感兴趣的目标性能参数列表PU1,PU2,...,PUR,并为每个目标性能参数PUλ(1≤λ≤R)创建一个数组结构PSCλ,用于存储该性能参数值最优时对应的模拟配置参数列表,该数组包含K+L+M个元素,其中第h个元素PSCλ[h]对应第h个模拟配置参数。
S901.2从记录文件中获得模拟配置文件总数SCount,初始化计数器RCounter值为1。
S901.3任意选取一个模拟结果文件,采用其中的性能参数值来初始化目标性能参数列表PU1,PU2,...,PUR,采用与该模拟结果文件编号相同的模拟配置文件中的配置参数的值来初始化每个数组PSCλ(1≤λ≤R)。
步骤S902,搜索一个尚未分析过的模拟结果文件CrtRFile,从中获得全部性能参数的值CrtPU1,CrtPU2,...,CrtPUR。
步骤S903,分别将CrtPU1,CrtPU2,...,CrtPUR与已记录的对应最优性能参数进行比较,如果CrtPU1,CrtPU2,...,CrtPUR中的一个或多个优于已记录的对应最优性能参数,则转步骤S904;否则,转步骤S905。
步骤S904,更新最优性能参数和对应的模拟配置参数的记录,过程如下:
S904.1找到与结果文件CrtRFile编号相同的配置文件CrtSCFile。
S904.2解析CrtSCFile中各个模拟配置参数的值,记录在临时数组tempSC中。
S904.3初始化,置迭代索引变量λ的值为1。
S904.4若PVλ=1且CrtPUλ>PUλ,或者PVλ=-1且CrtPUλ<PUλ,则转S904.5;否则,转S904.9。
S904.5置PUλ=CrtPUλ。
S904.6初始化,置迭代索引变量h的值为1。
S904.7置PSCλ[h]=tempSC[h]。
S904.8若h<K+L+M,则h的值增加1,转S904.7;否则,退出迭代,转S904.9。
S904.9若λ<R,则λ的值增加1,转S904.4;否则,步骤S904结束。
步骤S905,计数器变量RCounter的值增加1。
步骤S906,进行判断,如果RCounter<SCount,则转到步骤S902;否则,转步骤S907。
步骤S907,输出最终获得的各个最优性能参数PU1,PU2,...,PUR以及它们对应的模拟配置参数的值。
本发明是一种基于集群并行计算机系统和体系结构模拟器来模拟优选计算机体系结构设计方案的方法,该方法采用集群系统作为宿主机,基于专门设计的全局配置程序、模拟配置文件生成程序、任务调度程序、结果分析程序的协调配合,控制在多个模拟节点上采用不同配置文件来运行模拟器的不同实例,并行地对目标计算机体系结构的不同配置方案进行评估,加速了体系结构设计方案优选过程,有利于获得更优的设计方案,并提高了体系结构设计方案优选过程的自动化程度,方便了用户操作。
Claims (5)
1.一种基于集群系统的计算机体系结构方案并行模拟优选方法,其特征在于包括以下步骤:
第一步,构建具备远程命令执行环境的集群系统,该集群系统由多个节点构成,每个节点都是一台可独立运行的计算机,各个节点间通过网络设备相互连接,指定一个节点为主控节点,它负责与用户交互,完成输入输出及模拟配置文件的分发、任务调度和结果分析,其它节点称为模拟节点,它们负责对具体的体系结构配置进行模拟,并将模拟结果发送给主控节点,P个可用的模拟节点编号为1-P;主控节点上安装有全局配置程序、模拟配置文件生成程序、任务调度程序和结果分析程序;全局配置程序负责将全局性的配置设置记录在全局配置文件中;模拟配置文件生成程序根据全局配置文件生成覆盖整个设计空间的模拟配置文件,每个模拟配置文件记录体系结构的一种配置,包含设计空间中每个参数的一个具体的取值,代表设计空间的一个点;任务调度程序根据全局配置文件将模拟配置文件分发到各个模拟节点,并调度各个模拟节点针对各自分配的模拟配置文件进行模拟评估;结果分析程序接收各个模拟节点上的模拟结果,进行统计分析,筛选出最优配置;模拟节点上安装有目标体系结构模拟器和Benchmark程序,模拟节点收到主控节点向它分配的模拟配置文件后,根据从模拟配置文件中获得各个体系结构参数的取值,在模拟器上模拟运行Benchmark程序,得到目标体系结构采用当前配置情况下的性能数据;
第二步,主控节点执行全局配置程序,进行全局性的配置设置,将设置结果记录在全局配置文件中,全局配置文件包含模拟节点列表域、模拟器软件域、体系结构参数域和目标性能参数域,全局配置程序进行配置设置的方法是:
2.1全局配置程序指定当前可用做模拟节点的节点,并将指定结果记录在全局配置文件的模拟节点列表域中;
2.2全局配置程序将模拟器软件的文件名、完整路径、Benchmark程序的文件名、完整路径以及运行Benchmark程序时的命令行参数记录在全局配置文件的模拟器软件域中;
2.3全局配置程序将体系结构设计空间所包含的配置参数的名称及其取值范围记录在全局配置文件的体系结构参数域,体系结构参数域包含三个子域:枚举型参数子域、整数型参数子域和浮点型参数子域;设体系结构设计空间中包含K个枚举型参数e1,e2,...,eK,第α个枚举型参数eα取nα个枚举值eα(1),eα(2),…,eα(nα),1≤α≤K,则在枚举型参数子域中记录每个枚举参数eα的名称及其全部枚举值的集合{eα(1),eα(2),…,eα(nα)};设模拟器需要L个整数型参数i1,i2,...,iL,第β个整数参数iβ的下界为ILowβ,上界为IUpβ,递增步长为IStepβ,ILowβ、IUpβ和IStepβ均为整数,且IStepβ>0,1≤β≤L,则在整数型参数子域中记录每个整数参数的名称、上下界及步长;设模拟器需要M个浮点型参数f1,f2,...,fM,第γ个浮点参数fγ的下界为FLowγ,上界为FUpγ,递增步长为FStepγ,其中FLowγ、FUpγ和FStepγ均为整数,且FStepγ>0,1≤γ≤M,则在浮点型参数子域中记录每个浮点参数的名称、上下界及步长;
2.4全局配置程序将目标性能参数及其正负向属性设置在全局配置文件的目标性能参数域,设共有R个目标性能参数PU1,PU2,...,PUR,全局配置程序在全局配置文件的目标性能参数域中记录各个目标性能参数的名称与正负向属性PV1,PV2,...,PVR,各个目标性能参数的名称与模拟器输出文件中对应参数的名称要保持一致;
第三步,模拟配置文件生成程序从全局配置文件的体系结构参数域中获得体系结构设计空间包含的各个参数的名称及其取值范围,生成所有的模拟配置文件,每个模拟配置文件对应目标体系结构设计空间的一个具体配置,它包含K+L+M行,K是枚举型参数的数目,L是整数型参数的数目,M是浮点型参数的数目,每一行记录一个体系结构参数的名称及其当前取值;模拟配置文件生成过程是:
3.1根据全局配置文件产生一个模拟配置文件生成脚本;
3.2执行模拟配置文件生成脚本,生成配置文件,存储在主控节点上,每个模拟配置文件按其生成的顺序编号;
第四步,任务调度程序将模拟评估任务分配给各个节点,并控制各个模拟节点并行地进行模拟评估,包括以下步骤:
4.1任务调度程序将模拟配置文件从主控节点分发到各个模拟节点;
4.2控制各个模拟节点并行地进行模拟评估,即任务调度程序调度各个模拟节点启动体系结构模拟器,以各自分配的模拟配置文件为目标计算机体系结构配置,模拟运行Benchmark程序,得到该配置情况下Benchmark程序运行的性能数据,记录在结果文件中,并将结果文件发送给主控节点;具体步骤是:
4.2.1任务调度程序在主控节点上生成模拟控制脚本;
4.2.2任务调度程序将模拟控制脚本从主控节点上复制到各个模拟节点上;
4.2.3任务调度程序启动各个模拟节点上的模拟控制脚本;各个模拟节点执行模拟控制脚本,对各个模拟配置文件进行模拟评估,将每个模拟配置文件的评估结果记录在一个结果文件中,结果文件的编号与模拟配置文件的编号相同,每评估完一个模拟配置文件就将其结果文件发送给主控节点;
第五步,主控节点上的结果分析程序不断地搜索模拟节点发来的模拟结果文件,进行统计分析,筛选出针对各个性能参数的最优配置参数值,输出报告,步骤是:
5.1进行初始化工作,具体是:
(i)解析全局配置文件,初始化目标性能参数列表PU1,PU2,...,PUR,并为每个目标性能参数PUλ创建一个数组结构PSCλ,用于存储该性能参数值最优时对应的模拟配置参数值,1≤λ≤R,该数组包含K+L+M个元素,其中第h个元素PSCλ[h]对应第h个模拟配置参数;
(ii)从记录文件中获得总模拟配置数SCount,初始化计数器RCounter的值为1;
(iii)任意选取一个模拟结果文件,采用其中的性能参数值来初始化目标性能参数列表PU1,PU2,...,PUR,采用与该模拟结果文件编号相同的模拟配置文件中的配置参数值来初始化每个数组PSCλ;
5.2搜索一个尚未统计过的模拟结果文件CrtRFile,从中获得全部性能参数的值CrtPU1,CrtPU2,..,CrtPUR;
5.3分别将CrtPU1,CrtPU2,...,CrtPUR与已记录的对应最优性能参数进行比较,如果CrtPU1,CrtPU2,...,CrtPUR中的一个或多个优于已记录的对应最优性能参数,则转5.4;否则,转5.5;
5.4更新最优性能参数和对应的模拟配置参数的记录,过程如下:
(A)找到与结果文件CrtRFile编号相同的模拟配置文件CrtSCFile;
(B)解析CrtSCFile中模拟配置参数的值,记录在临时数组tempSC中;
(C)初始化,置迭代索引变量λ的值为1;
(D)若PVλ=1且CrtPUλ>PUλ,或者PVλ=-1且CrtPUλ<PUλ,则转(E);否则,转(I);
(E)置PUλ=CrtPUλ;
(F)初始化,置迭代索引变量h的值为1;
(G)置PSCλ[h]=tempSC[h];
(H)若h<K+L+M,则h的值增加1,转(G);否则,退出迭代,转(I);
(I)若λ<R,则λ的值增加1,转(D);否则,步骤5.4结束;
5.5计数器变量RCounter的值增加1;
5.6进行判断,如果RCounter<SCount,则转5.2;否则,转5.7;
5.7输出最终获得的各个最优性能参数PU1,PU2,..,PUR以及它们对应的模拟配置参数的值。
2.如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其特征在于产生模拟配置文件生成脚本的步骤是:
步骤1,创建一个脚本程序,向脚本程序中写入初始化代码将模拟配置文件编号File_ID设为1;
步骤2,解析全局配置文件,获得全部枚举型参数e1,e2,...,eK的名称及其枚举集合E1,E2,...EK,对每一个枚举型参数,写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该参数所有的取值,除第一条循环语句外,每次写入的循环语句都要位于前一次写入的循环语句结构的内部,这样就得到了一个K层的紧嵌套循环;
步骤3,解析全局配置文件,获得全部整数型参数i1,i2,...,iL的名称、下界ILow1,ILow2...,ILowL、上界IUp1,IUp2,...,IUpL和递增步长IStep1,IStep2,...,IStepL,对每一个整数型参数iβ,1≤β≤L,写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该整数型参数所有的取值,以一个整数为索引变量,索引变量的下界是ILowβ,上界是IUpβ,步长为IStepβ;其中第一次写入的循环语句位于步骤2生成的嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入的循环语句结构的内部,该步骤在步骤2得到的最内层循环中加入了一个L层的紧嵌套循环;
步骤4,解析全局配置文件,获得全部浮点型参数f1,f2,...,fM的名称、下界FLow1,FLow2...,FLowM、上界FUp1,FUp2,...,FUpM和递增步长FStep1,FStep2,...,FStepM;对每个浮点参数fγ,1≤γ≤M,先计算Nγ=(FUpγ-FLowγ)/FStepγ,Nγ取整数;然后,写入一个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变量的下界是1,上界是Nγ,步长是1;其中第一次写入的循环语句位于步骤3得到嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入循环语句结构的内部,该步骤在步骤.3得到的最内层循环中加入了一个M层的嵌套循环;
步骤5,在步骤4得到的模拟配置文件生成脚本中的最内层循环内,写入功能代码块,该功能代码块的流程是:
(1)创建编号为File_ID的模拟配置文件,模拟配置文件的名字都以固定的标识符开头,并将其编号作为文件名的一部分;
(2)对每个枚举型模拟配置参数,在当前模拟配置文件中写入一行语句,记录该枚举参数的当前值,枚举参数当前取值就是嵌套循环的当次迭代时该枚举参数对应的索引变量的值;
(3)对每个整数型模拟配置参数,在当前模拟配置文件中写入一行,记录该整数参数的当前值,整数参数当前取值就是嵌套循环的当次迭代时该整数参数对应的索引变量的值;
(4)对每个浮点型模拟配置参数,首先计算其当前取值,然后在当前模拟配置文件中写入一行,记录其当前值;
(5)关闭当前模拟配置文件,File_ID的值增加1;
步骤6,在配置文件生成脚本的最后写入代码,功能是将生成的不同模拟配置文件的数目记录到一个文件中。
3.如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其特征在于模拟配置文件生成脚本的执行流程是:
步骤1)初始化,将模拟配置文件初始编号File_ID的值设为1;
步骤2)开始执行嵌套循环的一次迭代,创建编号为File_ID的模拟配置文件SCFile_ID;
步骤3)对每个枚举型模拟配置参数,在模拟配置文件SCFile_ID中写入一行,记录该枚举参数的当前值,形式为:枚举参数名=枚举参数当前取值;
步骤4)对每个整数型模拟配置参数,在当前模拟配置文件SCFile_ID中写入一行,记录该整数参数的当前值,形式为:整数参数名=整数参数当前取值;
步骤5)对每个浮点型模拟配置参数fγ,1≤γ≤M,首先计算其当前取值;设执行嵌套循环当次迭代时该浮点参数对应的索引变量的取值为FlIdxγ,则浮点型参数的当前取值为FLowλ+FStepλ*(FlIdxγ-1),然后,在模拟配置文件SCFile_ID中写入一行,形式为:浮点参数名=浮点参数当前取值;
步骤6)关闭模拟配置文件SCFile_ID,File_ID的值增加1;
步骤7)如果已执行完嵌套循环的所有迭代,则转步骤8),否则转步骤2);
步骤8)创建一个文件,在其中写入File_ID-1的值。
4..如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其特征在于模拟脚本程序的流程是:
(a)搜索本模拟节点上一个尚未评估过的模拟配置文件,记录其编号File_ID;
(b)执行模拟器软件,目标体系结构采用当前模拟配置文件中的配置,对Benchmark程序进行模拟测试,模拟结果输出到编号为File_ID的文件中;
(c)将生成的模拟结果文件发送到主控节点;
(d)若尚未评估完本节点上的全部模拟配置文件,转步骤(a);否则流程结束。
5.如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其特征在于任务调度程序将模拟配置文件从主控节点分发到各个模拟节点时采用循环分布策略,循环分布策略是:设共有P个可用模拟节点,N个模拟配置文件,N>P,若P|N即N能被P整除,则模拟节点Wη上分配的模拟配置文件是{SCη,SCη+P,SCη+2P,...,SCη+N-P},1≤η≤P;否则,令N除以P的余数为ε,ε≠0,当1≤η≤ε时,模拟节点Wη上分配的配置文件集合是{SCη,SCη+P,SCη+2P,...,SCη+N-P},当ε<η≤P时,模拟节点Wη上分配的配置文件集合是{SCη,SCη+P,SCη+2P,...,},其中表示不大于的最大整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100425829A CN101464922B (zh) | 2009-01-22 | 2009-01-22 | 基于集群系统的计算机体系结构方案并行模拟优选方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100425829A CN101464922B (zh) | 2009-01-22 | 2009-01-22 | 基于集群系统的计算机体系结构方案并行模拟优选方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101464922A CN101464922A (zh) | 2009-06-24 |
CN101464922B true CN101464922B (zh) | 2010-08-18 |
Family
ID=40805497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100425829A Expired - Fee Related CN101464922B (zh) | 2009-01-22 | 2009-01-22 | 基于集群系统的计算机体系结构方案并行模拟优选方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101464922B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694628B (zh) * | 2009-10-21 | 2012-07-04 | 中国人民解放军国防科学技术大学 | 一种串行与并行模拟相结合的并行计算机系统性能模拟方法 |
CN101799767B (zh) * | 2010-03-05 | 2013-03-06 | 中国人民解放军国防科学技术大学 | 一种利用模拟器多种运行模式反复切换进行并行模拟的方法 |
US9154577B2 (en) * | 2011-06-06 | 2015-10-06 | A10 Networks, Inc. | Sychronization of configuration file of virtual application distribution chassis |
CN102693297B (zh) * | 2012-05-16 | 2015-03-11 | 华为技术有限公司 | 数据处理方法、节点和提取、转换和加载etl系统 |
CN103207804B (zh) * | 2013-04-07 | 2016-03-30 | 杭州电子科技大学 | 基于集群作业日志的MapReduce负载模拟方法 |
CN103455412B (zh) * | 2013-09-23 | 2016-10-19 | 扬州大学 | 一种基于随机进程代数的并发系统性能模拟方法 |
CN103577382B (zh) * | 2013-10-24 | 2017-01-04 | 华为技术有限公司 | 一种配置节点控制器的方法和装置 |
CN105427695B (zh) * | 2015-11-03 | 2018-11-02 | 中国农业大学 | 编程类考题自动测评方法和系统 |
CN106708609B (zh) * | 2015-11-16 | 2020-06-26 | 阿里巴巴集团控股有限公司 | 一种特征生成方法及系统 |
CN106681840A (zh) * | 2016-12-30 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种云操作系统的任务调度方法及装置 |
CN108572863B (zh) * | 2017-03-13 | 2022-07-12 | 国家新闻出版广电总局广播电视卫星直播管理中心 | 分布式任务调度系统及方法 |
WO2019227343A1 (zh) * | 2018-05-30 | 2019-12-05 | 深圳大学 | 基于度量空间的支撑点并行枚举方法及装置 |
CN110545218A (zh) * | 2019-09-05 | 2019-12-06 | 北京邮电大学 | 一种tcp性能监控方法及装置 |
WO2023097661A1 (zh) * | 2021-12-03 | 2023-06-08 | 中国科学院深圳先进技术研究院 | 基于生成对抗网络的大数据系统资源配置参数调优方法 |
CN114006777B (zh) * | 2022-01-04 | 2022-03-11 | 广东工业大学 | 一种集群周期协同控制方法和装置 |
CN114489995B (zh) * | 2022-02-15 | 2022-09-30 | 北京永信至诚科技股份有限公司 | 一种分布式调度处理方法及系统 |
CN116107561B (zh) * | 2023-04-14 | 2023-06-23 | 湖南云畅网络科技有限公司 | 一种基于低代码的动作节点快速构建方法、系统和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005045710A2 (en) * | 2003-11-10 | 2005-05-19 | Robert Bosch Gmbh | Simulation system and computer-implemented method for simulation and verifying a control system |
CN1766848A (zh) * | 2005-11-08 | 2006-05-03 | 北京大学 | 基于模拟器的嵌入式软件运行时能耗估算方法 |
CN1879109A (zh) * | 2003-11-10 | 2006-12-13 | 罗伯特.博世有限公司 | 计算机实现的模拟并验证控制系统的模拟系统及方法 |
-
2009
- 2009-01-22 CN CN2009100425829A patent/CN101464922B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005045710A2 (en) * | 2003-11-10 | 2005-05-19 | Robert Bosch Gmbh | Simulation system and computer-implemented method for simulation and verifying a control system |
CN1879109A (zh) * | 2003-11-10 | 2006-12-13 | 罗伯特.博世有限公司 | 计算机实现的模拟并验证控制系统的模拟系统及方法 |
CN1766848A (zh) * | 2005-11-08 | 2006-05-03 | 北京大学 | 基于模拟器的嵌入式软件运行时能耗估算方法 |
Non-Patent Citations (1)
Title |
---|
肖明旺.一个实用高性能PC集群的Linpack测试与分析.<<计算机应用研究>>.2004,(第9期),183-187. * |
Also Published As
Publication number | Publication date |
---|---|
CN101464922A (zh) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101464922B (zh) | 基于集群系统的计算机体系结构方案并行模拟优选方法 | |
Craig et al. | CPL6: The new extensible, high performance parallel coupler for the Community Climate System Model | |
Carrington et al. | A performance prediction framework for scientific applications | |
Aderholz et al. | Models of Networked Analysis at Regional Centres for LHC Experiments (MONARC), Phase 2 Report, 24th March 2000 | |
Barker et al. | Using performance modeling to design large-scale systems | |
Lawlor et al. | ParFUM: a parallel framework for unstructured meshes for scalable dynamic physics applications | |
Xiao et al. | Plasticity-on-chip design: Exploiting self-similarity for data communications | |
CN104239595B (zh) | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 | |
CN104903855B (zh) | 用于配置多处理器阵列的方法和设备以及开发系统 | |
Ahmed et al. | An integrated interconnection network model for large-scale performance prediction | |
CN101799767B (zh) | 一种利用模拟器多种运行模式反复切换进行并行模拟的方法 | |
Abhyankar et al. | Evaluation of AC optimal power flow on graphical processing units | |
Hayder et al. | Challenges in high performance computing for reservoir simulation | |
Bielert et al. | HAEC-SIM: A simulation framework for highly adaptive energy-efficient computing platforms | |
Richards et al. | Quantitative Performance Assessment of Proxy Apps and Parents (Report for ECP Proxy App Project Milestone AD-CD-PA-504-5) | |
Nuttall | Parallel implementation and application of the random finite element method | |
Springmeyer et al. | From petascale to exascale: Eight focus areas of R&D challenges for HPC simulation environments | |
McCurdy et al. | Creating science-driven computer architecture: A new path to scientific leadership | |
Hashemi | Automated software synthesis for streaming applications on embedded manycore processors | |
He et al. | Scalability and efficiency challenges for the exascale supercomputing system: practice of a parallel supporting environment on the Sunway exascale prototype system | |
Becciani et al. | Cosmological simulations and data exploration: a testcase on the usage of grid infrastructure | |
Austin et al. | Hardware Evaluation Analytical Modeling and Node Simulation: Benefits of Tighter GPU Integration | |
Gracia et al. | ChEESE-2P Deliverable: D2. 1 First code audit report | |
He et al. | DeletePop: A DLT Execution Time Predictor Based on Comprehensive Modeling | |
Budiardja et al. | Check for updates Ready for the Frontier: Preparing Applications for the World's First Exascale System |
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: 20100818 Termination date: 20120122 |