亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法

文檔序號:6482182閱讀:262來源:國知局
專利名稱:基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機系統(tǒng)模擬方法,特別是以集群并行計算機系統(tǒng)為宿主機,對計算 機體系結(jié)構(gòu)的不同配置方案進行并行模擬評估,以便對計算機體系結(jié)構(gòu)設(shè)計方案進行優(yōu) 選的方法。
背景技術(shù)
在計算機系統(tǒng)的研制過程中,通常需要對計算機體系結(jié)構(gòu)的各種配置情況進行評估, 使得在技術(shù)與成本限制下獲得最優(yōu)的設(shè)計方案。例如,片上多處理器系統(tǒng)(CMP)的片 上處理器核的數(shù)目及互連結(jié)構(gòu)、處理器上高速緩存(Cache)大小、塊大小和相聯(lián)性等重 要參數(shù)都有一定的可能范圍,參數(shù)取值不同可能導致性能的很大變化,需要綜合考慮這 些參數(shù)的值,才能獲得好的設(shè)計結(jié)果。又例如,計算機系統(tǒng)內(nèi)部互連網(wǎng)絡(luò)的拓撲結(jié)構(gòu)可 有多種方案,不同方案在性能特征方面存在很大差別。隨著計算機體系結(jié)構(gòu)的迅速發(fā)展, 影響性能的因素越來越多,設(shè)計空間(全部配置選項的所有可能的組合情況)日益增大。 對體系結(jié)構(gòu)設(shè)計人員來說,如何評估巨大的設(shè)計空間中的各個配置方案,獲得最優(yōu)的選 擇是重要問題。
計算機體系結(jié)構(gòu)模擬軟件(以下簡稱模擬器)在上述計算機體系結(jié)構(gòu)設(shè)計過程中具 有廣泛用途。模擬器一般具有可配置、可復用的能力,可以對所模擬的計算機系統(tǒng)的各 項體系結(jié)構(gòu)參數(shù)或方案選項進行配置,在現(xiàn)有的計算機(宿主機)上模擬運行真實基準 測試程序或自動生成的工作負載(以下統(tǒng)稱為Benchmark程序),獲得目標系統(tǒng)采用該配 置方案時的性能數(shù)據(jù),為體系結(jié)構(gòu)設(shè)計決策提供參考?;谀M器對計算機體系結(jié)構(gòu)進 行評估已成為高性能計算機系統(tǒng)或關(guān)鍵器件研制周期中的重要環(huán)節(jié),設(shè)計人員廣泛使用 模擬器來評價體系結(jié)構(gòu)創(chuàng)新或改進的效果。例如,IBM公司在其PowerPC和Cell處理器 研發(fā)中一直采用Mambo模擬器進行驗證和評估,在其BlueGene系列超級計算機研制中 采用BigSimulator來研究超級并行計算機系統(tǒng)的性能特性。AMD公司在其微處理器研制 中也基于SimNow模擬器進行驗證。Intel公司在內(nèi)部使用一些專門的模擬器如XTREM、 Simics等進行設(shè)計驗證。國內(nèi)中科院計算所在基于龍芯CPU的片上多核體系結(jié)構(gòu)研究中 也基于SimOS-Goodson來進行測試驗證(高翔等,基于龍芯CPU的多核全系統(tǒng)模擬器SimOS-Goodson,軟件學報,2007)。 一些學者指出,為保持計算機系統(tǒng)的創(chuàng)新研究,模 擬技術(shù)的能力必須實現(xiàn)新的跨越,為此他們專門向美國NSF呼吁增加對模擬器技術(shù)的支 持(Kevin Skadron等,Challenges in Computer Architecture Evaluation, IEEE Computer, 2003)。
目前已有很多模擬器軟件系統(tǒng),如SimpleScalar (烕斯康星大學)、SimOS (斯坦福 大學)、Wattch (哈佛大學)、PROTEUS (麻省理工大學)、WWT II (威斯康辛大學)、 MPI-SIM (加州大學洛杉磯分校)、BigSimulator (伊利諾伊大學香檳分校)、Simics (瑞 典Virtutech公司)、Mambo (IBM公司)、SimNow (AMD公司)、XTREM (普林斯頓大 學和Intel公司)、GEMS (威斯康辛大學)、RSIM (萊斯大學、伊利諾伊大學等)、M5 (密 歇根大學)、LSE (普林斯頓大學)等?;谀M器進行體系結(jié)構(gòu)設(shè)計空間探索的方法通 常是由設(shè)計人員手工設(shè)定所模擬的目標系統(tǒng)各個參數(shù)的具體取值和技術(shù)方案的具體選項 (以下稱為模擬配置),然后在宿主計算機上基于模擬器模擬運行Benchmark程序,獲得 該特定配置的性能數(shù)據(jù)(例如Benchmark程序在目標計算機系統(tǒng)上的執(zhí)行時間,或者網(wǎng) 絡(luò)通信的帶寬,或者是系統(tǒng)吞吐率)。為對設(shè)計空間內(nèi)的多個候選配置進行評價,需要對 每個候選配置逐個進行模擬評估。由于模擬器是采用軟件的方法來模擬硬件的行為,其 運行Benchmark程序的時間很長,通常比在真實目標機上運行相同Benchmark程序的時 間大幾個數(shù)量級,因此這種方法的時間開銷很大。例如,文獻(張福新等,基于SimpleScalar 的龍芯CPU模擬器Sim-Godson,計算機學報,2007)報告了一種龍芯CPU的串行模擬 器,在3.0 GHz的Pentium 4微機上,模擬速度約為500K條指令每秒。而常用的CPU評 測Benchmark程序集SPEC CPU2000中的多數(shù)程序在使用標準Ref輸入集時都具有數(shù)千 億條指令,例如Mgrid程序約有640000000K條指令。據(jù)此推算,采用Sim-Godson模擬 器,在一臺3.0 GHz的Pentium 4微機上對龍芯CPU的一種配置進行串行模擬,運行完 整Mgrid程序所需時間約為14.8天;如果針對龍芯CPU的多種配置進行模擬優(yōu)選,運行 SPECCPU2000中全部26個程序所需時間將會長達數(shù)年。由于串行模擬的時間太長,通 常只能對設(shè)計空間內(nèi)的少數(shù)幾種配置情況進行模擬評估,而這極有可能遺漏最優(yōu)的配置。 還有的方法不對完整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采樣方法,但其測試結(jié)果表明,沒有迸行預(yù)熱(Waramp)的采樣模擬方法得到的21個SPECCPU2000程序的每指令時鐘周期數(shù)(Cycle Per Instruction, CPI)的誤差 平均為16%到24%,對有的程序誤差可達40%以上,使用固定預(yù)熱大小的采樣模擬方法 對21個程序的平均誤差在4%,但對部分程序的誤差仍然達到17%?;谡`差這么明顯 的模擬結(jié)果進行體系結(jié)構(gòu)設(shè)計方案優(yōu)選,同樣有可能得不到最優(yōu)的配置。且設(shè)計者手工 進行機器配置參數(shù)與模擬選項的設(shè)置、模擬數(shù)據(jù)的收集與比較,不僅使用不方便,而且 手工操作還容易出錯。這是影響模擬器在體系結(jié)構(gòu)設(shè)計中的應(yīng)用效果的主要問題。
并行計算機系統(tǒng)相對于單處理器系統(tǒng)具有更強的計算能力與更大的存儲容量,如果
能夠利用并行計算機系統(tǒng)來做模擬器軟件的宿主機平臺,可以有效地加速體系結(jié)構(gòu)模擬 評估的過程。但是,存在以下困難
(1) 目前絕大多數(shù)模擬器軟件是串行程序, 一個模擬器實例(指模擬器的運行實體, 下同)只能運行于單個處理器(核)上,無法利用并行計算機的多個處理器(核) 進行并行模擬。而使用串行模擬器在單處理器系統(tǒng)上進行模擬的時間開銷是非 常大的。
(2) 當前部分模擬器軟件(如GEMS和M5)具有多線程并行版本, 一個模擬器實 例能夠使用片上多處理器系統(tǒng)的多個核,或者是對稱多處理器(SMP)系統(tǒng)的 多個處理器。例如文獻(KunWang等,Parallelization ofIBM Mambo System Simulator in functional modes, ACM SIGOPS Operating Systems Review, 2,008) 報告了 IBM中國研究中心開發(fā)的多線程并行版本的Mambo模擬器,對 OpenMP版的NAS Parallel Benchmark 3.2的模擬,在4核宿主機上的并行加速 比達到3.4。另一個典型例子是文獻(RobertE. Lantz, Parallel SimOS: Scalability and Performance for Large System Simulation,斯坦福大學博士論文,2007)中 報道的并行SimOS,其最大使用了64個處理器進行模擬,這是有文獻報道的 使用宿主機規(guī)模最大的多線程模擬器,并且損失了部分模擬精度。由于片上多 處理器系統(tǒng)所包含的處理器核的數(shù)目通常不大,對稱多處理器系統(tǒng)所包含的處 理器的數(shù)目通常也很小(通常小于8個,含8個以上處理器的對稱多處理器系 統(tǒng)非常昂貴),故多線程并行模擬器所能達到的并行度都不高,對體系結(jié)構(gòu)設(shè) 計方案模擬優(yōu)選時間的改善幅度非常有限。
(3) 目前確實出現(xiàn)了部分支持以分布存儲并行計算機為宿主機的消息傳遞模式并 行模擬器原型系統(tǒng),如WWTII、 MPI-SIM和BigSimulator。但是,分布存儲 并行模擬器通常不適于模擬高性能共享存儲和片上多處理器系統(tǒng)體系結(jié)構(gòu),原因是此類模擬器在模擬節(jié)點間的通信延遲很大,模擬緊耦合系統(tǒng)時的通信開銷巨大,導致模擬性能急劇下降(Robert E.Lantz, Parallel SimOS: Scalability andPerformance for Large System Simulation,斯坦福大學博士論文,2007)。即使對松耦合的集群并行計算機系統(tǒng)的模擬,由于并行離散事件模擬中存在很大的同步與通信開銷,這些并行模擬器系統(tǒng)的并行效率也受到很大的影響,目前有文獻報告的最好結(jié)果是BigSinmlator在256節(jié)點的集群并行計算機系統(tǒng)上獲得近150的并行加速比(Gengbin Zheng等,Simulation-based performanceprediction for large parallel machines , International Journal of ParallelProgramming, 2005),而目前世界超級計算機排行榜Top500中的大多數(shù)計算機系統(tǒng)的規(guī)模都在1024個處理器(核)以上(http://www.top500.org/)。此外,此類并行模擬器原型系統(tǒng)基本上都采用直接執(zhí)行模擬方式(R.C. Covington等,The Rice Parallel Processing Testbed, 1988 ACM SIGMETRICS Conference onMeasurement and Modeling of Computer Systems , 1988),實際上只實現(xiàn)了對并行應(yīng)用程序的模擬,而未真正實現(xiàn)對計算機體系結(jié)構(gòu)的模擬,其主要目標是模擬并行應(yīng)用程序在并行計算機系統(tǒng)上的行為特征,為并行算法與并行程序設(shè)計禾口優(yōu)化提供驗證方法(Gengbin Zheng , Achieving High Performance onExtremely Large Parallel Machines: Performance Prediction and Load Balancing,伊利諾伊大學博士論文,2005)。它們并不適用于支持計算機體系結(jié)構(gòu)設(shè)計方案的優(yōu)選。
由于上述困難的存在,目前在體系結(jié)構(gòu)設(shè)計方案的優(yōu)選過程中,仍然普遍采用單處理器系統(tǒng)作為宿主機來進行模擬測試。而隨著并行計算技術(shù)的發(fā)展,并行計算機系統(tǒng)日益在科研單位或工業(yè)部門得到普及,利用并行計算機系統(tǒng)來加速設(shè)計方案優(yōu)選過程已成
為現(xiàn)實需求。
體系結(jié)構(gòu)設(shè)計人員的需求是對大量設(shè)計方案進行評價,篩選出最優(yōu)的方案,這種需求的核心是體系結(jié)構(gòu)模擬的吞吐率——在盡可能短的時間內(nèi)完成給定設(shè)計方案集的評估,或者在給定時間段內(nèi)完成盡可能多的設(shè)計方案的評估。因此,可以轉(zhuǎn)變思路,采用吞吐率計算(Throughput Computing)的方法來實現(xiàn)對多個方案的并行評估,而不是試圖提高每個模擬方案評估的速度。只要以現(xiàn)有的串行或多線程并行模擬器軟件為基礎(chǔ),以并行計算機系統(tǒng)為模擬的宿主機,通過設(shè)計相應(yīng)的實驗控制方案及軟件程序,調(diào)度多個處理器上的模擬器軟件來對多個設(shè)計方案并行地進行評估,就可以達到提高設(shè)計方案評
11估的吞吐率、加快總的評估進度的目標。這種方法的優(yōu)點包括(1)效率高,每個模擬器實例都以其既有方式在一個節(jié)點上運行,不會因為并行模擬而有效率上的損失,可使用成千上萬處理器進行并行模擬,獲得成千上萬倍的性能加速效果;(2)更快的速度意味著可以對更大的體系結(jié)構(gòu)設(shè)計空間進行探索,增加找到更優(yōu)的設(shè)計方案的機會。(3)實施簡單,無需對體系結(jié)構(gòu)模擬器軟件進行并行化,通常不需要對原模擬器軟件進行修改,或者只需對原模擬器軟件的輸入輸出接口做少量修改,即可利用并行宿主機的多個節(jié)點的計算處理能力;(4)通用性好,無論原模擬器軟件是串行程序還是多線程并行程序,運行于何種體系結(jié)構(gòu)的宿主機上,都可在本方法的框架中實施D因為目前集群并行計算機系統(tǒng)在學術(shù)研究機構(gòu)與工業(yè)部門使用最為廣泛,故以集群并行計算機系統(tǒng)為宿主機來進行計算機體系結(jié)構(gòu)設(shè)計方案并行模擬優(yōu)選能夠更好地滿足設(shè)計周期的需求。
根據(jù)專利文獻檢索,以往的專利與文獻中尚未見到以吞吐率計算方式實現(xiàn)基于集群并行計算機系統(tǒng)的計算機體系結(jié)構(gòu)設(shè)計方案模擬優(yōu)選的相關(guān)報道。只有一些關(guān)于模擬器構(gòu)造方面的方法申請了專利,如專利號分別為98808090.7 、 200480008289.6、200480033145.6的中國專利、專利號PCT/US2004/004092的美國專利,專利號為PCT/JP361914/2003、 PCT/JP 376210/2002、 PCT/JP 360362/2002的日本專利。另有一些專利關(guān)注并行模擬器技術(shù),如專利號為5956261、 5442772的美國專利等。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提出一種采用集群并行計算機系統(tǒng)為宿主機來進行計算機體系結(jié)構(gòu)設(shè)計方案并行模擬優(yōu)選的方法,既減少評價優(yōu)選的時間,又提高選擇的準確度,且操作方便。
本發(fā)明技術(shù)方案包括以下步驟
第一步,構(gòu)建具備遠程命令執(zhí)行環(huán)境的集群并行計算機系統(tǒng)(以下簡稱集群系統(tǒng)),該集群系統(tǒng)由多個節(jié)點構(gòu)成,每個節(jié)點都是一臺可獨立運行的計算機,各個節(jié)點間通過網(wǎng)絡(luò)設(shè)備相互連接。指定一個節(jié)點為主控節(jié)點,它負責與用戶交互,完成輸入輸出及模擬配置文件的生成、任務(wù)調(diào)度和結(jié)果分析。主控節(jié)點配有用戶終端設(shè)備,如鍵盤、鼠標和顯示器。其它節(jié)點稱為模擬節(jié)點,它們負責對具體的體系結(jié)構(gòu)配置進行模擬,并將模擬結(jié)果發(fā)送給主控節(jié)點。為后面描述方便,設(shè)共有P個可用的模擬節(jié)點,編號為l-戶。
主控節(jié)點和模擬節(jié)點上均安裝有操作系統(tǒng)、TCP/IP協(xié)議軟件,配置了網(wǎng)絡(luò)環(huán)境。主控節(jié)點和各個模擬節(jié)點都具有IP地址與主機名,并建立主機名與IP地址的映射關(guān)系,可通過主機名進行訪問。同時,在主控節(jié)點與模擬節(jié)點上安裝有配置遠程命令執(zhí)行環(huán)境(例如RSH (Remote Shell)或SSH (Secure Shell)),使得主控節(jié)點與模擬節(jié)點上的模擬用戶間可以互相進行遠程文件復制,或者啟動對方機器上的程序。
主控節(jié)點上安裝有全局配置程序、模擬配置文件生成程序、任務(wù)調(diào)度程序和結(jié)果分析程序。全局配置程序負責將全局性的配置設(shè)置記錄在全局配置文件中,以對整個優(yōu)選過程進行控制。模擬配置文件生成程序根據(jù)全局配置文件生成覆蓋整個設(shè)計空間的模擬配置文件,每個模擬配置文件記錄體系結(jié)構(gòu)的一種配置,包含設(shè)計空間中每個參數(shù)的一個具體的取值,代表了設(shè)計空間的一個點。任務(wù)調(diào)度程序根據(jù)全局配置文件將模擬配置文件分發(fā)到各個模擬節(jié)點,并調(diào)度各個模擬節(jié)點針對各自分配的模擬配置文件進行模擬評估。結(jié)果分析程序接收各個模擬節(jié)點上的模擬結(jié)果,進行統(tǒng)計分析,篩選出最優(yōu)配置。
模擬節(jié)點上安裝有目標體系結(jié)構(gòu)模擬器和Benchmark程序,模擬節(jié)點收到主控節(jié)點向它分配的模擬配置文件后,根據(jù)從模擬配置文件中獲得各個體系結(jié)構(gòu)參數(shù)的取值,在模擬器上模擬運行Benchmark程序,得到目標體系結(jié)構(gòu)采用當前配置情況下的性能數(shù)據(jù)。
第二步,主控節(jié)點執(zhí)行全局配置程序,進行全局性的配置設(shè)置,將設(shè)置結(jié)果記錄在全局配置文件中,全局配置文件包含模擬節(jié)點列表域、模擬器軟件域、體系結(jié)構(gòu)參數(shù)域和目標性能參數(shù)域。全局配置程序進行配置設(shè)置的方法是
2.1在一次體系結(jié)構(gòu)方案模擬優(yōu)選過程開始時,集群系統(tǒng)中有些節(jié)點可能因為發(fā)生故障、或者因為運行其它任務(wù)而不能用做本次模擬評估任務(wù)的模擬節(jié)點。全局配置程序指定當前可用做模擬節(jié)點的節(jié)點,并將各個節(jié)點的主機名記錄在全局配置文件的模擬節(jié)點列表域中。
2.2任務(wù)調(diào)度程序在調(diào)度模擬節(jié)點上的模擬器執(zhí)行Benchmark程序時,需要知道模擬節(jié)點上的模擬器軟件和Benchmark程序的名稱與路徑,還有Benchmark程序運行時所需的命令行參數(shù)(這些參數(shù)是應(yīng)用相關(guān)的參數(shù)而非體系結(jié)構(gòu)參數(shù),例如問題規(guī)模等)。因此,全局配置程序需要將模擬器軟件的完整路徑(含文件名)、Benchmark程序的完整路徑(含文件名)以及運行Benchmark程序時的命令行參數(shù)記錄在全局配置文件的模擬器軟件域中。
2.3目標體系結(jié)構(gòu)模擬器運行時,需要以模擬配置文件作為輸入,該文件記錄了本次模擬的目標計算機系統(tǒng)的各個體系結(jié)構(gòu)參數(shù)的具體配置。模擬配置文件生成程序自動生成可覆蓋整個體系結(jié)構(gòu)設(shè)計空間的模擬配置文件,它需要從全局配置文件中獲得各個體系結(jié)構(gòu)參數(shù)的取值范圍,故由全局配置程序?qū)Ⅲw系結(jié)構(gòu)設(shè)計空間所包含的配置參數(shù)的名稱及其取值范圍記錄在全局配置文件的體系結(jié)構(gòu)參數(shù)域。體系結(jié)構(gòu)參數(shù)域包含三個子域枚舉型參數(shù)子域、整數(shù)型參數(shù)子域和浮點型參數(shù)子域。設(shè)體系結(jié)構(gòu)設(shè)計空間中包含《個
枚舉型參數(shù)ei,e2,...,^ ,第《個枚舉型參數(shù)~ (Kc^/:)可取" 個枚舉值
^(1)A(2),…,ea(Wa),則在枚舉型參數(shù)子域中記錄每個枚舉參數(shù)^的名稱及其全部枚舉值的集合k(l),ea(2),…,e。("a"。設(shè)模擬器需要Z個整數(shù)型參數(shù)/^2,...,^,第〃個整數(shù)參
數(shù)^ (1《P《£ )的下界為/Zo,,上界為/"巧,遞增步長為ZS^;^ ( /Zo, 、 /L^和/5^/^均為整數(shù),且ZS^;^〉0),則在整數(shù)型參數(shù)子域中記錄每個整數(shù)參數(shù)的名稱、上下界及步長。假設(shè)模擬器需要似個浮點型參數(shù)/1,/2,...,/^,第y個浮點參數(shù)力(lSy^M)的下界為FZoWy,上界為尸C7&,遞增步長為FSfe^ (其中FZo^、 F[/^和F&e;^均為整數(shù),且,5^&>0),則在浮點型參數(shù)子域中記錄每個浮點參數(shù)的名稱、上下界及步長。
通常對每個枚舉型參數(shù)、整數(shù)型參數(shù)和浮點型參數(shù)都使用一行來記錄,以方便解析。
2.4結(jié)果分析程序?qū)δM結(jié)果進行自動分析,優(yōu)選出最優(yōu)的結(jié)果。為對模擬結(jié)果進行自動分析,需要知道用戶究竟關(guān)心模擬結(jié)果中的哪些性能參數(shù),這些參數(shù)的值是大好,還是小好。因此,全局配置程序?qū)⒂脩絷P(guān)心的這些目標性能參數(shù)及其正負向?qū)傩栽O(shè)置在全局配置文件的目標性能參數(shù)域。如果參數(shù)值越大說明對應(yīng)的體系結(jié)構(gòu)配置越好,則這種參數(shù)具有正向?qū)傩?;如果參?shù)值越大說明對應(yīng)體系結(jié)構(gòu)配置越差,則這種參數(shù)具有負向?qū)傩浴@?,模擬運行Benchmark程序獲得的浮點性能、存儲帶寬、網(wǎng)絡(luò)帶寬等參數(shù)越大越好,屬于正向參數(shù),其正負向?qū)傩灾翟O(shè)為1;而模擬運行Benchmark程序獲得的執(zhí)行時間、CPI、 Cache失效率、網(wǎng)絡(luò)延遲等參數(shù)越小越好,屬于負向參數(shù),其正負向?qū)傩栽O(shè)值為-1。設(shè)共有及個目標性能參數(shù)尸M,戶[/2,…,尸f^,全局配置程序在全局配置文件的目標性能參數(shù)域中記錄各個目標性能參數(shù)的名稱與正負向?qū)傩?^1,/^2,...,/>&,各個
目標性能參數(shù)的名稱與模擬器輸出文件中對應(yīng)參數(shù)的名稱要保持一致。
第三步,主控節(jié)點上的模擬配置文件生成程序從全局配置文件的體系結(jié)構(gòu)參數(shù)域中獲得體系結(jié)構(gòu)設(shè)計空間包含的各個參數(shù)的名稱及其取值范圍,生成所有的模擬配置文件。每個模擬配置文件對應(yīng)目標體系結(jié)構(gòu)設(shè)計空間的一個具體配置,它包含K +丄+ M行(K是枚舉型參數(shù)的數(shù)目,£整數(shù)型參數(shù)的數(shù)目,M是浮點型參數(shù)的數(shù)目),每一行記錄一個體系結(jié)構(gòu)參數(shù)的名稱及其當前取值。模擬配置文件生成過程是
3.1根據(jù)全局配置文件產(chǎn)生一個模擬配置文件生成腳本。步驟是
3.1.1創(chuàng)建一個腳本程序,向腳本程序中寫入初始化代碼將模擬配置文件編號
14F,7e一/"設(shè)為1。
3.1.2解析全局配置文件,獲得全部枚舉型參數(shù)£1^2,...,~的名稱及其枚舉集合
A, A,...五k。對每一個枚舉型參數(shù),寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)
語句的功能是枚舉該參數(shù)所有的取值。除第一條循環(huán)語句外,每次寫入的循環(huán)語句都要位于前一次寫入的循環(huán)語句結(jié)構(gòu)的內(nèi)部。這樣就得到了一個K層的緊嵌套循環(huán)。
3丄3解析全局配置文件,獲得全部整數(shù)型參數(shù)^^...,^的名稱、下界
/ZoM/p/Zm^...,/^^ 、上界/6^,/6^,…,/6^和遞增步長ZS^^,/S^A,…,/5^A 。對每
一個整數(shù)型參數(shù)^ (1《〃S丄),寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句
的功能是枚舉該整數(shù)型參數(shù)所有的取值,以一個整數(shù)為索引變量,索引變量的下界是/丄rn^,上界是/t/;^,步長為/Sfei^。其中第一次寫入的循環(huán)語句位于步驟3丄2生成的
嵌套循環(huán)的最內(nèi)層循環(huán)內(nèi),其后每次寫入的循環(huán)語句都位于前一次寫入的循環(huán)語句結(jié)構(gòu)的內(nèi)部。該步驟在步驟3丄2得到的最內(nèi)層循環(huán)中加入了一個丄層的緊嵌套循環(huán)。
3.1.4解析全局配置文件,獲得全部浮點型參數(shù)/i,/2,...,/M的名稱、下界^Zcw"FZow2…,尸丄OT^ 、上界7^^1,^7/ 2,...,尸^//^和遞增步長7^印1,尸&^2,...,尸1^;^ 。
因為程序中一般不支持以浮點變量作為循環(huán)的索引變量,需要做專門處理。對每個浮點參數(shù)y; (1S;^i/),先計算iV,(Ft^-i^ow》/F5^;^ (tV,取整數(shù));然后,寫入一
個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句以一個整數(shù)為索引變量,索引變量的下界是l,上界是A^,步長是l。其中第一次寫入的循環(huán)語句位于步驟3丄3得到嵌套循環(huán)
的最內(nèi)層循環(huán)內(nèi),其后每次寫入的循環(huán)語句都位于前一次寫入循環(huán)語句結(jié)構(gòu)的內(nèi)部。該步驟在步驟3丄3得到的最內(nèi)層循環(huán)中加入了一個M層的嵌套循環(huán)。
3.1.5在步驟3丄4得到的模擬配置文件生成腳本中的最內(nèi)層循環(huán)內(nèi),寫入功能代碼塊,該功能代碼塊的流程是
(1) 創(chuàng)建編號為尸^_/^的模擬配置文件,模擬配置文件的名字都以固定的標識符開頭,并將其編號作為文件名的一部分。
(2) 對每個枚舉型模擬配置參數(shù),在當前模擬配置文件中寫入一行語句,記錄該枚舉參數(shù)的當前值。配置文件生成腳本執(zhí)行時,由于在該語句外有多層嵌套循環(huán),該語句會被多次迭代執(zhí)行,枚舉參數(shù)當前取值就是嵌套循環(huán)的當次迭代時該枚舉參數(shù)對應(yīng)的索引變量的值。
(3) 對每個整數(shù)型模擬配置參數(shù),在當前模擬配置文件中寫入一行,記錄該整數(shù)參數(shù)的當前值。整數(shù)參數(shù)當前取值就是嵌套循環(huán)的當次迭代時該整數(shù)參數(shù)對應(yīng)的索 引變量的值。
(4) 對每個浮點型模擬配置參數(shù),首先計算其當前取值,然后在當前模擬配置 文件中寫入一行,記錄其當前值。
(5) 關(guān)閉當前模擬配置文件,尸^_/0的值增加1。
3.1.6在配置文件生成腳本的最后寫入代碼,功能是將生成的不同模擬配置文件的數(shù) 目記錄到一個文件中。
3.2執(zhí)行模擬配置文件生成腳本,生成全部模擬配置文件,存儲在主控節(jié)點上,每個 模擬配置文件按其生成的順序編號。模擬配置文件生成腳本的執(zhí)行流程是
3.2.1初始化,將模擬配置文件初始編號尸^_//)的值設(shè)為1。
3.2.2開始執(zhí)行嵌套循環(huán)的一次迭代,創(chuàng)建編號為F//e—/Z)的模擬配置文件SCV,、/fl 。
嵌套循環(huán)的每一次迭代是其每個循環(huán)索引變量取得一個具體的值時的執(zhí)行過程。
3.2.3對每個枚舉型模擬配置參數(shù),在模擬配置文件SC^—,d中寫入一行,記錄該枚
舉參數(shù)的當前值,形式為枚舉參數(shù)名=枚舉參數(shù)當前取值。
3.2.4對每個整數(shù)型模擬配置參數(shù),在當前模擬配置文件SC,,,、^中寫入一行,記錄
該整數(shù)參數(shù)的當前值,形式為整數(shù)參數(shù)名=整數(shù)參數(shù)當前取值。
3.2.5對每個浮點型模擬配置參數(shù)《(1Sy《M),首先計算其當前取值。設(shè)執(zhí)行嵌
套循環(huán)當次迭代時該浮點參數(shù)對應(yīng)的索引變量的取值為尸//血"則浮點型參數(shù)的當前取
值為F丄o^+FS嘩J(F/似Xy-1)。然后,在模擬配置文件SC^」d中寫入一行,形式為
浮點參數(shù)名=浮點參數(shù)當前取值。
3.2.6關(guān)閉模擬配置文件SC^一w, F&」D的值增加1。
3.2.7如果已執(zhí)行完嵌套循環(huán)的所有迭代,則轉(zhuǎn)步驟3.2.8,否則轉(zhuǎn)步驟3.2.2。 3.2.8創(chuàng)建一個文件,在其中寫入/^化_/£>-1的值。
上述過程遍歷了設(shè)計空間的每一個點,對每一個點,采用該點對應(yīng)的全部體系結(jié)構(gòu) 參數(shù)的當前取值生成一個配置文件,并且按照模擬配置文件生成的順序給其編號。因此, 所生成的全部模擬配置文件能夠完全覆蓋目標體系結(jié)構(gòu)設(shè)計空間,且不會出現(xiàn)重復。
第四步,任務(wù)調(diào)度程序?qū)⒛M評估任務(wù)分配給各個節(jié)點,并控制各個模擬節(jié)點并行 地進行模擬評估。4.1模擬評估任務(wù)分配。由于各個模擬節(jié)點的處理能力相同,為了有效利用所有模擬 節(jié)點,實現(xiàn)負載平衡,應(yīng)保證每個模擬節(jié)點上的模擬任務(wù)基本相等。每個模擬任務(wù)的執(zhí)
行過程就是模擬器軟件針對一個模擬配置進行模擬評估的過程,故每個模擬任務(wù)與一個 模擬配置文件對應(yīng)。通常對不同配置進行模擬的時間開銷大致相等,故要求在各個模擬 節(jié)點上盡可能平均地分配模擬配置文件。循環(huán)分布策略是可以達到這一要求的一種策略, 其方法是-
設(shè)共有p個可用模擬節(jié)點,iV個模擬配置文件(iV> )。若尸|iV OV能被尸整除),
則模擬節(jié)點^ (is7^p)上分配的模擬配置文件集合是(sc;, sc,+P, sc"+2P,…,
SC。+fph否則,令;V除以p的余數(shù)為f (f-0),則模擬節(jié)點K (l^T/^e)上分配
的配置文件集合是{, sc;+尸,sc^尸,…,sq+^p),模擬節(jié)點『"(£<77^尸)上
7
表示不大于
分配的配置文件集合是{sc。, SC"+p, sc。+2" ..., sc |AM}。其中
L尸」
!的最大整數(shù)。
p
任務(wù)調(diào)度程序根據(jù)上述分配策略,將模擬配置文件從主控節(jié)點分發(fā)到各個模擬節(jié)點, 即完成了模擬評估任務(wù)分配。注意在主控節(jié)點上要保留所有模擬配置文件的副本。
4.2控制各個模擬節(jié)點并行地進行模擬評估。任務(wù)調(diào)度程序調(diào)度各個模擬節(jié)點啟動體 系結(jié)構(gòu)模擬器,以各自分配的模擬配置文件為目標計算機體系結(jié)構(gòu)配置,模擬運行 Benchmark程序,得到該配置情況下Benchmark程序運行的性能數(shù)據(jù),記錄在結(jié)果文件 中,并將結(jié)果文件發(fā)送給主控節(jié)點。具體步驟是
4.2.1任務(wù)調(diào)度程序在主控節(jié)點上生成模擬控制腳本。該模擬控制腳本程序的流程是..
(a) 搜索本模擬節(jié)點上一個尚未評估過的的模擬配置文件,記錄其編號
(b) 執(zhí)行模擬器軟件,目標體系結(jié)構(gòu)采用當前模擬配置文件中的配置,對 Benchmark程序進行模擬測試,模擬結(jié)果輸出到編號為F&一/Z)的結(jié)果文件中。
(c) 將生成的模擬結(jié)果文件發(fā)送到主控節(jié)點。
(d) 若尚未評估完本節(jié)點上的全部模擬配置文件,轉(zhuǎn)步驟(a);否則流程結(jié)束。 4.2.2任務(wù)調(diào)度程序?qū)⒛M控制腳本從主控節(jié)點上復制到各個模擬節(jié)點上。
4.2.3任務(wù)調(diào)度程序啟動各個模擬節(jié)點上的模擬控制腳本;各個模擬節(jié)點執(zhí)行模擬控制腳本,對各個模擬配置文件進行模擬評估,將每個模擬配置文件的評估結(jié)果記錄在一 個結(jié)果文件中,結(jié)果文件的編號與模擬配置文件的編號相同,每評估完一個模擬配置文 件就將其結(jié)果文件發(fā)送給主控節(jié)點。
第五步,主控節(jié)點上的結(jié)果分析程序不斷地搜索模擬節(jié)點發(fā)來的模擬結(jié)果文件,進 行統(tǒng)計,篩選出針對各個性能參數(shù)的最優(yōu)配置參數(shù)值,最后輸出報告。步驟是
5.1進行初始化工作。具體是
(i) 解析全局配置文件,初始化目標性能參數(shù)列表PM,P",...,戶K,并為每個 目標性能參數(shù)i5^ (iSASi )創(chuàng)建一個數(shù)組結(jié)構(gòu)戶5U,,用于存儲該性能參數(shù)值最 優(yōu)時對應(yīng)的模擬配置參數(shù)值,該數(shù)組包含《+ £ + M個元素,其中第h個元素P5T,[力] 對應(yīng)第h個模擬配置參數(shù)。
(ii) 從記錄文件中獲得總模擬配置數(shù)SCowW ,初始化計數(shù)器J C卯W"的值為1。
(iii) 任意選取一個模擬結(jié)果文件,采用其中的性能參數(shù)值來初始化目標性能參 數(shù)列表/^/1,尸^/2,...,尸^//(,采用與該模擬結(jié)果文件編號相同的模擬配置文件中的配置
參數(shù)值來初始化每個數(shù)組尸sc》(i s ;i s i )。
5.2搜索一個尚未統(tǒng)計過的的模擬結(jié)果文件Oti Fz7e,從中獲得全部性能參數(shù)的值 O嗎,0,Pt/2O^PC^
5.3分別將0^"1,0,/>"2,...,0 ^^與已記錄的對應(yīng)最優(yōu)性能參數(shù)進行比較,如果 01 (/1,0^ 72,...,0^&中的一個或多個優(yōu)于已記錄的對應(yīng)最優(yōu)性能參數(shù),則轉(zhuǎn)5.4;否 則,轉(zhuǎn)5.5。
5.4更新最優(yōu)性能參數(shù)和對應(yīng)的模擬配置參數(shù)的記錄,過程如下
(A) 找到與結(jié)果文件Crti^7e編號相同的模擬配置文件CHSCFz7e 。
(B) 解析CHSO^/e中模擬配置參數(shù)的值,記錄在臨時數(shù)組fcmp5C中。
(c)初始化,置迭代索引變量;i的值為1。
(D) 若戶^=1且Q^f/p戶^,或者PP^;1且O^C^〈Pf^,則轉(zhuǎn)(E);否
貝U,轉(zhuǎn)(i)。
(E) 置戶仏=0/戶仏。
(F) 初始化,置迭代索引變量h的值為1。 (G )置尸Sq [/ ] = rewpSC [h]。
(H)若A〈K +丄+ M,則h的值增加l,轉(zhuǎn)(G);否則,退出迭代,轉(zhuǎn)(1)。
18(I)若;i〈R,則A的值增加1,轉(zhuǎn)(D);否則,步驟5.4結(jié)束。 5.5計數(shù)器變量AOn/"fer的值增加1。
5.6進行判斷,如果i Ow"^"〈SCo朋"則轉(zhuǎn)5.2;否則,轉(zhuǎn)5.7。
5.7輸出最終獲得的各個最優(yōu)性能參數(shù)/>^/1,/>[/2,...,尸^;以及它們對應(yīng)的模擬配置參
數(shù)的值。
與現(xiàn)有技術(shù)相比,本發(fā)明有以下技術(shù)優(yōu)點-
1. 通過良好的過程設(shè)計及一系列專用程序的配合,實現(xiàn)了模擬配置文件的自動生 成、模擬任務(wù)的自動調(diào)度和模擬結(jié)果的自動分析,極大地方便了用戶操作。模擬 配置文件自動生成保證了能夠完全覆蓋模擬配置空間,并且沒有重復的點。模擬 任務(wù)的調(diào)度通過均勻分配模擬配置文件,使各個模擬節(jié)點上的模擬評估任務(wù)基本 相等,基本實現(xiàn)了負載平衡。
2. 可擴展性好。主控節(jié)點與各個模擬節(jié)點之間需要通過網(wǎng)絡(luò)傳輸?shù)闹挥心M配置文 件、結(jié)果輸出文件和一些遠程執(zhí)行命令,通信量很小。主控節(jié)點上的全局配置程 序、模擬配置文件生成程序、任務(wù)調(diào)度程序、結(jié)果分析程序的開銷都很小,相對 于模擬器軟件的執(zhí)行開銷來說幾乎可以忽略不計。因此, 一個主控節(jié)點即可協(xié)調(diào) 控制成千上萬模擬節(jié)點來并行地進行配置方案評估。
3. 并行效率高。 一個模擬節(jié)點上的模擬器運行期間不需要與其它模擬節(jié)點上的模擬 器進行同步與通信,不存在額外的并行開銷,每個模擬器在模擬節(jié)點上的運行效 率均不會降低,總體上能夠獲得線性并行加速比,即采用戶個模擬節(jié)點就能使模 擬優(yōu)選過程的時間縮短為原來的l/戶。例如,使用1000個處理器,可以將原來 需要1年才能完成的計算機體系結(jié)構(gòu)設(shè)計方案優(yōu)選工作在9小時內(nèi)完成。
4. 由于體系結(jié)構(gòu)設(shè)計方案優(yōu)選速度的大幅度提高,從而可以對更大的體系結(jié)構(gòu)設(shè)計 空間進行探索,有利于找到更優(yōu)的體系結(jié)構(gòu)設(shè)計方案。
綜上所述,本發(fā)明基于集群系統(tǒng),采取"模擬配置自動生成、任務(wù)自動調(diào)度、吞吐率
式并行模擬、模擬結(jié)果自動篩選"的方式,以較小的成本實現(xiàn)了對計算機體系結(jié)構(gòu)設(shè)計空
間的并行模擬評估,大大加快了對計算機體系結(jié)構(gòu)設(shè)計空間進行模擬評估的速度,并提 高了體系結(jié)構(gòu)設(shè)計方案優(yōu)選過程的自動化程度。


圖1是本發(fā)明第一步構(gòu)建的集群系統(tǒng)的物理結(jié)構(gòu)圖。 圖2是本發(fā)明集群系統(tǒng)的軟件部署圖。圖3是本發(fā)明的總流程圖。
圖4是全局配置程序的流程圖。
圖5是模擬配置文件生成程序產(chǎn)生模擬配置文件生成腳本的流程圖。
圖6是模擬配置文件生成腳本的執(zhí)行流程圖。
圖7是任務(wù)調(diào)度程序的流程圖。
圖8是模擬節(jié)點上模擬控制腳本的執(zhí)行流程圖。
圖9是結(jié)果分析程序的流程圖。
具體實施方法
圖1是發(fā)明第一步構(gòu)建的集群系統(tǒng)的物理結(jié)構(gòu)圖。根據(jù)功能將集群的節(jié)點分為主控 節(jié)點和模擬節(jié)點。主控節(jié)點和模擬節(jié)點均包含處理器、主存、磁盤和網(wǎng)絡(luò)接口設(shè)備。主 控節(jié)點配有輸入輸出終端。主控節(jié)點與模擬節(jié)點之間通過互連網(wǎng)絡(luò)設(shè)備相連,互連網(wǎng)絡(luò) 可以是以太網(wǎng)、Myrinet、 Infiniband,或是其它類型的網(wǎng)絡(luò)。
圖2是本發(fā)明集群系統(tǒng)的軟件部署圖。在主控節(jié)點上安裝有操作系統(tǒng)軟件、網(wǎng)絡(luò) TCP/IP軟件、遠程命令執(zhí)行軟件、全局配置程序,模擬配置文件生成程序、任務(wù)調(diào)度程 序和結(jié)果分析程序。其中前三者是通用軟件,可從一些公開發(fā)行的軟件包中獲得;后四 者是本發(fā)明的專用軟件。在模擬節(jié)點上安裝有操作系統(tǒng)軟件、TCP/IP網(wǎng)絡(luò)軟件、遠程命 令執(zhí)行軟件、體系結(jié)構(gòu)模擬器、Benchmark程序。其中前三者是通用軟件,可從一些公 開發(fā)行的軟件包中獲得。體系結(jié)構(gòu)模擬器和Benchmark程序是體系結(jié)構(gòu)設(shè)計者根據(jù)需要 選定的專門軟件,其中Benchmark程序應(yīng)該是已編譯過的可直接在模擬器上運行的程序。
圖3所示是本發(fā)明總流程圖。
主控節(jié)點端的總流程
步驟S301,全局配置程序進行全局配置設(shè)置,并將所產(chǎn)生的全集配置信息記錄在全 局配置文件中。
步驟S302,模擬配置文件生成程序生成所有的模擬配置文件,并按照模擬配置文件 生成的順序給其編號。
步驟S303,任務(wù)調(diào)度程序?qū)⒛M配置文件從主控節(jié)點分發(fā)到各個模擬節(jié)點上。 步驟S304,任務(wù)調(diào)度程序生成模擬控制腳本,并將其分發(fā)到各個模擬節(jié)點上。 步驟S305,任務(wù)調(diào)度程序啟動各個模擬節(jié)點上的模擬控制腳本。 步驟S306,結(jié)果分析程序搜索一個尚未分析過的模擬結(jié)果文件,進行統(tǒng)計分析。 步驟S307,結(jié)果分析程序判斷是否已分析完全部的模擬結(jié)果文件,若尚未分析完,
20則轉(zhuǎn)步驟S306;否則,轉(zhuǎn)步驟S308。
步驟S308,輸出最終獲得的各個最優(yōu)性能參數(shù)及其對應(yīng)的模擬配置參數(shù)的值,流程 結(jié)束。
每個模擬節(jié)點端的總流程-
步驟S309,模擬節(jié)點響應(yīng)主控節(jié)點上任務(wù)調(diào)度程序的文件分發(fā)命令,接收屬于本節(jié) 點的模擬配置文件子集。
步驟S310,模擬節(jié)點響應(yīng)主控節(jié)點上任務(wù)調(diào)度程序的文件復制命令,接收模擬控制 腳本。
步驟S311,模擬節(jié)點響應(yīng)主控節(jié)點上任務(wù)調(diào)度程序發(fā)出的遠程執(zhí)行命令,執(zhí)行模擬 控制腳本,該腳本程序控制對本節(jié)點所分配的模擬配置文件逐個進行模擬評估,每個模 擬配置文件的評估結(jié)果記錄在一個與模擬配置文件同編號的結(jié)果文件中,并將結(jié)果文件 發(fā)送給主控節(jié)點。當完成本節(jié)點全部模擬配置文件的模擬評估后,流程結(jié)束。
圖4所示是全局配置程序的流程圖。主要過程
步驟S401,接受輸入的參與本次模擬評估任務(wù)的各個模擬節(jié)點的主機名,記錄在全
局配置文件的模擬節(jié)點列表域中。
步驟S402,設(shè)置模擬節(jié)點上的模擬器軟件和Benchmark程序的名稱和路徑,設(shè)置
Benchmark程序運行時所需的命令行參數(shù),記錄在在全局配置文件的模擬器軟件域中。
步驟S403,設(shè)置設(shè)計空間所包含的所有配置參數(shù)名及其取值范圍,在全局配置文件 的體系結(jié)構(gòu)參數(shù)域?qū)懭肴齻€子域枚舉型參數(shù)子域、整數(shù)型參數(shù)子域和浮點型參數(shù)子域。 步驟S404,設(shè)置用戶關(guān)心的目標性能參數(shù)及其正負向?qū)傩浴TO(shè)共有i 個用戶感興趣 的性能參數(shù)PM,尸f/2,…,尸仏,如果Pf/義U《義S及)為正向參數(shù),則其正負向?qū)傩?尸J^-1;如果戶C^為負向參數(shù),則其正負向?qū)傩允琟=-1。在全局配置文件的目標性能 參數(shù)域中記錄各個目標性能參數(shù)的名稱與正負向?qū)傩?。記錄完成后,過程結(jié)束。
圖5所示是模擬配置文件生成程序產(chǎn)生模擬配置文件生成腳本的流程圖。主要過程
步驟S501,創(chuàng)建一個新的模擬配置文件生成腳本程序,寫入初始化代碼(初始化 順—/£)為1)。
步驟S502,解析全局配置文件,獲得全部枚舉型參數(shù)^ …,&的名稱及其枚舉值 集合A, A,…五f。對每一個枚舉型參數(shù),寫入一個循環(huán)語句到配置文件生成腳本中,該
循環(huán)語句的功能是枚舉該參數(shù)所有的取值。除第一條循環(huán)語句外,每次寫入的循環(huán)語句 都要位于前一次寫入的循環(huán)語句結(jié)構(gòu)的內(nèi)部。步驟S503,解析全局配置文件,獲得全部整數(shù)型參數(shù)/1,/2,...,/£的名稱、下界 /Zm^,/丄ow2…,/Zo^ 、上界/L^,/L^2,…,/L^和遞增步長Z^A,7&印2,…,JS^^ 。對每 一個整數(shù)型參數(shù)^ (1S々^丄),寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句 以一個整數(shù)為索引變量,索引變量的下界是/Zm^,上界是/l/;^,步長為/泣印-,功能
是枚舉該整數(shù)型參數(shù)所有的取值。其中第一次寫入的循環(huán)語句位于步驟S502生成的嵌套 循環(huán)的最內(nèi)層循環(huán)內(nèi),其后每次寫入的循環(huán)語句都要位于前一次寫入的循環(huán)語句結(jié)構(gòu)的 內(nèi)部。
步驟S504,解析全局配置文件,獲得全部浮點型參數(shù)/1,/2,...,/^的名稱、下界
^Xo^,FZxW2…,/^omv 、上界^/^,F(xiàn)L^,…,i^7;^和遞增步長i^明,i^e;72,…,/^印M 。
因為程序中一般不支持對以浮點變量作為循環(huán)的索引變量,這里需要做專門處理。對每 個浮點參數(shù)力(lSy《M),先計算^=(^/&-F丄ow,)/i^嘩y (A^取整數(shù));然后,
寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句以一個整數(shù)為索引變量,索引變 量的下界是l,上界是iVy,步長是l。其中第一次寫入的循環(huán)語句位于步驟S503生成嵌
套循環(huán)的最內(nèi)層循環(huán)內(nèi),其后每次寫入的循環(huán)語句都位于前一次寫入的循環(huán)語句結(jié)構(gòu)的 內(nèi)部。
步驟S505,在步驟S504得到的模擬配置文件生成腳本的最內(nèi)層循環(huán)內(nèi),寫入主要 的功能代碼塊,該代碼塊的流程是
S505.1創(chuàng)建編號為F^一/D的模擬配置文件,模擬配置文件的名字都以固定的
標識符開頭,并將編號作為其文件名的一部分。
S505.2對每個枚舉型模擬配置參數(shù),在當前模擬配置文件中寫入一行,記錄該 枚舉參數(shù)的當前值。
S505.3對每個整數(shù)型模擬配置參數(shù),在當前模擬配置文件中寫入一行,記錄該 整數(shù)參數(shù)的當前值。
S505.4對每個浮點型模擬配置參數(shù),首先計算其當前取值,然后在當前模擬配 置文件記錄其當前值。
S505.5關(guān)閉當前模擬配置文件,F(xiàn)&一/"的值增加l。 步驟S506,在步驟S505得到的配置文件生成腳本的最后寫入結(jié)束代碼,功能是記 錄生成的不同模擬配置文件的數(shù)目到一個文件中。
圖6所示是模擬配置文件生成腳本的執(zhí)行流程圖。主要過程
22步驟S601,進行初始化,將模擬配置文件初始編號F&一/Z)的值設(shè)為1。
步驟S602,開始執(zhí)行嵌套循環(huán)的一個迭代,創(chuàng)建編號為"/e一/D的模擬配置文件
步驟S603,對每個枚舉型模擬配置參數(shù),在模擬配置文件SC^—^中寫入一行,記
錄該枚舉參數(shù)的當前值,形式為枚舉參數(shù)名=枚舉參數(shù)當前取值。
步驟S604,對每個整數(shù)型模擬配置參數(shù),在當前模擬配置文件5T^—^中寫入一行,
記錄該整數(shù)參數(shù)的當前值,形式為整數(shù)參數(shù)名=整數(shù)參數(shù)當前取值。
步驟S605,對每個浮點型模擬配置參數(shù)厶(is;isM),首先計算其當前取值。設(shè)
嵌套循環(huán)的當次迭代時該浮點參數(shù)對應(yīng)的索引變量的取值為尸//血,則浮點型參數(shù)的當 前取值為凡0巧+/^嘩/1*(月/^-1)。然后,在模擬配置文件SC她—m中寫入一行,形
式為浮點參數(shù)名=浮點參數(shù)當前取值。
步驟S606,關(guān)閉模擬配置文件SC^,, /D的值增加1。
步驟S607,判斷是否已執(zhí)行完嵌套循環(huán)的所有迭代,如果已執(zhí)行完,則轉(zhuǎn)步驟S608, 否則轉(zhuǎn)步驟S602。
步驟S608,創(chuàng)建一個記錄生成的不同模擬配置文件的數(shù)目的文件,在其中寫入 K7e —/D-l的值。
圖7所示是任務(wù)調(diào)度程序的流程圖。主要流程
步驟S701,解析全局配置文件,獲得模擬節(jié)點列表,采用循環(huán)分布策略,將模擬配 置文件從主控節(jié)點上分發(fā)到各個模擬節(jié)點上。該步驟完成后,每個模擬節(jié)點上都有一個 屬于自己的模擬配置文件子集,不同模擬節(jié)點上模擬配置文件之間的交集為空。
步驟S702,生成模擬控制腳本,該腳本是控制各個模擬節(jié)點進行工作的批處理程序。
步驟S703,將模擬控制腳本復制到每個模擬節(jié)點上。
步驟S704,啟動模擬節(jié)點上的模擬控制腳本,使各個模擬節(jié)點對其所分配的模擬配 置逐個進行模擬。
圖8所示是模擬節(jié)點上模擬控制腳本的執(zhí)行流程圖。主要流程 步驟S801,搜索本模擬節(jié)點上一個尚未評估過的模擬配置文件,記錄其編號 艦7D。步驟S802,執(zhí)行模擬器軟件,目標體系結(jié)構(gòu)采用當前模擬配置文件中的配置,對
Benchmark程序進行模擬測試,模擬結(jié)果輸出到編號為"/e_/D的結(jié)果文件中。 步驟S803,將步驟S802生成的模擬結(jié)果文件發(fā)送到主控節(jié)點上。 步驟S804,判斷本節(jié)點上的所有模擬配置文件是否已評估完,若未評估完,轉(zhuǎn)步驟
S801;否則,流程結(jié)束。
圖9所示是結(jié)果分析程序的流程圖。主要流程 步驟S901,進行初始化工作。過程如下
S901.1解析全局配置文件,初始化用戶感興趣的目標性能參數(shù)列表 尸M,尸W,...,尸K,并為每個目標性能參數(shù)尸C^ (1《;i^i )創(chuàng)建一個數(shù)組結(jié)構(gòu)尸SQ,
用于存儲該性能參數(shù)值最優(yōu)時對應(yīng)的模擬配置參數(shù)列表,該數(shù)組包含《+丄+ M個元 素,其中第h個元素PSC,[/z]對應(yīng)第h個模擬配置參數(shù)。
S卯1.2從記錄文件中獲得模擬配置文件總數(shù)SC做W ,初始化計數(shù)器i Ow"fer值為1。
S901.3任意選取一個模擬結(jié)果文件,采用其中的性能參數(shù)值來初始化目標性能 參數(shù)列表尸^,P^,…,PC^,采用與該模擬結(jié)果文件編號相同的模擬配置文件中的配 置參數(shù)的值來初始化每個數(shù)組i^G (1S/ISJ )。
步驟S902,搜索一個尚未分析過的模擬結(jié)果文件Cwi F^,從中獲得全部性能參數(shù) 的值OlPL^CW尸t/2,…,OlP[^ 。
步驟S903,分別將O^C/,,Otft/2,…,CrtPt^與已記錄的對應(yīng)最優(yōu)性能參數(shù)進行比 較,如果Cw尸R,Cw尸K,...,OtPK中的一個或多個優(yōu)于已記錄的對應(yīng)最優(yōu)性能參數(shù),則 轉(zhuǎn)步驟S904;否則,轉(zhuǎn)步驟S卯5。
步驟S904,更新最優(yōu)性能參數(shù)和對應(yīng)的模擬配置參數(shù)的記錄,過程如下 S904.1找到與結(jié)果文件OWFz'/e編號相同的配置文件CHSCFz7e 。 S904.2解析0必CW/e中各個模擬配置參數(shù)的值,記錄在臨時數(shù)組tow/^C中。 S904.3初始化,置迭代索引變量/l的值為1。
S904.4若尸^=1且OlP^〉戶^,或者PI^;1且OlPf^〈Pf/義,則轉(zhuǎn)S904.5;
否則,轉(zhuǎn)S904.9。
S904.5置PC/^CW尸^。
S904.6初始化,置迭代索引變量h的值為1。S904.7置尸SQ [/z] = ,e附/ SC [h]。
S904.8若/z〈《+丄+ M,貝Uh的值增加1 ,轉(zhuǎn)S卯4.7;否則,退出迭代,轉(zhuǎn)S904.9 。S904.9若;i〈R,則義的值增加l,轉(zhuǎn)S904.4;否則,步驟S904結(jié)束。步驟S905,計數(shù)器變量i Ow"fer的值增加1。
步驟S906,進行判斷,如果i On/"ter〈SC做"?,則轉(zhuǎn)到步驟S902;否則,轉(zhuǎn)步驟S907。
步驟S907,輸出最終獲得的各個最優(yōu)性能參數(shù)PM,Pf/2,…,尸f^以及它們對應(yīng)的模擬配置參數(shù)的值。
本發(fā)明是一種基于集群并行計算機系統(tǒng)和體系結(jié)構(gòu)模擬器來模擬優(yōu)選計算機體系結(jié)構(gòu)設(shè)計方案的方法,該方法采用集群系統(tǒng)作為宿主機,基于專門設(shè)計的全局配置程序、模擬配置文件生成程序、任務(wù)調(diào)度程序、結(jié)果分析程序的協(xié)調(diào)配合,控制在多個模擬節(jié)點上采用不同配置文件來運行模擬器的不同實例,并行地對目標計算機體系結(jié)構(gòu)的不同配置方案進行評估,加速了體系結(jié)構(gòu)設(shè)計方案優(yōu)選過程,有利于獲得更優(yōu)的設(shè)計方案,并提高了體系結(jié)構(gòu)設(shè)計方案優(yōu)選過程的自動化程度,方便了用戶操作。
2權(quán)利要求
1. 一種基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法,其特征在于包括以下步驟第一步,構(gòu)建具備遠程命令執(zhí)行環(huán)境的集群系統(tǒng),該集群系統(tǒng)由多個節(jié)點構(gòu)成,每個節(jié)點都是一臺可獨立運行的計算機,各個節(jié)點間通過網(wǎng)絡(luò)設(shè)備相互連接,指定一個節(jié)點為主控節(jié)點,它負責與用戶交互,完成輸入輸出及模擬配置文件的分發(fā)、任務(wù)調(diào)度和結(jié)果分析,其它節(jié)點稱為模擬節(jié)點,它們負責對具體的體系結(jié)構(gòu)配置進行模擬,并將模擬結(jié)果發(fā)送給主控節(jié)點,P個可用的模擬節(jié)點編號為1—P;主控節(jié)點上安裝有全局配置程序、模擬配置文件生成程序、任務(wù)調(diào)度程序和結(jié)果分析程序;全局配置程序負責將全局性的配置設(shè)置記錄在全局配置文件中;模擬配置文件生成程序根據(jù)全局配置文件生成覆蓋整個設(shè)計空間的模擬配置文件,每個模擬配置文件記錄體系結(jié)構(gòu)的一種配置,包含設(shè)計空間中每個參數(shù)的一個具體的取值,代表設(shè)計空間的一個點;任務(wù)調(diào)度程序根據(jù)全局配置文件將模擬配置文件分發(fā)到各個模擬節(jié)點,并調(diào)度各個模擬節(jié)點針對各自分配的模擬配置文件進行模擬評估;結(jié)果分析程序接收各個模擬節(jié)點上的模擬結(jié)果,進行統(tǒng)計分析,篩選出最優(yōu)配置;模擬節(jié)點上安裝有目標體系結(jié)構(gòu)模擬器和Benchmark程序,模擬節(jié)點收到主控節(jié)點向它分配的模擬配置文件后,根據(jù)從模擬配置文件中獲得各個體系結(jié)構(gòu)參數(shù)的取值,在模擬器上模擬運行Benchmark程序,得到目標體系結(jié)構(gòu)采用當前配置情況下的性能數(shù)據(jù);第二步,主控節(jié)點執(zhí)行全局配置程序,進行全局性的配置設(shè)置,將設(shè)置結(jié)果記錄在全局配置文件中,全局配置文件包含模擬節(jié)點列表域、模擬器軟件域、體系結(jié)構(gòu)參數(shù)域和目標性能參數(shù)域,全局配置程序進行配置設(shè)置的方法是2. 1全局配置程序指定當前可用做模擬節(jié)點的節(jié)點,并將指定結(jié)果記錄在全局配置文件的模擬節(jié)點列表域中;2. 2全局配置程序?qū)⒛M器軟件的文件名、完整路徑、Benchmark程序的文件名、完整路徑以及運行Benchmark程序時的命令行參數(shù)記錄在全局配置文件的模擬器軟件域中;2. 3全局配置程序?qū)Ⅲw系結(jié)構(gòu)設(shè)計空間所包含的配置參數(shù)的名稱及其取值范圍記錄在全局配置文件的體系結(jié)構(gòu)參數(shù)域,體系結(jié)構(gòu)參數(shù)域包含三個子域枚舉型參數(shù)子域、整數(shù)型參數(shù)子域和浮點型參數(shù)子域;設(shè)體系結(jié)構(gòu)設(shè)計空間中包含K個枚舉型參數(shù)e1,e2,...,eK,第α個枚舉型參數(shù)eα取nα個枚舉值eα(1),eα(2),…,eα(nα),1≤α≤K,則在枚舉型參數(shù)子域中記錄每個枚舉參數(shù)eα的名稱及其全部枚舉值的集合{eα(1),eα(2),…,eα(nα)};設(shè)模擬器需要L個整數(shù)型參數(shù)i1,i2,...,iL,第β個整數(shù)參數(shù)iβ的下界為ILowβ,上界為IUpβ,遞增步長為IStepβ,ILowβ、IUpβ和IStepβ均為整數(shù),且IStepβ>0,1≤β≤L,則在整數(shù)型參數(shù)子域中記錄每個整數(shù)參數(shù)的名稱、上下界及步長;設(shè)模擬器需要M個浮點型參數(shù)f1,f2,...,fM,第γ個浮點參數(shù)fγ的下界為FLowγ,上界為FUpγ,遞增步長為FStepγ,其中FLowγ、FUpγ和FStepγ均為整數(shù),且FStepγ>0,1≤γ≤M,則在浮點型參數(shù)子域中記錄每個浮點參數(shù)的名稱、上下界及步長;2. 4全局配置程序?qū)⒛繕诵阅軈?shù)及其正負向?qū)傩栽O(shè)置在全局配置文件的目標性能參數(shù)域,設(shè)共有R個目標性能參數(shù)PU1,PU2,...,PUR,全局配置程序在全局配置文件的目標性能參數(shù)域中記錄各個目標性能參數(shù)的名稱與正負向?qū)傩訮V1,PV2,...,PVR,各個目標性能參數(shù)的名稱與模擬器輸出文件中對應(yīng)參數(shù)的名稱要保持一致;第三步,模擬配置文件生成程序從全局配置文件的體系結(jié)構(gòu)參數(shù)域中獲得體系結(jié)構(gòu)設(shè)計空間包含的各個參數(shù)的名稱及其取值范圍,生成所有的模擬配置文件,每個模擬配置文件對應(yīng)目標體系結(jié)構(gòu)設(shè)計空間的一個具體配置,它包含K+L+M行,K是枚舉型參數(shù)的數(shù)目,L整數(shù)型參數(shù)的數(shù)目,M是浮點型參數(shù)的數(shù)目,每一行記錄一個體系結(jié)構(gòu)參數(shù)的名稱及其當前取值;模擬配置文件生成過程是3. 1根據(jù)全局配置文件產(chǎn)生一個模擬配置文件生成腳本;3. 2執(zhí)行模擬配置文件生成腳本,生成配置文件,存儲在主控節(jié)點上,每個模擬配置文件按其生成的順序編號;第四步,任務(wù)調(diào)度程序?qū)⒛M評估任務(wù)分配給各個節(jié)點,并控制各個模擬節(jié)點并行地進行模擬評估,包括以下步驟4. 1任務(wù)調(diào)度程序?qū)⒛M配置文件從主控節(jié)點分發(fā)到各個模擬節(jié)點;4. 2控制各個模擬節(jié)點并行地進行模擬評估,即任務(wù)調(diào)度程序調(diào)度各個模擬節(jié)點啟動體系結(jié)構(gòu)模擬器,以各自分配的模擬配置文件為目標計算機體系結(jié)構(gòu)配置,模擬運行Benchmark程序,得到該配置情況下Benchmark程序運行的性能數(shù)據(jù),記錄在結(jié)果文件中,并將結(jié)果文件發(fā)送給主控節(jié)點;具體步驟是4. 2.1任務(wù)調(diào)度程序在主控節(jié)點上生成模擬控制腳本;4. 2.2任務(wù)調(diào)度程序?qū)⒛M控制腳本從主控節(jié)點上復制到各個模擬節(jié)點上;4. 2.3任務(wù)調(diào)度程序啟動各個模擬節(jié)點上的模擬控制腳本;各個模擬節(jié)點執(zhí)行模擬控制腳本,對各個模擬配置文件進行模擬評估,將每個模擬配置文件的評估結(jié)果記錄在一個結(jié)果文件中,結(jié)果文件的編號與模擬配置文件的編號相同,每評估完一個模擬配置文件就將其結(jié)果文件發(fā)送給主控節(jié)點;第五步,主控節(jié)點上的結(jié)果分析程序不斷地搜索模擬節(jié)點發(fā)來的模擬結(jié)果文件,進行統(tǒng)計分析,篩選出針對各個性能參數(shù)的最優(yōu)配置參數(shù)值,輸出報告,步驟是5. 1進行初始化工作,具體是(i)解析全局配置文件,初始化目標性能參數(shù)列表PU1,PU2,...,PUR,并為每個目標性能參數(shù)PUλ創(chuàng)建一個數(shù)組結(jié)構(gòu)PSCλ,用于存儲該性能參數(shù)值最優(yōu)時對應(yīng)的模擬配置參數(shù)值,1≤λ≤R,該數(shù)組包含K+L+M個元素,其中第h個元素PSCλ[h]對應(yīng)第h個模擬配置參數(shù);(ii)從記錄文件中獲得總模擬配置數(shù)SCount,初始化計數(shù)器RCounter的值為1;(iii)任意選取一個模擬結(jié)果文件,采用其中的性能參數(shù)值來初始化目標性能參數(shù)列表PU1,PU2,...,PUR,采用與該模擬結(jié)果文件編號相同的模擬配置文件中的配置參數(shù)值來初始化每個數(shù)組PSCλ;5. 2搜索一個尚未統(tǒng)計過的的模擬結(jié)果文件CrtRFile,從中獲得全部性能參數(shù)的值CrtPU1,CrtPU2,...,CrtPUR;5. 3分別將CrtPU1,CrtPU2,...,CrtPUR與已記錄的對應(yīng)最優(yōu)性能參數(shù)進行比較,如果CrtPU1,CrtPU2,...,CrtPUR中的一個或多個優(yōu)于已記錄的對應(yīng)最優(yōu)性能參數(shù),則轉(zhuǎn)5.4;否則,轉(zhuǎn)5.5;5. 4更新最優(yōu)性能參數(shù)和對應(yīng)的模擬配置參數(shù)的記錄,過程如下(A)找到與結(jié)果文件CrtRFile編號相同的模擬配置文件CrtSCFile;(B)解析CrtSCFile中模擬配置參數(shù)的值,記錄在臨時數(shù)組tempSC中;(C)初始化,置迭代索引變量λ的值為1;(D)若PVλ=1且CrtPUλ>PUλ,或者PVλ=-1且CrtPUλ<PUλ,則轉(zhuǎn)(E);否則,轉(zhuǎn)(I);(E)置PUλ=CrtPUλ;(F)初始化,置迭代索引變量h的值為1;(G)置PSCλ[h]=tempSC[h];(H)若h<K+L+M,則h的值增加1,轉(zhuǎn)(G);否則,退出迭代,轉(zhuǎn)(I);(I)若λ<R,則λ的值增加1,轉(zhuǎn)(D);否則,步驟5.4結(jié)束;5. 5計數(shù)器變量RCounter的值增加1;5. 6進行判斷,如果RCounter<SCount,則轉(zhuǎn)5.2;否則,轉(zhuǎn)5.7;5. 7輸出最終獲得的各個最優(yōu)性能參數(shù)PU1,PU2,...,PUR以及它們對應(yīng)的模擬配置參數(shù)的值。
2.如權(quán)利要求1所述的基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法,其特征在于產(chǎn)生模擬配置文件生成腳本的步驟是步驟1,創(chuàng)建一個腳本程序,向腳本程序中寫入初始化代碼將模擬配置文件編號Fz7e —/£>設(shè)為1;步驟2,解析全局配置文件,獲得全部枚舉型參數(shù)^^2,...,^的名稱及其枚舉集合^, £2,...£x,對每一個枚舉型參數(shù),寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句的功能是枚舉該參數(shù)所有的取值,除第一條循環(huán)語句外,每次寫入的循環(huán)語句都要位于前一次寫入的循環(huán)語句結(jié)構(gòu)的內(nèi)部,這樣就得到了一個K層的緊嵌套循環(huán);步驟3,解析全局配置文件,獲得全部整數(shù)型參數(shù)H...,L的名稱、下界/LoM^/丄ow2…,/丄oM^ 、上界/[/; 1,^ 2"-"^^和遞增步長,&印1,/&印2,...,/泣印£ ,對每一個整數(shù)型參數(shù)^, 1S/ 2Z,寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句的功能是枚舉該整數(shù)型參數(shù)所有的取值,以一個整數(shù)為索引變量,索引變量的下界是/Zm^,上界是/C//^,步長為/5te/^;其中第一次寫入的循環(huán)語句位于步驟2生成的嵌套循環(huán)的最內(nèi)層循環(huán)內(nèi),其后每次寫入的循環(huán)語句都位于前一次寫入的循環(huán)語句結(jié)構(gòu)的內(nèi)部,該步驟在步驟2得到的最內(nèi)層循環(huán)中加入了一個£層的緊嵌套循環(huán);步驟4,解析全局配置文件,獲得全部浮點型參數(shù)/1,/2,...,_4的名稱、下界FZoM^,FZow2…,F(xiàn)i:oMv 、上界7^/^,/^//72,...,/^^1/和遞增步長尸》明,7^卬2,...,尸&£^ ;對每個浮點參數(shù)力,lS7SM,先計算乂 =(尸[^-i^o^)/FS^^, &取整數(shù);然后,寫入一個循環(huán)語句到配置文件生成腳本中,該循環(huán)語句以一個整數(shù)為索引變量,索引變量的下界是l,上界是iV"步長是l;其中第一次寫入的循環(huán)語句位于步驟3得到嵌套循環(huán)的最內(nèi)層循環(huán)內(nèi),其后每次寫入的循環(huán)語句都位于前一次寫入循環(huán)語句結(jié)構(gòu)的內(nèi)部, 該步驟在步驟.3得到的最內(nèi)層循環(huán)中加入了一個M層的嵌套循環(huán);步驟5,在步驟4得到的模擬配置文件生成腳本中的最內(nèi)層循環(huán)內(nèi),寫入功能代碼塊, 該功能代碼塊的流程是-(1) 創(chuàng)建編號為尸/7e一/D的模擬配置文件,模擬配置文件的名字都以固定的標識符開頭,并將其編號作為文件名的一部分;(2) 對每個枚舉型模擬配置參數(shù),在當前模擬配置文件中寫入一行語句,記錄 該枚舉參數(shù)的當前值,枚舉參數(shù)當前取值就是嵌套循環(huán)的當次迭代時該枚舉參數(shù)對應(yīng) 的索引變量的值;(3) 對每個整數(shù)型模擬配置參數(shù),在當前模擬配置文件中寫入一行,記錄該整 數(shù)參數(shù)的當前值,整數(shù)參數(shù)當前取值就是嵌套循環(huán)的當次迭代時該整數(shù)參數(shù)對應(yīng)的索 引變量的值;(4) 對每個浮點型模擬配置參數(shù),首先計算其當前取值,然后在當前模擬配置 文件中寫入一行,記錄其當前值;(5) 關(guān)閉當前模擬配置文件,尸&_//)的值增加1;步驟6,在配置文件生成腳本的最后寫入代碼,功能是將生成的不同模擬配置文件的 數(shù)目記錄到一個文件中。
3.如權(quán)利要求1所述的基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法,其特 征在于模擬配置文件生成腳本的執(zhí)行流程是-步驟l)初始化,將模擬配置文件初始編號尸/fe一/D的值設(shè)為1;步驟2)開始執(zhí)行嵌套循環(huán)的一次迭代,創(chuàng)建編號為H/e一/D的模擬配置文件jL艦—化,步驟3)對每個枚舉型模擬配置參數(shù),在模擬配置文件SC^—^中寫入一行,記錄該枚舉參數(shù)的當前值,形式為枚舉參數(shù)名=枚舉參數(shù)當前取值。步驟4)對每個整數(shù)型模擬配置參數(shù),在當前模擬配置文件SC^,。中寫入一行,記錄該整數(shù)參數(shù)的當前值,形式為整數(shù)參數(shù)名=整數(shù)參數(shù)當前取值。步驟5)對每個浮點型模擬配置參數(shù)/;, 1^r^M,首先計算其當前取值;設(shè)執(zhí)行 嵌套循環(huán)當次迭代時該浮點參數(shù)對應(yīng)的索引變量的取值為尸//血"則浮點型參數(shù)的當前取值為凡m^+i^嘩^(F//^-1),然后,在模擬配置文件SC她—m中寫入一行,形式為浮點參數(shù)名-浮點參數(shù)當前取值;步驟6)關(guān)閉模擬配置文件SC^,, Fz7e —/Z)的值增加1;步驟7)如果已執(zhí)行完嵌套循環(huán)的所有迭代,則轉(zhuǎn)步驟8),否則轉(zhuǎn)步驟2); 步驟8)創(chuàng)建一個文件,在其中寫入K7e —/D-l的值。
4..如權(quán)利要求1所述的基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法,其 特征在于模擬腳本程序的流程是(a) 搜索本模擬節(jié)點上一個尚未評估過的模擬配置文件,記錄其編號"/e一/D;(b) 執(zhí)行模擬器軟件,目標體系結(jié)構(gòu)采用當前模擬配置文件中的配置,對 Benchmark程序進行模擬測試,模擬結(jié)果輸出到編號為F//e_/D的文件中;(c) 將生成的模擬結(jié)果文件發(fā)送到主控節(jié)點;(d) 若尚未評估完本節(jié)點上的全部模擬配置文件,轉(zhuǎn)步驟(a);否則流程結(jié)束。
5.如權(quán)利要求1所述的基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法,其特征在于任務(wù)調(diào)度程序?qū)⒛M配置文件從主控節(jié)點分發(fā)到各個模擬節(jié)點時采用循環(huán)分布策 略,循環(huán)分布策略是設(shè)共有P個可用模擬節(jié)點,W個模擬配置文件,iV〉P,若PIN即 N能被P整除,則模擬節(jié)點W;上分配的模擬配置文件是(SC", SC。+p, SC"+2p,..., ST"+W—p}, 1S/7《P;否則,令iV除以P的余數(shù)為"e#0,當lS/7Ss時,模擬節(jié)點^ 上分配的配置文件集合是{, SC^, SC。+2P, ..., SC。+w—p},當£<77^ 時,模擬節(jié)點^上分配的配置文件集合是(SC。, SC^, SC"+2/), ..., SC |w| },其中 示不大于!的最大整數(shù)£ P
全文摘要
本發(fā)明公開了一種基于集群系統(tǒng)的計算機體系結(jié)構(gòu)方案并行模擬優(yōu)選方法,目的是提供一種計算機體系結(jié)構(gòu)設(shè)計方案并行模擬優(yōu)選的方法。技術(shù)方案是先構(gòu)建具備遠程命令執(zhí)行環(huán)境的由主控節(jié)點和模擬節(jié)點組成的集群并行計算機系統(tǒng),主控節(jié)點上安裝有全局配置程序、模擬配置文件生成程序、任務(wù)調(diào)度程序和結(jié)果分析程序。全局配置程序進行全局性的配置設(shè)置;模擬配置文件生成程序生成所有的模擬配置文件;任務(wù)調(diào)度程序?qū)⒛M評估任務(wù)分配給各個節(jié)點,控制各個模擬節(jié)點并行地進行模擬評估;結(jié)果分析程序搜索模擬節(jié)點發(fā)來的模擬結(jié)果文件,進行統(tǒng)計,篩選出最優(yōu)配置參數(shù)值,輸出報告。采用本發(fā)明既能減少評價優(yōu)選的時間,又能提高選擇的準確度。
文檔編號G06F17/50GK101464922SQ20091004258
公開日2009年6月24日 申請日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
發(fā)明者徐傳福, 方建濱, 維 曹, 王勇獻, 王正華, 翁玉芬, 車永剛, 陸平靜 申請人:中國人民解放軍國防科學技術(shù)大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1