基于集群系统的计算机体系结构方案并行模拟优选方法

文档序号:6482182阅读:217来源:国知局
专利名称:基于集群系统的计算机体系结构方案并行模拟优选方法
技术领域
本发明涉及计算机系统模拟方法,特别是以集群并行计算机系统为宿主机,对计算 机体系结构的不同配置方案进行并行模拟评估,以便对计算机体系结构设计方案进行优 选的方法。
背景技术
在计算机系统的研制过程中,通常需要对计算机体系结构的各种配置情况进行评估, 使得在技术与成本限制下获得最优的设计方案。例如,片上多处理器系统(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.0 GHz的Pentium 4微机上,模拟速度约为500K条指令每秒。而常用的CPU评 测Benchmark程序集SPEC CPU2000中的多数程序在使用标准Ref输入集时都具有数千 亿条指令,例如Mgrid程序约有640000000K条指令。据此推算,采用Sim-Godson模拟 器,在一台3.0 GHz的Pentium 4微机上对龙芯CPU的一种配置进行串行模拟,运行完 整Mgrid程序所需时间约为14.8天;如果针对龙芯CPU的多种配置进行模拟优选,运行 SPECCPU2000中全部26个程序所需时间将会长达数年。由于串行模拟的时间太长,通 常只能对设计空间内的少数几种配置情况进行模拟评估,而这极有可能遗漏最优的配置。 还有的方法不对完整Benchmark程序进行模拟,而对Benchmark程序进行縮减,或者对 Benchmark程序进行采样模拟,例如文献(Michael Van Biesbrouck等,E伍cient Sampling Startup for Sampled Processor Simulation , 2005 International Conference on High Performance Embedded Architectures & Compilers, 2005)报告了一种处理器模拟的 Benchmark采样方法,但其测试结果表明,没有迸行预热(Waramp)的采样模拟方法得到的21个SPECCPU2000程序的每指令时钟周期数(Cycle Per Instruction, CPI)的误差 平均为16%到24%,对有的程序误差可达40%以上,使用固定预热大小的采样模拟方法 对21个程序的平均误差在4%,但对部分程序的误差仍然达到17%。基于误差这么明显 的模拟结果进行体系结构设计方案优选,同样有可能得不到最优的配置。且设计者手工 进行机器配置参数与模拟选项的设置、模拟数据的收集与比较,不仅使用不方便,而且 手工操作还容易出错。这是影响模拟器在体系结构设计中的应用效果的主要问题。
并行计算机系统相对于单处理器系统具有更强的计算能力与更大的存储容量,如果
能够利用并行计算机系统来做模拟器软件的宿主机平台,可以有效地加速体系结构模拟 评估的过程。但是,存在以下困难
(1) 目前绝大多数模拟器软件是串行程序, 一个模拟器实例(指模拟器的运行实体, 下同)只能运行于单个处理器(核)上,无法利用并行计算机的多个处理器(核) 进行并行模拟。而使用串行模拟器在单处理器系统上进行模拟的时间开销是非 常大的。
(2) 当前部分模拟器软件(如GEMS和M5)具有多线程并行版本, 一个模拟器实 例能够使用片上多处理器系统的多个核,或者是对称多处理器(SMP)系统的 多个处理器。例如文献(KunWang等,Parallelization ofIBM Mambo System Simulator in functional modes, ACM SIGOPS Operating Systems Review, 2,008) 报告了 IBM中国研究中心开发的多线程并行版本的Mambo模拟器,对 OpenMP版的NAS Parallel Benchmark 3.2的模拟,在4核宿主机上的并行加速 比达到3.4。另一个典型例子是文献(RobertE. Lantz, Parallel SimOS: Scalability and Performance for Large System Simulation,斯坦福大学博士论文,2007)中 报道的并行SimOS,其最大使用了64个处理器进行模拟,这是有文献报道的 使用宿主机规模最大的多线程模拟器,并且损失了部分模拟精度。由于片上多 处理器系统所包含的处理器核的数目通常不大,对称多处理器系统所包含的处 理器的数目通常也很小(通常小于8个,含8个以上处理器的对称多处理器系 统非常昂贵),故多线程并行模拟器所能达到的并行度都不高,对体系结构设 计方案模拟优选时间的改善幅度非常有限。
(3) 目前确实出现了部分支持以分布存储并行计算机为宿主机的消息传递模式并 行模拟器原型系统,如WWTII、 MPI-SIM和BigSimulator。但是,分布存储 并行模拟器通常不适于模拟高性能共享存储和片上多处理器系统体系结构,原因是此类模拟器在模拟节点间的通信延迟很大,模拟紧耦合系统时的通信开销巨大,导致模拟性能急剧下降(Robert E.Lantz, Parallel SimOS: Scalability andPerformance for Large System Simulation,斯坦福大学博士论文,2007)。即使对松耦合的集群并行计算机系统的模拟,由于并行离散事件模拟中存在很大的同步与通信开销,这些并行模拟器系统的并行效率也受到很大的影响,目前有文献报告的最好结果是BigSinmlator在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, 1988 ACM 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)的方法来实现对多个方案的并行评估,而不是试图提高每个模拟方案评估的速度。只要以现有的串行或多线程并行模拟器软件为基础,以并行计算机系统为模拟的宿主机,通过设计相应的实验控制方案及软件程序,调度多个处理器上的模拟器软件来对多个设计方案并行地进行评估,就可以达到提高设计方案评
11估的吞吐率、加快总的评估进度的目标。这种方法的优点包括(1)效率高,每个模拟器实例都以其既有方式在一个节点上运行,不会因为并行模拟而有效率上的损失,可使用成千上万处理器进行并行模拟,获得成千上万倍的性能加速效果;(2)更快的速度意味着可以对更大的体系结构设计空间进行探索,增加找到更优的设计方案的机会。(3)实施简单,无需对体系结构模拟器软件进行并行化,通常不需要对原模拟器软件进行修改,或者只需对原模拟器软件的输入输出接口做少量修改,即可利用并行宿主机的多个节点的计算处理能力;(4)通用性好,无论原模拟器软件是串行程序还是多线程并行程序,运行于何种体系结构的宿主机上,都可在本方法的框架中实施D因为目前集群并行计算机系统在学术研究机构与工业部门使用最为广泛,故以集群并行计算机系统为宿主机来进行计算机体系结构设计方案并行模拟优选能够更好地满足设计周期的需求。
根据专利文献检索,以往的专利与文献中尚未见到以吞吐率计算方式实现基于集群并行计算机系统的计算机体系结构设计方案模拟优选的相关报道。只有一些关于模拟器构造方面的方法申请了专利,如专利号分别为98808090.7 、 200480008289.6、200480033145.6的中国专利、专利号PCT/US2004/004092的美国专利,专利号为PCT/JP361914/2003、 PCT/JP 376210/2002、 PCT/JP 360362/2002的日本专利。另有一些专利关注并行模拟器技术,如专利号为5956261、 5442772的美国专利等。

发明内容
本发明要解决的技术问题是提出一种采用集群并行计算机系统为宿主机来进行计算机体系结构设计方案并行模拟优选的方法,既减少评价优选的时间,又提高选择的准确度,且操作方便。
本发明技术方案包括以下步骤
第一步,构建具备远程命令执行环境的集群并行计算机系统(以下简称集群系统),该集群系统由多个节点构成,每个节点都是一台可独立运行的计算机,各个节点间通过网络设备相互连接。指定一个节点为主控节点,它负责与用户交互,完成输入输出及模拟配置文件的生成、任务调度和结果分析。主控节点配有用户终端设备,如键盘、鼠标和显示器。其它节点称为模拟节点,它们负责对具体的体系结构配置进行模拟,并将模拟结果发送给主控节点。为后面描述方便,设共有P个可用的模拟节点,编号为l-户。
主控节点和模拟节点上均安装有操作系统、TCP/IP协议软件,配置了网络环境。主控节点和各个模拟节点都具有IP地址与主机名,并建立主机名与IP地址的映射关系,可通过主机名进行访问。同时,在主控节点与模拟节点上安装有配置远程命令执行环境(例如RSH (Remote Shell)或SSH (Secure Shell)),使得主控节点与模拟节点上的模拟用户间可以互相进行远程文件复制,或者启动对方机器上的程序。
主控节点上安装有全局配置程序、模拟配置文件生成程序、任务调度程序和结果分析程序。全局配置程序负责将全局性的配置设置记录在全局配置文件中,以对整个优选过程进行控制。模拟配置文件生成程序根据全局配置文件生成覆盖整个设计空间的模拟配置文件,每个模拟配置文件记录体系结构的一种配置,包含设计空间中每个参数的一个具体的取值,代表了设计空间的一个点。任务调度程序根据全局配置文件将模拟配置文件分发到各个模拟节点,并调度各个模拟节点针对各自分配的模拟配置文件进行模拟评估。结果分析程序接收各个模拟节点上的模拟结果,进行统计分析,筛选出最优配置。
模拟节点上安装有目标体系结构模拟器和Benchmark程序,模拟节点收到主控节点向它分配的模拟配置文件后,根据从模拟配置文件中获得各个体系结构参数的取值,在模拟器上模拟运行Benchmark程序,得到目标体系结构采用当前配置情况下的性能数据。
第二步,主控节点执行全局配置程序,进行全局性的配置设置,将设置结果记录在全局配置文件中,全局配置文件包含模拟节点列表域、模拟器软件域、体系结构参数域和目标性能参数域。全局配置程序进行配置设置的方法是
2.1在一次体系结构方案模拟优选过程开始时,集群系统中有些节点可能因为发生故障、或者因为运行其它任务而不能用做本次模拟评估任务的模拟节点。全局配置程序指定当前可用做模拟节点的节点,并将各个节点的主机名记录在全局配置文件的模拟节点列表域中。
2.2任务调度程序在调度模拟节点上的模拟器执行Benchmark程序时,需要知道模拟节点上的模拟器软件和Benchmark程序的名称与路径,还有Benchmark程序运行时所需的命令行参数(这些参数是应用相关的参数而非体系结构参数,例如问题规模等)。因此,全局配置程序需要将模拟器软件的完整路径(含文件名)、Benchmark程序的完整路径(含文件名)以及运行Benchmark程序时的命令行参数记录在全局配置文件的模拟器软件域中。
2.3目标体系结构模拟器运行时,需要以模拟配置文件作为输入,该文件记录了本次模拟的目标计算机系统的各个体系结构参数的具体配置。模拟配置文件生成程序自动生成可覆盖整个体系结构设计空间的模拟配置文件,它需要从全局配置文件中获得各个体系结构参数的取值范围,故由全局配置程序将体系结构设计空间所包含的配置参数的名称及其取值范围记录在全局配置文件的体系结构参数域。体系结构参数域包含三个子域枚举型参数子域、整数型参数子域和浮点型参数子域。设体系结构设计空间中包含《个
枚举型参数ei,e2,...,^ ,第《个枚举型参数~ (Kc^/:)可取" 个枚举值
^(1)A(2),…,ea(Wa),则在枚举型参数子域中记录每个枚举参数^的名称及其全部枚举值的集合k(l),ea(2),…,e。("a"。设模拟器需要Z个整数型参数/^2,...,^,第〃个整数参
数^ (1《P《£ )的下界为/Zo,,上界为/"巧,递增步长为ZS^;^ ( /Zo, 、 /L^和/5^/^均为整数,且ZS^;^〉0),则在整数型参数子域中记录每个整数参数的名称、上下界及步长。假设模拟器需要似个浮点型参数/1,/2,...,/^,第y个浮点参数力(lSy^M)的下界为FZoWy,上界为尸C7&,递增步长为FSfe^ (其中FZo^、 F[/^和F&e;^均为整数,且,5^&>0),则在浮点型参数子域中记录每个浮点参数的名称、上下界及步长。
通常对每个枚举型参数、整数型参数和浮点型参数都使用一行来记录,以方便解析。
2.4结果分析程序对模拟结果进行自动分析,优选出最优的结果。为对模拟结果进行自动分析,需要知道用户究竟关心模拟结果中的哪些性能参数,这些参数的值是大好,还是小好。因此,全局配置程序将用户关心的这些目标性能参数及其正负向属性设置在全局配置文件的目标性能参数域。如果参数值越大说明对应的体系结构配置越好,则这种参数具有正向属性;如果参数值越大说明对应体系结构配置越差,则这种参数具有负向属性。例如,模拟运行Benchmark程序获得的浮点性能、存储带宽、网络带宽等参数越大越好,属于正向参数,其正负向属性值设为1;而模拟运行Benchmark程序获得的执行时间、CPI、 Cache失效率、网络延迟等参数越小越好,属于负向参数,其正负向属性设值为-1。设共有及个目标性能参数尸M,户[/2,…,尸f^,全局配置程序在全局配置文件的目标性能参数域中记录各个目标性能参数的名称与正负向属性/^1,/^2,...,/>&,各个
目标性能参数的名称与模拟器输出文件中对应参数的名称要保持一致。
第三步,主控节点上的模拟配置文件生成程序从全局配置文件的体系结构参数域中获得体系结构设计空间包含的各个参数的名称及其取值范围,生成所有的模拟配置文件。每个模拟配置文件对应目标体系结构设计空间的一个具体配置,它包含K +丄+ M行(K是枚举型参数的数目,£整数型参数的数目,M是浮点型参数的数目),每一行记录一个体系结构参数的名称及其当前取值。模拟配置文件生成过程是
3.1根据全局配置文件产生一个模拟配置文件生成脚本。步骤是
3.1.1创建一个脚本程序,向脚本程序中写入初始化代码将模拟配置文件编号
14F,7e一/"设为1。
3.1.2解析全局配置文件,获得全部枚举型参数£1^2,...,~的名称及其枚举集合
A, A,...五k。对每一个枚举型参数,写入一个循环语句到配置文件生成脚本中,该循环
语句的功能是枚举该参数所有的取值。除第一条循环语句外,每次写入的循环语句都要位于前一次写入的循环语句结构的内部。这样就得到了一个K层的紧嵌套循环。
3丄3解析全局配置文件,获得全部整数型参数^^...,^的名称、下界
/ZoM/p/Zm^...,/^^ 、上界/6^,/6^,…,/6^和递增步长ZS^^,/S^A,…,/5^A 。对每
一个整数型参数^ (1《〃S丄),写入一个循环语句到配置文件生成脚本中,该循环语句
的功能是枚举该整数型参数所有的取值,以一个整数为索引变量,索引变量的下界是/丄rn^,上界是/t/;^,步长为/Sfei^。其中第一次写入的循环语句位于步骤3丄2生成的
嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入的循环语句结构的内部。该步骤在步骤3丄2得到的最内层循环中加入了一个丄层的紧嵌套循环。
3.1.4解析全局配置文件,获得全部浮点型参数/i,/2,...,/M的名称、下界^Zcw"FZow2…,尸丄OT^ 、上界7^^1,^7/ 2,...,尸^//^和递增步长7^印1,尸&^2,...,尸1^;^ 。
因为程序中一般不支持以浮点变量作为循环的索引变量,需要做专门处理。对每个浮点参数y; (1S;^i/),先计算iV,(Ft^-i^ow》/F5^;^ (tV,取整数);然后,写入一
个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变量的下界是l,上界是A^,步长是l。其中第一次写入的循环语句位于步骤3丄3得到嵌套循环
的最内层循环内,其后每次写入的循环语句都位于前一次写入循环语句结构的内部。该步骤在步骤3丄3得到的最内层循环中加入了一个M层的嵌套循环。
3.1.5在步骤3丄4得到的模拟配置文件生成脚本中的最内层循环内,写入功能代码块,该功能代码块的流程是
(1) 创建编号为尸^_/^的模拟配置文件,模拟配置文件的名字都以固定的标识符开头,并将其编号作为文件名的一部分。
(2) 对每个枚举型模拟配置参数,在当前模拟配置文件中写入一行语句,记录该枚举参数的当前值。配置文件生成脚本执行时,由于在该语句外有多层嵌套循环,该语句会被多次迭代执行,枚举参数当前取值就是嵌套循环的当次迭代时该枚举参数对应的索引变量的值。
(3) 对每个整数型模拟配置参数,在当前模拟配置文件中写入一行,记录该整数参数的当前值。整数参数当前取值就是嵌套循环的当次迭代时该整数参数对应的索 引变量的值。
(4) 对每个浮点型模拟配置参数,首先计算其当前取值,然后在当前模拟配置 文件中写入一行,记录其当前值。
(5) 关闭当前模拟配置文件,尸^_/0的值增加1。
3.1.6在配置文件生成脚本的最后写入代码,功能是将生成的不同模拟配置文件的数 目记录到一个文件中。
3.2执行模拟配置文件生成脚本,生成全部模拟配置文件,存储在主控节点上,每个 模拟配置文件按其生成的顺序编号。模拟配置文件生成脚本的执行流程是
3.2.1初始化,将模拟配置文件初始编号尸^_//)的值设为1。
3.2.2开始执行嵌套循环的一次迭代,创建编号为F//e—/Z)的模拟配置文件SCV,、/fl 。
嵌套循环的每一次迭代是其每个循环索引变量取得一个具体的值时的执行过程。
3.2.3对每个枚举型模拟配置参数,在模拟配置文件SC^—,d中写入一行,记录该枚
举参数的当前值,形式为枚举参数名=枚举参数当前取值。
3.2.4对每个整数型模拟配置参数,在当前模拟配置文件SC,,,、^中写入一行,记录
该整数参数的当前值,形式为整数参数名=整数参数当前取值。
3.2.5对每个浮点型模拟配置参数《(1Sy《M),首先计算其当前取值。设执行嵌
套循环当次迭代时该浮点参数对应的索引变量的取值为尸//血"则浮点型参数的当前取
值为F丄o^+FS哗J(F/似Xy-1)。然后,在模拟配置文件SC^」d中写入一行,形式为
浮点参数名=浮点参数当前取值。
3.2.6关闭模拟配置文件SC^一w, F&」D的值增加1。
3.2.7如果已执行完嵌套循环的所有迭代,则转步骤3.2.8,否则转步骤3.2.2。 3.2.8创建一个文件,在其中写入/^化_/£>-1的值。
上述过程遍历了设计空间的每一个点,对每一个点,采用该点对应的全部体系结构 参数的当前取值生成一个配置文件,并且按照模拟配置文件生成的顺序给其编号。因此, 所生成的全部模拟配置文件能够完全覆盖目标体系结构设计空间,且不会出现重复。
第四步,任务调度程序将模拟评估任务分配给各个节点,并控制各个模拟节点并行 地进行模拟评估。4.1模拟评估任务分配。由于各个模拟节点的处理能力相同,为了有效利用所有模拟 节点,实现负载平衡,应保证每个模拟节点上的模拟任务基本相等。每个模拟任务的执
行过程就是模拟器软件针对一个模拟配置进行模拟评估的过程,故每个模拟任务与一个 模拟配置文件对应。通常对不同配置进行模拟的时间开销大致相等,故要求在各个模拟 节点上尽可能平均地分配模拟配置文件。循环分布策略是可以达到这一要求的一种策略, 其方法是-
设共有p个可用模拟节点,iV个模拟配置文件(iV> )。若尸|iV OV能被尸整除),
则模拟节点^ (is7^p)上分配的模拟配置文件集合是(sc;, sc,+P, sc"+2P,…,
SC。+fph否则,令;V除以p的余数为f (f-0),则模拟节点K (l^T/^e)上分配
的配置文件集合是{, sc;+尸,sc^尸,…,sq+^p),模拟节点『"(£<77^尸)上
7
表示不大于
分配的配置文件集合是{sc。, SC"+p, sc。+2" ..., sc |AM}。其中
L尸」
!的最大整数。
p
任务调度程序根据上述分配策略,将模拟配置文件从主控节点分发到各个模拟节点, 即完成了模拟评估任务分配。注意在主控节点上要保留所有模拟配置文件的副本。
4.2控制各个模拟节点并行地进行模拟评估。任务调度程序调度各个模拟节点启动体 系结构模拟器,以各自分配的模拟配置文件为目标计算机体系结构配置,模拟运行 Benchmark程序,得到该配置情况下Benchmark程序运行的性能数据,记录在结果文件 中,并将结果文件发送给主控节点。具体步骤是
4.2.1任务调度程序在主控节点上生成模拟控制脚本。该模拟控制脚本程序的流程是..
(a) 搜索本模拟节点上一个尚未评估过的的模拟配置文件,记录其编号
(b) 执行模拟器软件,目标体系结构采用当前模拟配置文件中的配置,对 Benchmark程序进行模拟测试,模拟结果输出到编号为F&一/Z)的结果文件中。
(c) 将生成的模拟结果文件发送到主控节点。
(d) 若尚未评估完本节点上的全部模拟配置文件,转步骤(a);否则流程结束。 4.2.2任务调度程序将模拟控制脚本从主控节点上复制到各个模拟节点上。
4.2.3任务调度程序启动各个模拟节点上的模拟控制脚本;各个模拟节点执行模拟控制脚本,对各个模拟配置文件进行模拟评估,将每个模拟配置文件的评估结果记录在一 个结果文件中,结果文件的编号与模拟配置文件的编号相同,每评估完一个模拟配置文 件就将其结果文件发送给主控节点。
第五步,主控节点上的结果分析程序不断地搜索模拟节点发来的模拟结果文件,进 行统计,筛选出针对各个性能参数的最优配置参数值,最后输出报告。步骤是
5.1进行初始化工作。具体是
(i) 解析全局配置文件,初始化目标性能参数列表PM,P",...,户K,并为每个 目标性能参数i5^ (iSASi )创建一个数组结构户5U,,用于存储该性能参数值最 优时对应的模拟配置参数值,该数组包含《+ £ + M个元素,其中第h个元素P5T,[力] 对应第h个模拟配置参数。
(ii) 从记录文件中获得总模拟配置数SCowW ,初始化计数器J C卯W"的值为1。
(iii) 任意选取一个模拟结果文件,采用其中的性能参数值来初始化目标性能参 数列表/^/1,尸^/2,...,尸^//(,采用与该模拟结果文件编号相同的模拟配置文件中的配置
参数值来初始化每个数组尸sc》(i s ;i s i )。
5.2搜索一个尚未统计过的的模拟结果文件Oti Fz7e,从中获得全部性能参数的值 O吗,0,Pt/2O^PC^
5.3分别将0^"1,0,/>"2,...,0 ^^与已记录的对应最优性能参数进行比较,如果 01 (/1,0^ 72,...,0^&中的一个或多个优于已记录的对应最优性能参数,则转5.4;否 则,转5.5。
5.4更新最优性能参数和对应的模拟配置参数的记录,过程如下
(A) 找到与结果文件Crti^7e编号相同的模拟配置文件CHSCFz7e 。
(B) 解析CHSO^/e中模拟配置参数的值,记录在临时数组fcmp5C中。
(c)初始化,置迭代索引变量;i的值为1。
(D) 若户^=1且Q^f/p户^,或者PP^;1且O^C^〈Pf^,则转(E);否
贝U,转(i)。
(E) 置户仏=0/户仏。
(F) 初始化,置迭代索引变量h的值为1。 (G )置尸Sq [/ ] = rewpSC [h]。
(H)若A〈K +丄+ M,则h的值增加l,转(G);否则,退出迭代,转(1)。
18(I)若;i〈R,则A的值增加1,转(D);否则,步骤5.4结束。 5.5计数器变量AOn/"fer的值增加1。
5.6进行判断,如果i Ow"^"〈SCo朋"则转5.2;否则,转5.7。
5.7输出最终获得的各个最优性能参数/>^/1,/>[/2,...,尸^;以及它们对应的模拟配置参
数的值。
与现有技术相比,本发明有以下技术优点-
1. 通过良好的过程设计及一系列专用程序的配合,实现了模拟配置文件的自动生 成、模拟任务的自动调度和模拟结果的自动分析,极大地方便了用户操作。模拟 配置文件自动生成保证了能够完全覆盖模拟配置空间,并且没有重复的点。模拟 任务的调度通过均匀分配模拟配置文件,使各个模拟节点上的模拟评估任务基本 相等,基本实现了负载平衡。
2. 可扩展性好。主控节点与各个模拟节点之间需要通过网络传输的只有模拟配置文 件、结果输出文件和一些远程执行命令,通信量很小。主控节点上的全局配置程 序、模拟配置文件生成程序、任务调度程序、结果分析程序的开销都很小,相对 于模拟器软件的执行开销来说几乎可以忽略不计。因此, 一个主控节点即可协调 控制成千上万模拟节点来并行地进行配置方案评估。
3. 并行效率高。 一个模拟节点上的模拟器运行期间不需要与其它模拟节点上的模拟 器进行同步与通信,不存在额外的并行开销,每个模拟器在模拟节点上的运行效 率均不会降低,总体上能够获得线性并行加速比,即采用户个模拟节点就能使模 拟优选过程的时间縮短为原来的l/户。例如,使用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,结果分析程序判断是否已分析完全部的模拟结果文件,若尚未分析完,
20则转步骤S306;否则,转步骤S308。
步骤S308,输出最终获得的各个最优性能参数及其对应的模拟配置参数的值,流程 结束。
每个模拟节点端的总流程-
步骤S309,模拟节点响应主控节点上任务调度程序的文件分发命令,接收属于本节 点的模拟配置文件子集。
步骤S310,模拟节点响应主控节点上任务调度程序的文件复制命令,接收模拟控制 脚本。
步骤S311,模拟节点响应主控节点上任务调度程序发出的远程执行命令,执行模拟 控制脚本,该脚本程序控制对本节点所分配的模拟配置文件逐个进行模拟评估,每个模 拟配置文件的评估结果记录在一个与模拟配置文件同编号的结果文件中,并将结果文件 发送给主控节点。当完成本节点全部模拟配置文件的模拟评估后,流程结束。
图4所示是全局配置程序的流程图。主要过程
步骤S401,接受输入的参与本次模拟评估任务的各个模拟节点的主机名,记录在全
局配置文件的模拟节点列表域中。
步骤S402,设置模拟节点上的模拟器软件和Benchmark程序的名称和路径,设置
Benchmark程序运行时所需的命令行参数,记录在在全局配置文件的模拟器软件域中。
步骤S403,设置设计空间所包含的所有配置参数名及其取值范围,在全局配置文件 的体系结构参数域写入三个子域枚举型参数子域、整数型参数子域和浮点型参数子域。 步骤S404,设置用户关心的目标性能参数及其正负向属性。设共有i 个用户感兴趣 的性能参数PM,尸f/2,…,尸仏,如果Pf/义U《义S及)为正向参数,则其正负向属性 尸J^-1;如果户C^为负向参数,则其正负向属性尸^=-1。在全局配置文件的目标性能 参数域中记录各个目标性能参数的名称与正负向属性。记录完成后,过程结束。
图5所示是模拟配置文件生成程序产生模拟配置文件生成脚本的流程图。主要过程
步骤S501,创建一个新的模拟配置文件生成脚本程序,写入初始化代码(初始化 顺—/£)为1)。
步骤S502,解析全局配置文件,获得全部枚举型参数^ …,&的名称及其枚举值 集合A, A,…五f。对每一个枚举型参数,写入一个循环语句到配置文件生成脚本中,该
循环语句的功能是枚举该参数所有的取值。除第一条循环语句外,每次写入的循环语句 都要位于前一次写入的循环语句结构的内部。步骤S503,解析全局配置文件,获得全部整数型参数/1,/2,...,/£的名称、下界 /Zm^,/丄ow2…,/Zo^ 、上界/L^,/L^2,…,/L^和递增步长Z^A,7&印2,…,JS^^ 。对每 一个整数型参数^ (1S々^丄),写入一个循环语句到配置文件生成脚本中,该循环语句 以一个整数为索引变量,索引变量的下界是/Zm^,上界是/l/;^,步长为/泣印-,功能
是枚举该整数型参数所有的取值。其中第一次写入的循环语句位于步骤S502生成的嵌套 循环的最内层循环内,其后每次写入的循环语句都要位于前一次写入的循环语句结构的 内部。
步骤S504,解析全局配置文件,获得全部浮点型参数/1,/2,...,/^的名称、下界
^Xo^,FZxW2…,/^omv 、上界^/^,FL^,…,i^7;^和递增步长i^明,i^e;72,…,/^印M 。
因为程序中一般不支持对以浮点变量作为循环的索引变量,这里需要做专门处理。对每 个浮点参数力(lSy《M),先计算^=(^/&-F丄ow,)/i^哗y (A^取整数);然后,
写入一个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变 量的下界是l,上界是iVy,步长是l。其中第一次写入的循环语句位于步骤S503生成嵌
套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入的循环语句结构的 内部。
步骤S505,在步骤S504得到的模拟配置文件生成脚本的最内层循环内,写入主要 的功能代码块,该代码块的流程是
S505.1创建编号为F^一/D的模拟配置文件,模拟配置文件的名字都以固定的
标识符开头,并将编号作为其文件名的一部分。
S505.2对每个枚举型模拟配置参数,在当前模拟配置文件中写入一行,记录该 枚举参数的当前值。
S505.3对每个整数型模拟配置参数,在当前模拟配置文件中写入一行,记录该 整数参数的当前值。
S505.4对每个浮点型模拟配置参数,首先计算其当前取值,然后在当前模拟配 置文件记录其当前值。
S505.5关闭当前模拟配置文件,F&一/"的值增加l。 步骤S506,在步骤S505得到的配置文件生成脚本的最后写入结束代码,功能是记 录生成的不同模拟配置文件的数目到一个文件中。
图6所示是模拟配置文件生成脚本的执行流程图。主要过程
22步骤S601,进行初始化,将模拟配置文件初始编号F&一/Z)的值设为1。
步骤S602,开始执行嵌套循环的一个迭代,创建编号为"/e一/D的模拟配置文件
步骤S603,对每个枚举型模拟配置参数,在模拟配置文件SC^—^中写入一行,记
录该枚举参数的当前值,形式为枚举参数名=枚举参数当前取值。
步骤S604,对每个整数型模拟配置参数,在当前模拟配置文件5T^—^中写入一行,
记录该整数参数的当前值,形式为整数参数名=整数参数当前取值。
步骤S605,对每个浮点型模拟配置参数厶(is;isM),首先计算其当前取值。设
嵌套循环的当次迭代时该浮点参数对应的索引变量的取值为尸//血,则浮点型参数的当 前取值为凡0巧+/^哗/1*(月/^-1)。然后,在模拟配置文件SC她—m中写入一行,形
式为浮点参数名=浮点参数当前取值。
步骤S606,关闭模拟配置文件SC^,, /D的值增加1。
步骤S607,判断是否已执行完嵌套循环的所有迭代,如果已执行完,则转步骤S608, 否则转步骤S602。
步骤S608,创建一个记录生成的不同模拟配置文件的数目的文件,在其中写入 K7e —/D-l的值。
图7所示是任务调度程序的流程图。主要流程
步骤S701,解析全局配置文件,获得模拟节点列表,采用循环分布策略,将模拟配 置文件从主控节点上分发到各个模拟节点上。该步骤完成后,每个模拟节点上都有一个 属于自己的模拟配置文件子集,不同模拟节点上模拟配置文件之间的交集为空。
步骤S702,生成模拟控制脚本,该脚本是控制各个模拟节点进行工作的批处理程序。
步骤S703,将模拟控制脚本复制到每个模拟节点上。
步骤S704,启动模拟节点上的模拟控制脚本,使各个模拟节点对其所分配的模拟配 置逐个进行模拟。
图8所示是模拟节点上模拟控制脚本的执行流程图。主要流程 步骤S801,搜索本模拟节点上一个尚未评估过的模拟配置文件,记录其编号 舰7D。步骤S802,执行模拟器软件,目标体系结构采用当前模拟配置文件中的配置,对
Benchmark程序进行模拟测试,模拟结果输出到编号为"/e_/D的结果文件中。 步骤S803,将步骤S802生成的模拟结果文件发送到主控节点上。 步骤S804,判断本节点上的所有模拟配置文件是否已评估完,若未评估完,转步骤
S801;否则,流程结束。
图9所示是结果分析程序的流程图。主要流程 步骤S901,进行初始化工作。过程如下
S901.1解析全局配置文件,初始化用户感兴趣的目标性能参数列表 尸M,尸W,...,尸K,并为每个目标性能参数尸C^ (1《;i^i )创建一个数组结构尸SQ,
用于存储该性能参数值最优时对应的模拟配置参数列表,该数组包含《+丄+ M个元 素,其中第h个元素PSC,[/z]对应第h个模拟配置参数。
S卯1.2从记录文件中获得模拟配置文件总数SC做W ,初始化计数器i Ow"fer值为1。
S901.3任意选取一个模拟结果文件,采用其中的性能参数值来初始化目标性能 参数列表尸^,P^,…,PC^,采用与该模拟结果文件编号相同的模拟配置文件中的配 置参数的值来初始化每个数组i^G (1S/ISJ )。
步骤S902,搜索一个尚未分析过的模拟结果文件Cwi F^,从中获得全部性能参数 的值OlPL^CW尸t/2,…,OlP[^ 。
步骤S903,分别将O^C/,,Otft/2,…,CrtPt^与已记录的对应最优性能参数进行比 较,如果Cw尸R,Cw尸K,...,OtPK中的一个或多个优于已记录的对应最优性能参数,则 转步骤S904;否则,转步骤S卯5。
步骤S904,更新最优性能参数和对应的模拟配置参数的记录,过程如下 S904.1找到与结果文件OWFz'/e编号相同的配置文件CHSCFz7e 。 S904.2解析0必CW/e中各个模拟配置参数的值,记录在临时数组tow/^C中。 S904.3初始化,置迭代索引变量/l的值为1。
S904.4若尸^=1且OlP^〉户^,或者PI^;1且OlPf^〈Pf/义,则转S904.5;
否则,转S904.9。
S904.5置PC/^CW尸^。
S904.6初始化,置迭代索引变量h的值为1。S904.7置尸SQ [/z] = ,e附/ SC [h]。
S904.8若/z〈《+丄+ M,贝Uh的值增加1 ,转S卯4.7;否则,退出迭代,转S904.9 。S904.9若;i〈R,则义的值增加l,转S904.4;否则,步骤S904结束。步骤S905,计数器变量i Ow"fer的值增加1。
步骤S906,进行判断,如果i On/"ter〈SC做"?,则转到步骤S902;否则,转步骤S907。
步骤S907,输出最终获得的各个最优性能参数PM,Pf/2,…,尸f^以及它们对应的模拟配置参数的值。
本发明是一种基于集群并行计算机系统和体系结构模拟器来模拟优选计算机体系结构设计方案的方法,该方法采用集群系统作为宿主机,基于专门设计的全局配置程序、模拟配置文件生成程序、任务调度程序、结果分析程序的协调配合,控制在多个模拟节点上采用不同配置文件来运行模拟器的不同实例,并行地对目标计算机体系结构的不同配置方案进行评估,加速了体系结构设计方案优选过程,有利于获得更优的设计方案,并提高了体系结构设计方案优选过程的自动化程度,方便了用户操作。
2权利要求
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,创建一个脚本程序,向脚本程序中写入初始化代码将模拟配置文件编号Fz7e —/£>设为1;步骤2,解析全局配置文件,获得全部枚举型参数^^2,...,^的名称及其枚举集合^, £2,...£x,对每一个枚举型参数,写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该参数所有的取值,除第一条循环语句外,每次写入的循环语句都要位于前一次写入的循环语句结构的内部,这样就得到了一个K层的紧嵌套循环;步骤3,解析全局配置文件,获得全部整数型参数H...,L的名称、下界/LoM^/丄ow2…,/丄oM^ 、上界/[/; 1,^ 2"-"^^和递增步长,&印1,/&印2,...,/泣印£ ,对每一个整数型参数^, 1S/ 2Z,写入一个循环语句到配置文件生成脚本中,该循环语句的功能是枚举该整数型参数所有的取值,以一个整数为索引变量,索引变量的下界是/Zm^,上界是/C//^,步长为/5te/^;其中第一次写入的循环语句位于步骤2生成的嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入的循环语句结构的内部,该步骤在步骤2得到的最内层循环中加入了一个£层的紧嵌套循环;步骤4,解析全局配置文件,获得全部浮点型参数/1,/2,...,_4的名称、下界FZoM^,FZow2…,Fi:oMv 、上界7^/^,/^//72,...,/^^1/和递增步长尸》明,7^卬2,...,尸&£^ ;对每个浮点参数力,lS7SM,先计算乂 =(尸[^-i^o^)/FS^^, &取整数;然后,写入一个循环语句到配置文件生成脚本中,该循环语句以一个整数为索引变量,索引变量的下界是l,上界是iV"步长是l;其中第一次写入的循环语句位于步骤3得到嵌套循环的最内层循环内,其后每次写入的循环语句都位于前一次写入循环语句结构的内部, 该步骤在步骤.3得到的最内层循环中加入了一个M层的嵌套循环;步骤5,在步骤4得到的模拟配置文件生成脚本中的最内层循环内,写入功能代码块, 该功能代码块的流程是-(1) 创建编号为尸/7e一/D的模拟配置文件,模拟配置文件的名字都以固定的标识符开头,并将其编号作为文件名的一部分;(2) 对每个枚举型模拟配置参数,在当前模拟配置文件中写入一行语句,记录 该枚举参数的当前值,枚举参数当前取值就是嵌套循环的当次迭代时该枚举参数对应 的索引变量的值;(3) 对每个整数型模拟配置参数,在当前模拟配置文件中写入一行,记录该整 数参数的当前值,整数参数当前取值就是嵌套循环的当次迭代时该整数参数对应的索 引变量的值;(4) 对每个浮点型模拟配置参数,首先计算其当前取值,然后在当前模拟配置 文件中写入一行,记录其当前值;(5) 关闭当前模拟配置文件,尸&_//)的值增加1;步骤6,在配置文件生成脚本的最后写入代码,功能是将生成的不同模拟配置文件的 数目记录到一个文件中。
3.如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其特 征在于模拟配置文件生成脚本的执行流程是-步骤l)初始化,将模拟配置文件初始编号尸/fe一/D的值设为1;步骤2)开始执行嵌套循环的一次迭代,创建编号为H/e一/D的模拟配置文件jL舰—化,步骤3)对每个枚举型模拟配置参数,在模拟配置文件SC^—^中写入一行,记录该枚举参数的当前值,形式为枚举参数名=枚举参数当前取值。步骤4)对每个整数型模拟配置参数,在当前模拟配置文件SC^,。中写入一行,记录该整数参数的当前值,形式为整数参数名=整数参数当前取值。步骤5)对每个浮点型模拟配置参数/;, 1^r^M,首先计算其当前取值;设执行 嵌套循环当次迭代时该浮点参数对应的索引变量的取值为尸//血"则浮点型参数的当前取值为凡m^+i^哗^(F//^-1),然后,在模拟配置文件SC她—m中写入一行,形式为浮点参数名-浮点参数当前取值;步骤6)关闭模拟配置文件SC^,, Fz7e —/Z)的值增加1;步骤7)如果已执行完嵌套循环的所有迭代,则转步骤8),否则转步骤2); 步骤8)创建一个文件,在其中写入K7e —/D-l的值。
4..如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其 特征在于模拟脚本程序的流程是(a) 搜索本模拟节点上一个尚未评估过的模拟配置文件,记录其编号"/e一/D;(b) 执行模拟器软件,目标体系结构采用当前模拟配置文件中的配置,对 Benchmark程序进行模拟测试,模拟结果输出到编号为F//e_/D的文件中;(c) 将生成的模拟结果文件发送到主控节点;(d) 若尚未评估完本节点上的全部模拟配置文件,转步骤(a);否则流程结束。
5.如权利要求1所述的基于集群系统的计算机体系结构方案并行模拟优选方法,其特征在于任务调度程序将模拟配置文件从主控节点分发到各个模拟节点时采用循环分布策 略,循环分布策略是设共有P个可用模拟节点,W个模拟配置文件,iV〉P,若PIN即 N能被P整除,则模拟节点W;上分配的模拟配置文件是(SC", SC。+p, SC"+2p,..., ST"+W—p}, 1S/7《P;否则,令iV除以P的余数为"e#0,当lS/7Ss时,模拟节点^ 上分配的配置文件集合是{, SC^, SC。+2P, ..., SC。+w—p},当£<77^ 时,模拟节点^上分配的配置文件集合是(SC。, SC^, SC"+2/), ..., SC |w| },其中 示不大于!的最大整数£ P
全文摘要
本发明公开了一种基于集群系统的计算机体系结构方案并行模拟优选方法,目的是提供一种计算机体系结构设计方案并行模拟优选的方法。技术方案是先构建具备远程命令执行环境的由主控节点和模拟节点组成的集群并行计算机系统,主控节点上安装有全局配置程序、模拟配置文件生成程序、任务调度程序和结果分析程序。全局配置程序进行全局性的配置设置;模拟配置文件生成程序生成所有的模拟配置文件;任务调度程序将模拟评估任务分配给各个节点,控制各个模拟节点并行地进行模拟评估;结果分析程序搜索模拟节点发来的模拟结果文件,进行统计,筛选出最优配置参数值,输出报告。采用本发明既能减少评价优选的时间,又能提高选择的准确度。
文档编号G06F17/50GK101464922SQ20091004258
公开日2009年6月24日 申请日期2009年1月22日 优先权日2009年1月22日
发明者徐传福, 方建滨, 维 曹, 王勇献, 王正华, 翁玉芬, 车永刚, 陆平静 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1