欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)方法

文檔序號:6575541閱讀:218來源:國知局

專利名稱::一種大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
:本發(fā)明涉及并行程序性能預(yù)測的
技術(shù)領(lǐng)域
。
背景技術(shù)
:當(dāng)前,大規(guī)模并行計(jì)算機(jī)包括成千上萬個(gè)計(jì)算節(jié)點(diǎn),在研制過程中,一般花費(fèi)幾年的開發(fā)時(shí)間和很高的人力和財(cái)力。對于這些計(jì)算機(jī)的設(shè)計(jì)人員,在設(shè)計(jì)階段能夠預(yù)測某個(gè)應(yīng)用在未來設(shè)計(jì)系統(tǒng)上的性能對于提前發(fā)現(xiàn)系統(tǒng)瓶頸并改進(jìn)系統(tǒng)設(shè)計(jì)具有重要意義。精確的預(yù)測某個(gè)應(yīng)用在未來系統(tǒng)上的性能不但可以輔助設(shè)計(jì)未來計(jì)算機(jī),還可以幫助應(yīng)用人員開發(fā)者在未來系統(tǒng)可用前,提前發(fā)現(xiàn)應(yīng)用程序的瓶頸,從而優(yōu)化并改進(jìn)程序性能。然而,精確的預(yù)測并行程序在未來系統(tǒng)上的性能是一件非常復(fù)雜的問題。因?yàn)?,并行程序的?zhí)行時(shí)間由程序中的順序計(jì)算時(shí)間、通信時(shí)間、以及它們之間的巻積三個(gè)因素決定。當(dāng)前存在的網(wǎng)絡(luò)模擬器能夠很好模擬并行程序的通信時(shí)間,例如DIMEMAS和BigNetSim模擬器。然而,當(dāng)前的方法不能獲得精確的并行程序中的計(jì)算時(shí)間。當(dāng)前國際上主要有三類方法用于估計(jì)程序中的順序計(jì)算時(shí)間1、分析建模對并行程序中的順序計(jì)算單元進(jìn)行分析建模,得到計(jì)算單元的時(shí)間。美國圣地亞哥超級計(jì)算中心的Snavdy等人(A.Snavelyetal.Aframeworkforapplicationperformancemodelingandprediction.InSC,02,pages1-17,2002.)通過插裝和硬件計(jì)數(shù)器等技術(shù)收集程序的浮點(diǎn)、整數(shù)指令個(gè)數(shù)、訪存模式等信息,以及目標(biāo)系統(tǒng)的機(jī)器特征,從而構(gòu)建一個(gè)參數(shù)化模型來估計(jì)程序的順序計(jì)算時(shí)間。但是,隨著體系結(jié)構(gòu)和軟件設(shè)計(jì)的復(fù)雜化,分析方法越來越難獲得精確的計(jì)算時(shí)間。例如,對于當(dāng)前的超標(biāo)量計(jì)算機(jī),處理器能夠亂序發(fā)射主流的多核計(jì)算機(jī),共享資源的竟?fàn)帟?huì)對程序的性能產(chǎn)生復(fù)雜的影響,分析建模的方法很難捕捉這些影響。2、模擬技術(shù)模擬的技術(shù)被用來分析程序的行為,例如MPI-SIM和BigSim模擬器。然而,周期精確的系統(tǒng)模擬器在模擬時(shí)間和資源需求方面都遠(yuǎn)遠(yuǎn)超過實(shí)際的用戶承受能力。當(dāng)前對于高性能計(jì)算領(lǐng)域,存在的模擬器都不能模擬大規(guī)模的并行應(yīng)用。3、測試和外推有一些研究人員通過在未來目標(biāo)系統(tǒng)的原型系統(tǒng)上實(shí)際測試來獲得計(jì)算時(shí)間。直接測試的方法對于固定每個(gè)進(jìn)程計(jì)算規(guī)模的弱規(guī)模(weak-scaling)并行程序適用。但是對于固定整個(gè)問題大小的強(qiáng)規(guī)模(strong-scaling)并行程序并不適用。因?yàn)椋瑢τ趶?qiáng)規(guī)模并行程序,程序中的順序計(jì)算時(shí)間會(huì)隨著總進(jìn)程個(gè)數(shù)變化而變化。此外,還有一些通過外推的方法來獲取強(qiáng)規(guī)模并行程序的順序計(jì)算時(shí)間,但是外推的方法精度都比較低??傊?,當(dāng)前存在的技術(shù)不能獲得并行程序中精確順序計(jì)算時(shí)間,尤其是對大規(guī)模的并行程序,從而導(dǎo)致并行程序的性能預(yù)測精度不高。
發(fā)明內(nèi)容(一)發(fā)明目的本發(fā)明的目的是提供一種基于代表性重放的大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)方法,能精確地預(yù)測程序在目標(biāo)大規(guī)模并行系統(tǒng)上的性能。(二)
發(fā)明內(nèi)容一種大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)方法,包括步驟Sl:在主平臺上收集并行程序中通信序列和計(jì)算向量;S2:分析并行程序各進(jìn)程的計(jì)算相似性,且從中選出有代表性的進(jìn)程;S3:在主平臺上執(zhí)行并行程序,記錄步驟S2中選取的有代表性進(jìn)程的每次通信內(nèi)容;S4:在目標(biāo)平臺的一個(gè)節(jié)點(diǎn)上重放步驟S2得到的有代表性進(jìn)程,得到這些進(jìn)程在目標(biāo)平臺上的順序計(jì)算向量;S5:使用通信插裝工具獲得并行程序的通信記錄;S6:將步驟S4得到的有代表性進(jìn)程的順序計(jì)算向量和步驟S5得到的通信記錄,輸入網(wǎng)絡(luò)模擬器,該模擬器輸出并行程序的預(yù)測時(shí)間。其中,所述步驟S1包括S101:對程序中每個(gè)通信函數(shù)調(diào)用進(jìn)行插裝,按照通信函數(shù)調(diào)用的時(shí)間順序記錄每次的通信類型,分別得到N個(gè)進(jìn)程的通信序列,并存儲(chǔ)在本地日志文件中;S102:記錄程序每個(gè)進(jìn)程通信調(diào)用之間的計(jì)算時(shí)間開銷,按照時(shí)間先后順序存取,分別得到N個(gè)進(jìn)程的計(jì)算向量,并存儲(chǔ)在本地曰志文件中。其中,所述步驟S2包括S201:分析步驟S101獲得的程序通信序列,把通信序列相同的進(jìn)程放入一組,得到T個(gè)進(jìn)程組,其中T〈-N;S202:指定包含K個(gè)進(jìn)程的進(jìn)程組中的每個(gè)進(jìn)程為一個(gè)單獨(dú)的類,其中K<=N;S203:按照如下公式計(jì)算任意兩個(gè)進(jìn)程間的距離,得到一個(gè)K維的距離矩陣M,其中,x和y表示步驟S102獲得的兩個(gè)進(jìn)程的計(jì)算向量,Xi和yi表示計(jì)算向量的每個(gè)元素,m表示向量的維數(shù)。S204:在步驟S203中得到的距離矩陣M中選取距離具有最小值的兩個(gè)進(jìn)程p和q,把p和q進(jìn)程合并成一個(gè)新的類V;S205:按照以上公式重新計(jì)算類V與其他進(jìn)程的距離,然后得到新的距離矩陣M;S206:重復(fù)步驟S204和步驟S205,直到合并到剩下一個(gè)進(jìn)程類;S207:對步驟S206得到的進(jìn)程組劃分,得到X個(gè)進(jìn)程組,從每個(gè)進(jìn)程組中選取距離進(jìn)程組的計(jì)算向量空間質(zhì)心最近的進(jìn)程作為有代表性進(jìn)程,該步驟得到X個(gè)有代表性的進(jìn)程,其中X〈-N。其中,在所述步驟S207之前還包括設(shè)定用于對S206得到的進(jìn)程組劃分的閾值。其中,所述通信序列是按照時(shí)間順序記錄的每個(gè)進(jìn)程產(chǎn)生的通信調(diào)用類型。其中,所述計(jì)算向量是用來記錄并行程序中每個(gè)進(jìn)程的順序計(jì)算性能的時(shí)間向量。一種基于上述方法的大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)系統(tǒng),包括用于在主平臺上收集并行程序中通信序列和計(jì)算向量的模塊;用于分析并行程序各進(jìn)程的計(jì)算相似性,且從中選出有代表性的進(jìn)程的模塊;用于在主平臺上執(zhí)行并行程序,記錄步驟S2中選取的有代表性進(jìn)程的每次通信內(nèi)容的模塊;用于在目標(biāo)平臺的一個(gè)節(jié)點(diǎn)上重放步驟S2得到的有代表性進(jìn)程,得到這些進(jìn)程在目標(biāo)平臺上的順序計(jì)算向量的模塊;用于使用通信插裝工具獲得并行程序的通信記錄的模塊;用于將步驟S4得到的有代表性進(jìn)程的順序計(jì)算向量和步驟S5得到的通信記錄,輸入網(wǎng)絡(luò)模擬器,該模擬器輸出并行程序的預(yù)測時(shí)間的模塊。(三)有益效果使用本方法預(yù)測并行程序的性能具有如下關(guān)鍵特征和優(yōu)點(diǎn)1、基于有代表性重放技術(shù)獲取并行程序中精確的順序計(jì)算時(shí)間;2、預(yù)測過程中使用的資源少,僅僅需要目標(biāo)系統(tǒng)的一個(gè)計(jì)算節(jié)點(diǎn);3、程序的預(yù)測過程自動(dòng)化,不需要用戶干預(yù)。圖l是根據(jù)本發(fā)明的基于有代表性重放的并行程序性能預(yù)測方法流程圖2是圖1中步驟S2的流程圖3是步驟S3記錄有代表性進(jìn)程的每次通信內(nèi)容示意圖;圖4是步驟S4重放并行程序中代表性進(jìn)程示意圖;圖5深騰-F平臺上Swee3D的預(yù)測結(jié)果;圖6深騰-B平臺上Swee3D的預(yù)測結(jié)果;圖7正常執(zhí)行和重放執(zhí)行時(shí)間對比。具體實(shí)施例方式本發(fā)明提出的基于有代表性重放的并行程序性能預(yù)測方法,需要兩個(gè)硬件平臺第一個(gè)是主平臺,這個(gè)平臺就是一般的集群系統(tǒng),主平臺的內(nèi)存必須滿足將預(yù)測的并行程序的需求;第二個(gè)是目標(biāo)系統(tǒng)的一個(gè)子節(jié)點(diǎn)。這個(gè)節(jié)點(diǎn)用于收集有代表性進(jìn)程的計(jì)算向量,下面會(huì)具體介紹獲取方法。如果目標(biāo)平臺的節(jié)點(diǎn)系統(tǒng)尚處于開發(fā)階段,一個(gè)目標(biāo)平臺節(jié)點(diǎn)的硬件模擬器是必須的。預(yù)測系統(tǒng)需要的軟件平臺包括一個(gè)公開的網(wǎng)絡(luò)模擬器SIM-MPI和一個(gè)通信記錄收集軟件FACT。結(jié)合如下。如圖l所示Sl:收集并行程序的通信序列和計(jì)算向量。在主平臺上運(yùn)行并行程序,使用插裝的方法,對并行程序中每個(gè)通信函數(shù)調(diào)用進(jìn)行插裝,按照通信函數(shù)調(diào)用的時(shí)間順序記錄每次的通信類型,假設(shè)并行程序有N個(gè)進(jìn)程,得到N個(gè)進(jìn)程的通信序列,存儲(chǔ)在本地日志文件中;記錄程序每個(gè)進(jìn)程通信調(diào)用之間的計(jì)算時(shí)間開銷,按照時(shí)間先后順序存取,得到N個(gè)進(jìn)程的計(jì)算向量,存儲(chǔ)在本地日志文件中。并行程序每個(gè)進(jìn)程的通信序列是按照時(shí)間順序記錄的每個(gè)進(jìn)程產(chǎn)生的通信調(diào)用類型。通信序列可以通過一個(gè)函數(shù)插裝庫獲取,在每次通信函數(shù)調(diào)用處記錄相應(yīng)的類型。通信序列的收集在主平臺上完成。<formula>formulaseeoriginaldocumentpage10</formula>對于上面的代碼段,進(jìn)程1和進(jìn)程2的通信序列如下所示,其中方括號表示通信搡作循環(huán)出現(xiàn)。C(P0)={Init,Barrier,[Send,Recv],Fina}C(Pl)={Init,Barrier,[Recv,Send],Fina}順序計(jì)算向量順序向量是一個(gè)時(shí)間向量,它用來記錄并行程序中每個(gè)進(jìn)程的順序計(jì)算性能。向量的每個(gè)元素表示對應(yīng)計(jì)算單元的執(zhí)行時(shí)間。對于上面代碼段,進(jìn)程1和進(jìn)程2的順序計(jì)算向量可以表示為CO={c0,c2(0),c3(0),c2(1),c3(1),…,c3(N-l)}CI={c0,cl(O),c2(0),cl(l),c2(1),…,c2(N-l)}S2:對進(jìn)程進(jìn)行計(jì)算相似性分析,并選取有代表性的進(jìn)程。并行程序中各個(gè)進(jìn)程的計(jì)算相似性主要通過以下公式計(jì)算ifC(x》承其中,x和y表示兩個(gè)進(jìn)程的計(jì)算向量,Xi和yi表示計(jì)算向量的每個(gè)元素,m表示向量的維數(shù),C(x)和C(y)表示兩個(gè)進(jìn)程的通信序列。上述公式的含義是如果兩個(gè)進(jìn)程的通信序列相同,那么則按照相應(yīng)公式計(jì)算它們之間的距離,否則規(guī)定它們之間的距離為正無窮。圖2示出了S2的實(shí)際步驟如下S201:分析步驟S101獲得的程序通信序列,把通信序列相同的進(jìn)程放入一組,假設(shè)得到T個(gè)進(jìn)程組(T<=N)。對步驟S201得到的T個(gè)進(jìn)程組,分別按照如下步驟對每個(gè)進(jìn)程組進(jìn)行聚類S202:假設(shè)進(jìn)程組中有K個(gè)進(jìn)程,指定每個(gè)進(jìn)程作為一個(gè)單獨(dú)的類;S203:按照如下公式計(jì)算任意兩個(gè)進(jìn)程間的距離(Dist),得到一個(gè)K維的距離矩陣M,其中,x和y表示步驟S102獲得的兩個(gè)進(jìn)程的計(jì)算向量,Xi和yi表示計(jì)算向量的每個(gè)元素,m表示向量的維數(shù);S204:在步驟S203中得到的距離矩陣M中選取具有最小值的兩個(gè)進(jìn)程p和q,把p和q進(jìn)程合并成一個(gè)新的類V;S205:按照步驟S203中的公式重新計(jì)算類V與其他進(jìn)程的距離,然后得到新的距離矩陣M;S206:重復(fù)步驟S204和步驟S205,直到合并到剩下一個(gè)進(jìn)程類;S207:對步驟S206得到的進(jìn)程組劃分,得到X個(gè)進(jìn)程組。從每個(gè)進(jìn)程組中選取距離進(jìn)程組的計(jì)算向量空間的質(zhì)心最近的進(jìn)程作為有代表性進(jìn)程。該步驟得到X個(gè)(X<=N)有代表性的進(jìn)程。其中,在步驟S207之前還包括設(shè)定閾值,用于對S206得到的進(jìn)程組進(jìn)行劃分。S3:記錄S207中選出的有代表性進(jìn)程每次通信內(nèi)容。記錄運(yùn)行在主平臺上完成,主要目的是收集通信的消息內(nèi)容,建立程序的通信LOG庫。對于MPI(MessagePassinginterface)程序,所有不可重放的信息必須在記錄執(zhí)行過程中存在本地文件,其中包括從網(wǎng)絡(luò)接收到消息,通信函數(shù)的返回值,不確定消息的通信順序等。記錄執(zhí)行可以在程序調(diào)試的過程中完成,因?yàn)閷Σ煌腗PI程序,只需要做一次記錄執(zhí)行。因此,可以把記錄通信LOG存在一個(gè)消息數(shù)據(jù)庫中(MessageLOGDatabase),供以后性能預(yù)測重復(fù)使用。利用MPI的通用插裝接口(PMPI),在運(yùn)行時(shí)截獲所有的通信調(diào)用。它的好處是不需要用戶修改源程序。圖3顯示了構(gòu)建程序通信LOG庫的過程。對于接收操作,需要記錄接收的消息內(nèi)容,函數(shù)的返回值和MPI的狀態(tài)值。對于發(fā)送操作,只需要記錄函數(shù)的返回值。對于非阻塞的接收操作,因?yàn)樵趫?zhí)行非阻塞接收操作時(shí),消息還沒有真正的收到用戶緩沖區(qū),因此,我們維護(hù)一個(gè)表映射接收句柄和相應(yīng)的阻塞檢査函數(shù)(MPI—Wait或者M(jìn)PI—Waitall)。在執(zhí)行阻塞檢查調(diào)用的時(shí)候,再記錄消息內(nèi)容。S4:在目標(biāo)平臺的一個(gè)節(jié)點(diǎn)上重放步驟S207得到的有代表性進(jìn)程,得到這些進(jìn)程在目標(biāo)平臺上的順序計(jì)算向量。為了獲取并行程序中每個(gè)進(jìn)程的順序計(jì)算向量,需要在目標(biāo)平臺的一個(gè)節(jié)點(diǎn)上重放有代表性進(jìn)程。由于當(dāng)前多核集群服務(wù)器中,資源竟?fàn)帟?huì)嚴(yán)重影響程序的性能。為了精確的捕捉資源競爭對程序性能的影響,提出了并發(fā)重放技術(shù)(concurrentreplay),即在目標(biāo)節(jié)點(diǎn)重放程序的時(shí)候,不是每次只重放一個(gè)進(jìn)程,而是重放和目標(biāo)節(jié)點(diǎn)處理器核數(shù)相同的進(jìn)程,同時(shí)在記錄程序通信LOG的時(shí)候釆用了子組劃分的技術(shù)。這樣做的好處有兩點(diǎn)(1)并發(fā)重放多個(gè)進(jìn)程可以模擬真實(shí)程序在目標(biāo)節(jié)點(diǎn)上的執(zhí)行,各個(gè)進(jìn)程對資源的競爭可以真實(shí)的重放。(2)采用子組重放技術(shù)的好處,可以減少記錄通信LOG的開銷。對于子組重放,組內(nèi)通信LOG并不需要記錄,只有組間通信的LOG才需要記錄。圖4顯示了重放有代表性進(jìn)程的過程。為了獲取每個(gè)進(jìn)程順序計(jì)算單元的執(zhí)行時(shí)間,需要在重放過程中記錄每個(gè)通信函數(shù)入口時(shí)間戳和結(jié)束點(diǎn)的時(shí)間戳,通過相鄰的通信函數(shù)調(diào)用事件戳,我們就可以計(jì)算出相鄰的順序計(jì)算單元的執(zhí)行時(shí)間。S5:使用通信插裝工具FACT獲得并行程序的通信記錄。S6:將步驟S4得到的有代表性進(jìn)程的順序計(jì)算向量和步驟S5得到的通信記錄,輸入一個(gè)網(wǎng)絡(luò)模擬器SIM-MPI,模擬l^輸出并行程序的預(yù)測時(shí)間。對以上具體實(shí)施方式,釆用NPB測試程序中BT,CG,EP,LU,MG,SP和ASCISweep3D七個(gè)程序,分別在四個(gè)集群服務(wù)器上進(jìn)行實(shí)驗(yàn),驗(yàn)證了本發(fā)明的性能預(yù)測方法的精確性。四個(gè)集群服務(wù)器的配置信息如下探索平臺每個(gè)節(jié)點(diǎn)包括2個(gè)IntelE5345處理器,8GB內(nèi)存,共16個(gè)節(jié)點(diǎn),安裝Linux操作系統(tǒng),節(jié)點(diǎn)通過Infiniband網(wǎng)絡(luò)鏈接;曙光平臺每個(gè)節(jié)點(diǎn)包括2個(gè)ADM2350處理器,16GB內(nèi)存,共32節(jié)點(diǎn),安裝Linux操作系統(tǒng),節(jié)點(diǎn)通過Infiniband網(wǎng)絡(luò)鏈接;深騰-F平臺每個(gè)節(jié)點(diǎn)包括4個(gè)IntelX7350處理器,128GB內(nèi)存,共16個(gè)節(jié)點(diǎn),安裝Linux系統(tǒng),節(jié)點(diǎn)通過Infiniband網(wǎng)絡(luò)鏈接;深騰-B平臺每個(gè)節(jié)點(diǎn)包括2個(gè)IntelE5450處理器,32GB內(nèi)存,共128節(jié)點(diǎn),安裝Linux系統(tǒng),節(jié)點(diǎn)通過Infiniband網(wǎng)絡(luò)鏈接。首先對每個(gè)程序進(jìn)行計(jì)算相似性分析,得到的有代表性進(jìn)程個(gè)數(shù),如表1所示。從表中我們可以發(fā)現(xiàn)如下規(guī)律(l)對BT,CG,EP和SP四個(gè)程序,所有的進(jìn)程具有相同的計(jì)算行為。(2)對于LU和Sweep3D,代表性進(jìn)程的個(gè)數(shù)隨著進(jìn)程數(shù)的變化保持常量。(3)對于MG程序,代表性進(jìn)程的個(gè)數(shù)隨著進(jìn)程數(shù)增加而增加,但是,增長的趨勢遠(yuǎn)小于進(jìn)程數(shù)增加。因此,我們選取有代表性進(jìn)程記錄通信LOG,可以顯著的減少總記錄通信LOG的開銷。同時(shí),也可以減少重放過程的執(zhí)行時(shí)間。表l測試程序在不同進(jìn)程下代表性進(jìn)程的個(gè)數(shù)<table>tableseeoriginaldocumentpage14</column></row><table>所有的通信LOG是在探索平臺上收集的。曙光、深騰-F和深騰-B三個(gè)平臺用來驗(yàn)證我們預(yù)測的結(jié)果。下表顯示了七個(gè)測試程序在曙光平臺上的預(yù)測誤差(S3-W表示Sweep3D弱規(guī)模,S3-S表示Swee3D強(qiáng)規(guī)模)。從表2的數(shù)據(jù)可以發(fā)現(xiàn),我們方法預(yù)測精度很高。其中,對于所有的測試程序,最小誤差是0.17%,最大誤差是14.28%。表2測試程序在曙光平臺上的預(yù)測誤差(%)<table>tableseeoriginaldocumentpage14</column></row><table>圖5顯示了Sweep3D在深騰-F平臺上的預(yù)測結(jié)果,圖6顯示了Sweep3D在深騰-B平臺上的預(yù)測結(jié)果。其中,白色框表示程序的真實(shí)執(zhí)行時(shí)間,帶斜線框表示預(yù)測時(shí)間。在深騰-F平臺上,平均預(yù)測誤差是1.30%,在256進(jìn)程下我們方法的預(yù)測誤差是1.91%。在深騰-B平臺上,平均預(yù)測誤差是2.34%,在1024進(jìn)程下我們方法的預(yù)測誤差是4.53%。圖7顯示了測試程序在曙光平臺上重放執(zhí)行時(shí)間和正常執(zhí)行時(shí)間對比。其中,白色框表示程序的正常執(zhí)行時(shí)間,帶斜線框表示程序的重放執(zhí)行時(shí)間。從圖中我們可以發(fā)現(xiàn),重放執(zhí)行并沒有引入很大的開銷。由于重放過程中,每個(gè)進(jìn)程不需要等待其他進(jìn)程的消息到達(dá),只需要從本地的通信LOG讀取所需的數(shù)據(jù)。因此,程序的重放執(zhí)行時(shí)間一般比正常執(zhí)行時(shí)間要小。以上實(shí)施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)
技術(shù)領(lǐng)域
的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。權(quán)利要求1、一種大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)方法,其特征在于,包括步驟S1在主平臺上收集并行程序中通信序列和計(jì)算向量;S2分析并行程序各進(jìn)程的計(jì)算相似性,且從中選出有代表性的進(jìn)程;S3在主平臺上執(zhí)行并行程序,記錄步驟S2中選取的有代表性進(jìn)程的每次通信內(nèi)容;S4在目標(biāo)平臺的一個(gè)節(jié)點(diǎn)上重放步驟S2得到的有代表性進(jìn)程,得到這些進(jìn)程在目標(biāo)平臺上的順序計(jì)算向量;S5使用通信插裝工具獲得并行程序的通信記錄;S6將步驟S4得到的有代表性進(jìn)程的順序計(jì)算向量和步驟S5得到的通信記錄,輸入網(wǎng)絡(luò)模擬器,該模擬器輸出并行程序的預(yù)測時(shí)間。2、如權(quán)利要求l所述的方法,其特征在于,所述步驟S1包括S101:對程序中每個(gè)通信函數(shù)調(diào)用進(jìn)行插裝,按照通信函數(shù)調(diào)用的時(shí)間順序記錄每次的通信類型,分別得到N個(gè)進(jìn)程的通信序列,并存儲(chǔ)在本地日志文件中;S102:記錄程序每個(gè)進(jìn)程通信調(diào)用之間的計(jì)算時(shí)間開銷,按照時(shí)間先后順序存取,分別得到N個(gè)進(jìn)程的計(jì)算向量,并存儲(chǔ)在本地曰志文件中。3、如權(quán)利要求2所述的方法,其特征在于,所述步驟S2包括S20L分析步驟S101獲得的程序通信序列,把通信序列相同的進(jìn)程放入一組,得到T個(gè)進(jìn)程組,其中丁<=化S202:指定包含K個(gè)進(jìn)程的進(jìn)程組中的每個(gè)進(jìn)程為一個(gè)單獨(dú)的類,其中K〈-N;S203:按照如下公式計(jì)算任意兩個(gè)進(jìn)程間的距離,得到一個(gè)K維的距離矩陣M,其中,x和y表示步驟S102獲得的兩個(gè)進(jìn)程的計(jì)算向量,Xi和yi表示計(jì)算向量的每個(gè)元素,m表示向量的維數(shù);.S204:在步驟S203中得到的距離矩陣M中選取距離具有最小值的兩個(gè)進(jìn)程p和q,把p和q進(jìn)程合并成一個(gè)新的類V;S205:按照以上公式重新計(jì)算類V與其它進(jìn)程的距離,然后得到新的距離矩陣M;S206:重復(fù)步驟S204和步驟S205,直到合并到剩下一個(gè)進(jìn)程類;S207:對步驟S206得到的進(jìn)程組劃分,得到X個(gè)進(jìn)程組,從每個(gè)進(jìn)程組中選取距離進(jìn)程組的計(jì)算向量空間質(zhì)心最近的進(jìn)程作為有代表性進(jìn)程,該步驟得到X個(gè)有代表性的進(jìn)程,其中X〈:N。4、如權(quán)利要求3所述的方法,其特征在于,所述步驟S207之前還包括設(shè)定用于對S206得到的進(jìn)程組劃分的閾值。5、如權(quán)利要求1-3任一所述的方法,其特征在于,所述通信序列是按照時(shí)間順序記錄的每個(gè)進(jìn)程產(chǎn)生的通信調(diào)用類型。6、如權(quán)利要求1-3任一所述的方法,其特征在于,所述計(jì)算向量是用來記錄并行程序中每個(gè)進(jìn)程的順序計(jì)算性能的時(shí)間向量。7、一種基于權(quán)利要求1所述方法的大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)系統(tǒng),其特征在于,包括用于在主平臺上收集并行程序中通信序列和計(jì)算向量的模塊;用于分析并行程序各進(jìn)程的計(jì)算相似性,且從中選出有代表性的進(jìn)程的模塊;用于在主平臺上執(zhí)行并行程序,記錄步驟S2中選取的有代表性進(jìn)程的每次通信內(nèi)容的模塊;用于在目標(biāo)平臺的一個(gè)節(jié)點(diǎn)上重放步驟S2得到的有代表性進(jìn)程,得到這些進(jìn)程在目標(biāo)平臺上的順序計(jì)算向量的模塊;用于使用通信插裝工具獲得并行程序的通信記錄的模塊;用于將步驟S4得到的有代表性進(jìn)程的順序計(jì)算向量和步驟S5得到的通信記錄,輸入網(wǎng)絡(luò)模擬器,該模擬器輸出并行程序的預(yù)測時(shí)間的模塊。全文摘要本發(fā)明公開了一種基于有代表性重放的大規(guī)模并行程序性能預(yù)測實(shí)現(xiàn)方法,該方法屬于并行程序性能預(yù)測的
技術(shù)領(lǐng)域
,包括步驟收集并行程序的通信序列和計(jì)算向量,分析各個(gè)進(jìn)程計(jì)算的相似性并選取有代表性的進(jìn)程,記錄有代表性進(jìn)程的通信內(nèi)容,使用目標(biāo)平臺的一個(gè)計(jì)算節(jié)點(diǎn)重放有代表性進(jìn)程,獲取有代表性進(jìn)程的順序計(jì)算時(shí)間,用這些計(jì)算時(shí)間代替其它進(jìn)程的計(jì)算時(shí)間;獲取并行程序的通信記錄;使用網(wǎng)絡(luò)模擬器自動(dòng)預(yù)測最終的程序性能。通過本發(fā)明能夠使用很少的硬件資源,得到精確的并行程序預(yù)測性能。文檔編號G06F11/36GK101650687SQ20091009264公開日2010年2月17日申請日期2009年9月14日優(yōu)先權(quán)日2009年9月14日發(fā)明者翟季冬,鄭緯民,陳文光申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
胶南市| 永城市| 阳江市| 临高县| 陆良县| 理塘县| 龙泉市| 黑龙江省| 龙泉市| 昭平县| 湟源县| 珲春市| 丹阳市| 秭归县| 永康市| 莒南县| 沁阳市| 高安市| 惠州市| 新蔡县| 汤阴县| 泰安市| 西峡县| 甘南县| 黎城县| 余庆县| 南岸区| 黑河市| 竹山县| 华容县| 北辰区| 松阳县| 抚顺市| 诏安县| 姚安县| 蓝田县| 会宁县| 连城县| 年辖:市辖区| 盖州市| 长春市|