一種并行系統(tǒng)性能的形式化分析方法
【技術領域】
[0002] 本發(fā)明涉及并行系統(tǒng)性能分析領域,特別涉及一種基于賦時著色Petri網計算模 型的并行系統(tǒng)性能持續(xù)提升方法。
[0003]
【背景技術】
[0004] 作為解決大規(guī)模計算問題的重要手段,高性能計算技術被越來越廣泛地應用到科 學與工程的各個領域。然而,隨著高性能計算機規(guī)模的不斷擴大,系統(tǒng)峰值性能的迅速提 高,應用程序的持續(xù)性能并未獲得同比例的提高,兩者間的差距日益擴大。因此,如何發(fā)現 系統(tǒng)性能瓶頸,提高系統(tǒng)持續(xù)性能成為高性能計算研究領域急需解決的重點問題。
[0005] 目前常用的并行系統(tǒng)(并行程序+并行機)性能分析方法主要有:測量法和模型 法。
[0006] (1)測量法 可采用的標準商用性能測試軟件有UNPACK (為Top500排名提供性能參數根據)、SPEC Benchmark suite、NAS Parallel Benchmarks 和 Streams benchmark 等。這些測試程序雖 然在一定程度上反映了實際應用的負載特征,但實際負載的多樣性,使得Benchmark很難 匹配所有負載特征。例如,UNPACK能較為準確地得到密集型矩陣運算應用的性能,但它卻 不適合于測量科學計算任務中常見的其它負載特征的應用性能,如稀疏矩陣運算模型、不 規(guī)則mesh結構運算模型、自適應優(yōu)化mesh結構運算模型等。Benchmark負載特征與實際應 用負載特征的不一致性,導致了用Benchmark不能準確地測量出系統(tǒng)的實際性能。
[0007] 另一種常用的性能測量法是通過測量設備直接從系統(tǒng)中測得各項性能指標或與 之密切相關的量,然后由此經過運算求出相應的性能指標值。設備測量可以準確提取系統(tǒng) 和負載參數,輔助系統(tǒng)模型和負載模型的建立。此外,在多數情況下,因為實際測量法的結 果是準確的,可以用這個結果來驗證其它性能預測方法的準確性。
[0008] 性能測量法屬事后驗證法,只適用于已經存在并運行的系統(tǒng),周期長、代價大,不 適合大規(guī)模復雜科學計算任務的開發(fā)。
[0009] (2)模型法 該方法需要首先為待評價的并行系統(tǒng)建立一個適當的模型,然后求出模型的性能指標 值,以便對系統(tǒng)進行性能評價。模型中一般包括許多參數,這些參數的確定通常依賴于對實 際系統(tǒng)的測量結果或對系統(tǒng)參數的估計。與測量法相比,模型方法不僅可以應用于已有的 系統(tǒng)性能評價,也可以應用于尚未存在系統(tǒng)的性能預測,而且這種方法工作量小、代價低。 [0010] 伊利諾伊大學為BlueGene/C開發(fā)的并行模擬器BigSim,加州大學COMPASS項目的 MPI-S頂,國防科大為預測MPI程序在多核SMP集群上的性能而設計實現的Sim-MSC等,均 采用程序動態(tài)模擬系統(tǒng)硬件配置和工作負載,通過負載驅動系統(tǒng)模型從而得出模型的性能 指標。這種模擬技術在性能評價的代價、時間和靈活性之間有較好的平衡,但作為大規(guī)模并 行系統(tǒng)的性能評價工具,性能模擬器設計、實現的代價高,模擬器評價時間過長。為此,可采 用應用數學理論與方法,適當簡化模型參數,來研究、描述性能與并行、并行應用之間的關 系,以彌補性能模擬器的不足。
[0011] 以上這些技術在并行系統(tǒng)性能分析過程中各有優(yōu)勢,比如,在系統(tǒng)設計早期,不存 在可運行的完整系統(tǒng),無法使用測量計算進行分析,只能通過性能模型分析方法來預測系 統(tǒng)性能。而隨著系統(tǒng)實現的推進,可用組件逐漸增多,因此可以使用模擬器或Benchmark評 價系統(tǒng)性能。最后,當系統(tǒng)完全實現,就可利用實際測量技術評價系統(tǒng)性能,并用結果驗證 其他分析技術的正確性和有效性。
[0012]
【發(fā)明內容】
[0013] 本發(fā)明解決的問題是現有并行系統(tǒng)性能分析方法代價高、效率差;為解決所述問 題,本發(fā)明提供一種并行系統(tǒng)性能的形式分析方法。
[0014] -種并行系統(tǒng)性能的形式化分析方法,包括: 步驟一、建立并行程序性能模型和并行機模型; 步驟二、在并行程序性能模型和并行機模型之間建立映射關系,形成并行應用性能模 型,進行并行系統(tǒng)性能分析。
[0015] 進一步,所述并行程序性能模型包括程序控制流模型,線程通信模型,并行應用性 能模型;所述并行程序性能模型基于賦時著色Petri網建立。
[0016] 進一步,還包括對所述并行程序性能模型進行驗證: 步驟1.1、將并行程序性能模型按功能模塊進行劃分,即模型/^…忍},巧為第 i個功能模塊,對/?中的各功能模塊分別建模; 步驟1. 2、根據/?的數據規(guī)模,確定尸,包含的進程數量/7,即尸,= {A7,,/··&},&為 A中的進程,分別建模; 步驟1. 2. 1、/。中串行執(zhí)行部分按照預設的并行系統(tǒng)性能分析方法的程序分支結構模 型和循環(huán)結構模型對程序的控制流建模; 步驟1. 2. 2、/。中的通信部分,分析消息的源進程和目標進程,按照預設的并行系統(tǒng)性 能分析方法的程序通信方式模型建立通信模型; 步驟1. 2. 3、根據中的數據類型,確定集合中的元素; 步驟1. 2. 4、將/^中的事件或動作轉化為變遷b,然后根據變遷b的功能,定義變遷 函數/^,計算。觸發(fā)后,標識的變化; 步驟1. 2. 5、計算7^.,得到變遷b觸發(fā)延遲; 步驟L 2. 6、若/^中的所有進程建模完畢,則轉St印3,否則轉St印2. 1 ; 步驟1. 3、當/?的/卩7均建模完畢,則將各功能模塊模型按照同步合成法進行組合,形 成完整算法的P模型; 步驟1. 4、若得到的P不是安全網,做適當地改造,將受控網改造為相應的安全網。 [0017] 進一步,步驟二中,進行系統(tǒng)性能分析包括: 步驟2.1、并行度計算; 步驟2. 2、負載平衡計算; 步驟2. 3、系統(tǒng)運行時間計算; 步驟2. 4、資源利用率與操作執(zhí)行頻率計算。
[0018] 進一步,并行度計算包括:片段集合/(/^) = ΙΛ,Λ,"·Λ}= v 是程 序辦的所有可能的片段集合,其中也5?表示在標識#下活躍的進程,^(/切是并行程序 辦性能模型的可達標識集合,若沁是辦的初始狀態(tài),則必'(/如)4?) ; ρ Λ p是片段乂 的大小,乂中進程個數,并行程序辦的最大并行度為#_ 。
[0019] 進一步,負載平衡計算包括:對于::%卩_&·,,表示在穩(wěn)定狀態(tài)下, 庫所胃在任一可達標識中平均含有的《數,則
勺各節(jié)點進程庫所集合中平均 數之和。
[0020] 進一步,系統(tǒng)運行時間計算包括:
,其中,
得 pig A&為等效計算量,&為等效計算速度,4 $,&和I分別是等效數據訪問量 Mr Jir, 和等效數據訪問速度。
[0021] 進一步,資源利用率與操作執(zhí)行頻率計算包括:利用toh/v估算資源爵的利 用率,當A屬于某個子進程時,可以把
[ft為進程任務隊列長度,進而 分析進程響應時間和吞吐量;"iir的觸發(fā)概率是能使?觸發(fā)的所有標識的穩(wěn)定概率之和, 艮口,其中,您(0是指能使(觸發(fā)的所有可達標識集合。
[0022] 進一步,還包括:確定并行系統(tǒng)性能分析,步驟3. 1、計算節(jié)點關鍵性能影響因素 的計算;步驟3-2,通信網絡關鍵性能影響因素的計算;步驟3-3,并行應用性能度量參數的 計算。
[0023] 進一步,還包括: 步驟1. 1. 1 :初始化所有集合為龍; 步驟1. 1. 2 :根據定義3. 28建立P模型的關聯矩陣6;; 步驟1. 1. 3 :/br i=l~a?判斷每個/7,的類型; 步驟1. 1. 3. 1 :若約e OP ,檢查C第i列中" 1 "和"-1 "的個數,若各位1,則滿 足定義4. 7 (1)和(2),否則尸俗=尸; 步驟1. 1. 3. 2 :若A e $巧,檢查C第i列中" 1 "和"-1 "的個數,若都為X,則滿足定義 4· 7 (3 ),否則尸/5=尸/袖 Ια.}; 步驟1. 1. 3. 3 :除以上類型外的Α.,若C第i列中"1"和"-1"的個數都為1,則滿足定 義4. 7 (4),否則尸/5=尸/袖{^}; 步驟1. 1. 3. 4 :若朽e 5巧》u Λ片:=0,則屬〇=屬中h.}; 若e BP,J BPc ?\' -Pi = 0 ,魏 LMP = LMA [ph ' 若巧e uλ|片|關|>;|,則嫌尸=嫌尸6{^}; 步驟1. 1. 4 :/br 判斷每個G的類型; 步驟1. 1.4. 1 :若,檢查C第J行中"1"和"-1"的個數是否分別為x和1,若 是,