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

一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法

文檔序號:6352645閱讀:226來源:國知局
專利名稱:一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及并行程序性能分析技術(shù)領(lǐng)域。
背景技術(shù)
目前,超級計(jì)算機(jī)都是大規(guī)模的并行系統(tǒng),并且隨著計(jì)算機(jī)體系結(jié)構(gòu)和硬件的發(fā) 展,超級計(jì)算機(jī)的峰值性能越來越高,但并行程序的性能卻沒有得到相應(yīng)的提高。由于并行 程序規(guī)模大,復(fù)雜度高,程序員很難發(fā)現(xiàn)程序執(zhí)行中的性能問題,導(dǎo)致了并行系統(tǒng)的利用率不高。因此,通過自動化的性能分析工具對并行程序進(jìn)行性能分析,可以為用戶發(fā)現(xiàn)性 能問題,定位性能瓶頸并提出性能改進(jìn)措施提供合理建議。同時(shí),通過提供性能數(shù)據(jù)的多維 視圖,用戶可以對感興趣的數(shù)據(jù)進(jìn)行手動分析。性能分析一般分為靜態(tài)性能分析和動態(tài)性能分析。靜態(tài)性能分析是在源程序一級進(jìn)行的,它采用模擬或分析方法獲取源程序中的有 關(guān)性能數(shù)據(jù)。由于靜態(tài)性能分析能夠針對不同的程序和運(yùn)行環(huán)境給出性能預(yù)測,因此也稱 為性能預(yù)測。因?yàn)殪o態(tài)性能分析的方法是用模擬分析的方法實(shí)現(xiàn)的,而不是真正地運(yùn)行程 序,所以只能對占用時(shí)間較多的重要的程序結(jié)構(gòu)(如循環(huán)和子程序調(diào)用等)進(jìn)行分析。采 用靜態(tài)分析法不能確定程序的運(yùn)行軌跡,只是一種試探性方法,準(zhǔn)確性難以保證。動態(tài)性能分析采用測量的方法收集程序運(yùn)行中的各種性能數(shù)據(jù),然后進(jìn)行統(tǒng)計(jì)分 析,因此又稱為性能測試。動態(tài)性能分析分為在線分析與離線分析。前者的性能數(shù)據(jù)獲取 與顯示是同時(shí)進(jìn)行的,性能信息即時(shí)顯示給用戶。后者是將性能信息事后報(bào)告給用戶。其 中,所獲取的性能數(shù)據(jù)可由支持硬件提供,或者完全以軟件的方式得到。目前并行程序性能分析工具大多采用動態(tài)分析方法,通過對程序運(yùn)行數(shù)據(jù)的可視 化顯示,采用人工方式查看程序運(yùn)行的性能特征,難以自動定位程序的性能瓶頸。

發(fā)明內(nèi)容
(一)發(fā)明目的本發(fā)明的目的是提供一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法,在建立函數(shù)分 組的基礎(chǔ)上,利用函數(shù)分組與性能問題之間的映射,準(zhǔn)確定位性能問題,使結(jié)果具有可解釋 性。
發(fā)明內(nèi)容
一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法,包括步驟Sl 對并行程序中的函數(shù)進(jìn)行分組;S2 建立并行程序性能問題的因果關(guān)系圖;S3 對大規(guī)模并行程序輪廓日志和軌跡日志中的函數(shù)性能數(shù)據(jù)集進(jìn)行聚類計(jì)算;S4 根據(jù)步驟S3的聚類計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函數(shù) 分組到性能問題的映射,進(jìn)行性能問題的定位。
其中,所述步驟Sl包括SlOl 根據(jù)并行程序中不同函數(shù)的特征,定義函數(shù)分組類型,包括通信分組、計(jì)算 分組和輸入輸出分組,通信分組包括點(diǎn)對點(diǎn)通信分組和全局通信分組,輸入輸出分組包括 并行輸入輸出分組和串行輸入輸出分組,用戶自定義函數(shù)加入到計(jì)算分組中,可以對已有 分組做進(jìn)一步細(xì)分,并自定義新的分組;S102 根據(jù)步驟SlOl建立的函數(shù)分組類型,結(jié)合函數(shù)的具體功能為部分函數(shù)添加 函數(shù)分組標(biāo)簽;S103 以樹形結(jié)構(gòu)表示函數(shù)分組層次,一個根節(jié)點(diǎn)作為所有函數(shù)分組的父節(jié)點(diǎn),除 根節(jié)點(diǎn)之外每個節(jié)點(diǎn)表示一個函數(shù)分組,定義函數(shù)分組集合G = {gi|0< i < = n},其中& 表示編號為i的函數(shù)分組,共有η個函數(shù)分組,一個葉節(jié)點(diǎn)表示函數(shù)分組集合中的一個函數(shù) 分組gi,& = {fj|0< j < nf},其中。表示編號為j的函數(shù),該分組中函數(shù)的個數(shù)為nf,對 于每個函數(shù)。,它只能屬于一個葉節(jié)點(diǎn)。其中,所述步驟S2包括S201 定義性能問題集合,P = {Pi|0 < i < np},其中Pi表示編號為i的性能問 題,np表示性能問題的數(shù)量;S202 結(jié)合步驟Sl得到的函數(shù)分組類型,使用二分圖構(gòu)建函數(shù)分組與性能問題之 間的因果關(guān)系圖,在函數(shù)分組集合與性能問題集合之間建立映射關(guān)系,即對于每個& e G, 至少有一個Pi e P與其對應(yīng),同時(shí)對于每個Pi e P,至少有一個& e G與其對應(yīng),表示每個 函數(shù)分組對應(yīng)了若干種可能的性能問題,同時(shí)每個性能問題由若干種可能的原因引起的;S203 在相同的軟硬件運(yùn)算環(huán)境下,以若干已知性能問題的并行程序性能數(shù)據(jù)作 為訓(xùn)練集,統(tǒng)計(jì)性能問題的比例以及對于性能問題Pi, Pi由函數(shù)分組^引起的比例,以此為 先驗(yàn)概率,初始化分類器。其中,所述步驟S3包括S301 建立函數(shù)性能數(shù)據(jù)向量,一個向量表示一個函數(shù),向量中的每個分量表示該 函數(shù)在各個進(jìn)(線)程中的時(shí)間開銷,對于有η個函數(shù)和m個進(jìn)程的并行程序,函數(shù)編號的 范圍是[l,n],進(jìn)程編號的范圍是[1,!!!], 表示編號為i的函數(shù),& = {Pn,Pi2,…Pij,… PiJ,其中Pu代表編號為i的函數(shù)在編號為j的進(jìn)程中的時(shí)間開銷;S302 對步驟S301得到的函數(shù)向量進(jìn)行聚類計(jì)算,得到不同的簇,同一個簇中的 函數(shù)具有內(nèi)在相似性,不同簇內(nèi)的函數(shù)差別大?!N基于上述方法的大規(guī)模并行程序性能問題定位實(shí)現(xiàn)系統(tǒng),包括用于對并行程序中的函數(shù)進(jìn)行分組的模塊;用于建立并行程序性能問題的因果關(guān)系圖的模塊;用于對大規(guī)模并行程序輪廓日志和軌跡日志中的函數(shù)性能數(shù)據(jù)集進(jìn)行聚類計(jì)算 的模塊;用于根據(jù)步驟S3的聚類計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函 數(shù)分組到性能問題的映射,進(jìn)行性能問題的定位的模塊。(三)有益效果使用本方法定位并行程序的性能問題具有如下關(guān)鍵特征和優(yōu)點(diǎn)1.通過對函數(shù)類型進(jìn)行分組,降低了大規(guī)模并行程序性能分析的復(fù)雜性;
2.建立函數(shù)類型分組到性能問題的映射,可以準(zhǔn)確獲知開銷大的函數(shù)所引起的性 能問題;3.能夠自動定位并行程序的性能問題,并使結(jié)果具有可解釋性。


圖1是本發(fā)明的大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法流程圖;圖2是并行程序函數(shù)分組圖;圖3是并行程序性能問題的因果關(guān)系具體實(shí)施例方式本方法是一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法,首先對并行程序中的函數(shù) 進(jìn)行分組,然后建立并行程序性能問題的因果關(guān)系圖,再對程序日志中記錄的函數(shù)性能數(shù) 據(jù)集進(jìn)行聚類計(jì)算,根據(jù)計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函數(shù)分組到 性能問題的映射實(shí)現(xiàn)性能問題的定位。本方法的并行程序性能問題定位實(shí)現(xiàn)系統(tǒng),主要包 括對函數(shù)進(jìn)行分組模塊,建立因果關(guān)系圖模塊,函數(shù)性能數(shù)據(jù)聚類計(jì)算模塊,性能問題定位 模塊。下面以一個典型的矩陣乘MPI并行程序?yàn)槔?,對本方法進(jìn)行具體說明。其中,使用開 源工具TAU完成性能數(shù)據(jù)的獲取,由Linux Bash Shell腳本完成數(shù)據(jù)格式的處理。結(jié)合圖1,對本方法的流程說明如下Sl 對并行程序中的函數(shù)進(jìn)行分組。該步驟主要包括SlOl 根據(jù)并行程序中不同函數(shù)的特征,定義函數(shù)分組類型,包括通信分組、計(jì)算 分組和輸入輸出分組,通信分組包括點(diǎn)對點(diǎn)通信分組和全局通信分組,輸入輸出分組包括 并行輸入輸出分組和串行輸入輸出分組,用戶自定義函數(shù)加入到計(jì)算分組中;S102 根據(jù)步驟SlOl建立的函數(shù)分組類型,結(jié)合函數(shù)的具體功能為部分函數(shù)添加 函數(shù)分組標(biāo)簽,例如MPI_Recv和MPIJend屬于點(diǎn)對點(diǎn)阻塞通信方式的函數(shù),因此為它們 添加點(diǎn)對點(diǎn)通信分組標(biāo)簽,MPI_Reduce的功能是執(zhí)行規(guī)約操作,因此添加全局通信分組標(biāo) 簽;S103 如圖2所示,以樹形結(jié)構(gòu)表示函數(shù)分組層次,一個根節(jié)點(diǎn)作為所有函數(shù)分組 的父節(jié)點(diǎn),除根節(jié)點(diǎn)之外每個節(jié)點(diǎn)表示一個函數(shù)分組。定義函數(shù)分組集合G= {gi|0< i <=n},其中&表示編號為i的函數(shù)分組,共有η個函數(shù)分組。一個葉節(jié)點(diǎn)表示函數(shù)分組 集合中的一個函數(shù)分組gi,gi = {f.|0 < j < nf},其中。表示編號為j的函數(shù),該分組中 函數(shù)的個數(shù)為nf。對于每個函數(shù)&它只能屬于一個葉節(jié)點(diǎn)。S2:建立并行程序性能問題的因果關(guān)系圖。該步驟主要包括S201 定義性能問題集合,P = {Pi|0 < i < np},其中Pi表示編號為i的性能問 題,np表示性能問題的數(shù)量,例如性能問題包括通信次數(shù)多,冗余計(jì)算多等;S202 結(jié)合步驟Sl得到的函數(shù)分組類型,使用二分圖構(gòu)建函數(shù)分組與性能問題之 間的因果關(guān)系圖,在函數(shù)分組集合與性能問題集合之間建立映射關(guān)系,即對于每個& e G, 至少有一個Pi e P與其對應(yīng),同時(shí)對于每個Pi e P,至少有一個& e G與其對應(yīng),如圖3所 示,Gl到G5分別表示全局廣播,阻塞點(diǎn)對點(diǎn)通信,全局同步,非阻塞點(diǎn)對點(diǎn)通信,計(jì)算五個 函數(shù)分組,Pl到P4分別表示計(jì)算與通信位置不合理,并行任務(wù)粒度過細(xì),MPI_ffait調(diào)用不合理和調(diào)用次數(shù)過多四個性能問題,函數(shù)分組與性能問題之間的有向線段表示該函數(shù)可能 引起該性能問題;S203 在相同的軟硬件運(yùn)算環(huán)境下,以若干已知性能問題的并行程序性能數(shù)據(jù)作 為訓(xùn)練集,統(tǒng)計(jì)性能問題的比例以及對于性能問題Pi, Pi由函數(shù)分組^引起的比例,以此為 先驗(yàn)概率,初始化分類器,如圖3所示,Pl發(fā)生的概率是0.3,Pl由Gl分組引起的概率是 0. 08 ;S3 對大規(guī)模并行程序輪廓日志和軌跡日志中的函數(shù)性能數(shù)據(jù)集進(jìn)行聚類計(jì)算。 該步驟主要包括S301 建立函數(shù)性能數(shù)據(jù)向量,一個向量表示一個函數(shù),向量中的每個分量表示該 函數(shù)在各個進(jìn)(線)程中的時(shí)間開銷,對于有η個函數(shù)和m個進(jìn)程的并行程序,函數(shù)編號的 范圍是[l,n],進(jìn)程編號的范圍是[1,!!!], 表示編號為i的函數(shù),& = {Pn,Pi2,…Pij,… PiJ,其中Pu代表編號為i的函數(shù)在編號為j的進(jìn)程中的時(shí)間開銷;S302 對步驟S301得到的函數(shù)向量進(jìn)行聚類計(jì)算,得到不同的簇,同一個簇中的 函數(shù)具有內(nèi)在相似性,不同簇內(nèi)的函數(shù)差別大。S4 根據(jù)步驟S3的聚類計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函數(shù) 分組到性能問題的映射,進(jìn)行性能問題的定位,本實(shí)驗(yàn)中開銷大的函數(shù)分組是阻塞點(diǎn)對點(diǎn) 通信分組,通過分類器進(jìn)行性能問題的映射,可知該并行程序大量使用阻塞通信造成了調(diào) 用次數(shù)多,等待時(shí)間長的性能問題。
權(quán)利要求
1.一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法,其特征在于,包括步驟51對并行程序中的函數(shù)進(jìn)行分組;52建立并行程序性能問題的因果關(guān)系圖;53對大規(guī)模并行程序輪廓日志和軌跡日志中的函數(shù)性能數(shù)據(jù)集進(jìn)行聚類計(jì)算;54根據(jù)步驟S3的聚類計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函數(shù)分組 到性能問題的映射,進(jìn)行性能問題的定位。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟Sl包括5101根據(jù)并行程序中不同函數(shù)的特征,定義函數(shù)分組類型,包括通信分組、計(jì)算分組 和輸入輸出分組,通信分組包括點(diǎn)對點(diǎn)通信分組和全局通信分組,輸入輸出分組包括并行 輸入輸出分組和串行輸入輸出分組,用戶自定義函數(shù)加入到計(jì)算分組中,可以對已有分組 做進(jìn)一步細(xì)分,并自定義新的分組;5102根據(jù)步驟SlOl建立的函數(shù)分組類型,結(jié)合函數(shù)的具體功能為部分函數(shù)添加函數(shù) 分組標(biāo)簽;5103以樹形結(jié)構(gòu)表示函數(shù)分組層次,一個根節(jié)點(diǎn)作為所有函數(shù)分組的父節(jié)點(diǎn),除根節(jié) 點(diǎn)之外每個節(jié)點(diǎn)表示一個函數(shù)分組,定義函數(shù)分組集合G = {gi I 0 < i < = η},其中&表 示編號為i的函數(shù)分組,共有η個函數(shù)分組,一個葉節(jié)點(diǎn)表示函數(shù)分組集合中的一個函數(shù)分 組gi,& = {fj|0< j < nf},其中。表示編號為j的函數(shù),該分組中函數(shù)的個數(shù)為nf,對于 每個函數(shù)。,它只能屬于一個葉節(jié)點(diǎn)。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟S2包括5201定義性能問題集合,P= {Pi|0<i< np},其中Pi表示編號為i的性能問題,np 表示性能問題的數(shù)量;5202結(jié)合步驟Sl得到的函數(shù)分組類型,使用二分圖構(gòu)建函數(shù)分組與性能問題之間的 因果關(guān)系圖,在函數(shù)分組集合與性能問題集合之間建立映射關(guān)系,即對于每個gi e G,至少 有一個Pi e ρ與其對應(yīng),同時(shí)對于每個Pi e P,至少有一個& e G與其對應(yīng),表示每個函數(shù) 分組對應(yīng)了若干種可能的性能問題,同時(shí)每個性能問題由若干種可能的原因引起的;5203在相同的軟硬件運(yùn)算環(huán)境下,以若干已知性能問題的并行程序性能數(shù)據(jù)作為訓(xùn) 練集,統(tǒng)計(jì)性能問題的比例以及對于性能問題Pi, Pi由函數(shù)分組^引起的比例,以此為先驗(yàn) 概率,初始化分類器。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟S3包括5301建立函數(shù)性能數(shù)據(jù)向量,一個向量表示一個函數(shù),向量中的每個分量表示該函數(shù) 在各個進(jìn)(線)程中的時(shí)間開銷,對于有η個函數(shù)和m個進(jìn)程的并行程序,函數(shù)編號的范圍 是[l,n],進(jìn)程編號的范圍是[1,111], 表示編號為i的函數(shù),& = {Pn,Pi2,…Pij,-PJ, 其中Pu代表編號為i的函數(shù)在編號為j的進(jìn)程中的時(shí)間開銷;5302對步驟S301得到的函數(shù)向量進(jìn)行聚類計(jì)算,得到不同的簇,同一個簇中的函數(shù) 具有內(nèi)在相似性,不同簇內(nèi)的函數(shù)差別大。
5.一種基于權(quán)利要求1所述方法的大規(guī)模并行程序性能問題定位實(shí)現(xiàn)系統(tǒng),其特征在 于,包括用于對并行程序中的函數(shù)進(jìn)行分組的模塊;用于建立并行程序性能問題的因果關(guān)系圖的模塊;用于對大規(guī)模并行程序輪廓日志和軌跡日志中的函數(shù)性能數(shù)據(jù)集進(jìn)行聚類計(jì)算的模塊;用于根據(jù)步驟S3的聚類計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函數(shù)分 組到性能問題的映射,進(jìn)行性能問題的定位的模塊。
全文摘要
本發(fā)明公開了一種大規(guī)模并行程序性能問題定位實(shí)現(xiàn)方法,該方法屬于并行程序性能分析的技術(shù)領(lǐng)域,包括步驟對并行程序中的函數(shù)進(jìn)行分組,建立并行程序性能問題的因果關(guān)系圖,對并行程序輪廓日志和軌跡日志中的函數(shù)性能數(shù)據(jù)集進(jìn)行聚類計(jì)算,根據(jù)聚類計(jì)算結(jié)果,選擇開銷大的函數(shù)分組,輸入分類器,通過函數(shù)分組到性能問題的映射,進(jìn)行性能問題的定位。通過本發(fā)明能夠準(zhǔn)確定位并行程序的性能問題,并使結(jié)果具有可解釋性。
文檔編號G06F11/36GK102063373SQ20111000167
公開日2011年5月18日 申請日期2011年1月6日 優(yōu)先權(quán)日2011年1月6日
發(fā)明者朱鵬, 李云春, 李巍, 李敏 申請人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1