本技術(shù)涉及高性能計(jì)算,尤其涉及一種預(yù)測應(yīng)用程序性能的方法及計(jì)算設(shè)備。
背景技術(shù):
1、在高性能計(jì)算領(lǐng)域,應(yīng)用性能預(yù)測是一項(xiàng)關(guān)鍵的研究課題,其目的在于通過對(duì)集群資源的使用模式進(jìn)行分析和建立模型,來預(yù)測在未來特定時(shí)間段內(nèi),應(yīng)用程序在集群系統(tǒng)上的性能表現(xiàn)。這種預(yù)測對(duì)于用戶有效利用集群資源、優(yōu)化應(yīng)用程序性能至關(guān)重要,同時(shí)也為集群中心的管理團(tuán)隊(duì)提供了重要的決策支持,有助于提升集群中心的運(yùn)營效率和經(jīng)濟(jì)收益。
2、目前,在集群系統(tǒng)上預(yù)測應(yīng)用程序(即,hpc(high?performance?computing)高性能計(jì)算應(yīng)用)的性能的研究主要聚焦于以下幾種方法:基于歷史數(shù)據(jù)的性能預(yù)測、基于機(jī)器學(xué)習(xí)的性能預(yù)測以及基于模型的性能預(yù)測。這些方法各有優(yōu)勢,但也存在一定的局限性。例如,基于歷史數(shù)據(jù)的方法在預(yù)測新上線或使用時(shí)間較短的集群系統(tǒng)時(shí),由于缺乏足夠的歷史數(shù)據(jù),其預(yù)測準(zhǔn)確性可能會(huì)受到影響;基于機(jī)器學(xué)習(xí)的方法則依賴于數(shù)據(jù)的準(zhǔn)確性和數(shù)量;而基于模型的方法要求對(duì)集群系統(tǒng)的內(nèi)部結(jié)構(gòu)和運(yùn)行機(jī)制有深入的理解,這往往需要專業(yè)知識(shí)和技術(shù)。
3、盡管現(xiàn)有技術(shù)在不同程度上能夠提供性能預(yù)測,但在實(shí)際應(yīng)用中仍面臨著數(shù)據(jù)獲取難度、預(yù)測模型構(gòu)建復(fù)雜和預(yù)測結(jié)果準(zhǔn)確性不足等挑戰(zhàn)。因此,迫切需要一種新的性能預(yù)測方法,能夠解決現(xiàn)有技術(shù)中的問題,提升在集群系統(tǒng)上預(yù)測應(yīng)用程序性能的精確度,從而為集群領(lǐng)域的發(fā)展提供強(qiáng)有力的技術(shù)支撐。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種預(yù)測應(yīng)用程序性能的方法及計(jì)算設(shè)備,以力圖解決或者至少緩解上面存在的至少一個(gè)問題。
2、根據(jù)本技術(shù)的一個(gè)方面,提供了一種預(yù)測應(yīng)用程序性能的方法,所述應(yīng)用程序在集群系統(tǒng)上運(yùn)行,所述集群系統(tǒng)包含多個(gè)計(jì)算節(jié)點(diǎn),且各計(jì)算節(jié)點(diǎn)包含多個(gè)核心,所述方法適于在計(jì)算設(shè)備中執(zhí)行,所述方法包括:基于應(yīng)用程序在所述集群系統(tǒng)的各作業(yè)中運(yùn)行的運(yùn)行參數(shù),構(gòu)建所述應(yīng)用程序的性能特征數(shù)據(jù)集,其中所述性能特征數(shù)據(jù)集中包含多條性能特征數(shù)據(jù),且每條性能特征數(shù)據(jù)指示所述應(yīng)用程序在對(duì)應(yīng)作業(yè)中運(yùn)行的性能特征和運(yùn)行時(shí)長;基于所述應(yīng)用程序在所述集群系統(tǒng)的單個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的運(yùn)行參數(shù),從所述性能特征數(shù)據(jù)集中確定出多條相似特征數(shù)據(jù);按照計(jì)算節(jié)點(diǎn)的數(shù)量,對(duì)所述多條相似特征數(shù)據(jù)進(jìn)行分類,并基于各分類下相似特征數(shù)據(jù)的數(shù)量,利用應(yīng)用性能預(yù)測模型,生成多條模擬特征數(shù)據(jù),所述應(yīng)用性能預(yù)測模型適于根據(jù)輸入的多個(gè)性能特征,預(yù)測所述應(yīng)用程序的運(yùn)行時(shí)長;利用所述相似特征數(shù)據(jù)和所述模擬特征數(shù)據(jù),生成所述應(yīng)用程序的應(yīng)用數(shù)據(jù)集;基于所述應(yīng)用數(shù)據(jù)集,利用多項(xiàng)式回歸算法,擬合出計(jì)算節(jié)點(diǎn)數(shù)與運(yùn)行時(shí)長之間的關(guān)系;通過所擬合的關(guān)系,預(yù)測出所述應(yīng)用程序在所述集群系統(tǒng)中各計(jì)算節(jié)點(diǎn)的運(yùn)行時(shí)長。
3、可選地,在根據(jù)本技術(shù)的方法中,基于應(yīng)用程序在所述集群系統(tǒng)的各作業(yè)中運(yùn)行的運(yùn)行參數(shù),構(gòu)建所述應(yīng)用程序的性能特征數(shù)據(jù)集,包括:獲取所述應(yīng)用程序在所述集群系統(tǒng)的各作業(yè)中運(yùn)行時(shí)分別對(duì)應(yīng)的運(yùn)行參數(shù),其中各條所述運(yùn)行參數(shù)包括運(yùn)行時(shí)長和以下特征:計(jì)算節(jié)點(diǎn)數(shù)、核數(shù)、計(jì)算浮點(diǎn)數(shù)、節(jié)點(diǎn)平均浮點(diǎn)計(jì)算能力gflops/g、節(jié)點(diǎn)平均浮點(diǎn)運(yùn)算次數(shù)(gflops)占比、作業(yè)平均訪存帶寬membw/gbps、節(jié)點(diǎn)平均通信接收帶寬/mbps、節(jié)點(diǎn)平均通信發(fā)送帶寬/mbps;針對(duì)每條運(yùn)行參數(shù),基于部分所述特征,增加新的特征;針對(duì)每條運(yùn)行參數(shù)中的各特征,通過計(jì)算各特征與運(yùn)行時(shí)長的相關(guān)性,確定出第一數(shù)量個(gè)與運(yùn)行時(shí)長最相關(guān)的特征,作為性能特征,并將所述性能特征與所對(duì)應(yīng)的運(yùn)行時(shí)長相關(guān)聯(lián),作為所述應(yīng)用程序的性能特征數(shù)據(jù)。
4、可選地,在根據(jù)本技術(shù)的方法中,基于部分所述特征,增加新的特征,包括:基于所述節(jié)點(diǎn)平均浮點(diǎn)計(jì)算能力和所述運(yùn)行時(shí)長,確定節(jié)點(diǎn)總浮點(diǎn)計(jì)算量;基于所述作業(yè)平均訪存帶寬和所述運(yùn)行時(shí)長,確定節(jié)點(diǎn)總訪存帶寬量;將所述節(jié)點(diǎn)總浮點(diǎn)計(jì)算量和所述節(jié)點(diǎn)總訪存帶寬量,作為新的特征。
5、可選地,在根據(jù)本技術(shù)的方法中,性能特征包括:節(jié)點(diǎn)總浮點(diǎn)計(jì)算量、節(jié)點(diǎn)總訪存帶寬量、節(jié)點(diǎn)平均浮點(diǎn)計(jì)算能力和計(jì)算節(jié)點(diǎn)數(shù)。
6、可選地,在根據(jù)本技術(shù)的方法中,獲取所述應(yīng)用程序在所述集群系統(tǒng)的各作業(yè)中運(yùn)行時(shí)分別對(duì)應(yīng)的運(yùn)行參數(shù),還包括:對(duì)所獲取的各運(yùn)行參數(shù)進(jìn)行數(shù)據(jù)清洗,以去除所述運(yùn)行參數(shù)中的異常值。
7、可選地,在根據(jù)本技術(shù)的方法中,在構(gòu)建所述應(yīng)用程序的性能特征數(shù)據(jù)集之后,還包括:基于所述性能特征數(shù)據(jù)集,通過隨機(jī)森林算法,訓(xùn)練生成應(yīng)用性能預(yù)測模型。
8、可選地,在根據(jù)本技術(shù)的方法中,訓(xùn)練所述應(yīng)用性能預(yù)測模型包括:基于所述性能特征數(shù)據(jù)集,將所述應(yīng)用程序在對(duì)應(yīng)作業(yè)中運(yùn)行的性能特征作為訓(xùn)練數(shù)據(jù),并將應(yīng)用程序在對(duì)應(yīng)作業(yè)中運(yùn)行的運(yùn)行時(shí)長作為標(biāo)簽數(shù)據(jù);基于隨機(jī)森林回歸模型,構(gòu)建初始的應(yīng)用性能預(yù)測模型并設(shè)置初始的模型參數(shù);將所述訓(xùn)練數(shù)據(jù)輸入所述隨機(jī)森林回歸模型,經(jīng)處理后輸出運(yùn)行時(shí)長,作為預(yù)測數(shù)據(jù);計(jì)算標(biāo)簽數(shù)據(jù)與預(yù)測數(shù)據(jù)的均方誤差,并以最小化所述均方誤差為目標(biāo),調(diào)整模型參數(shù),重復(fù)迭代得到預(yù)測數(shù)據(jù)和調(diào)整模型參數(shù)的步驟,直到訓(xùn)練結(jié)束,得到訓(xùn)練好的應(yīng)用性能預(yù)測模型。
9、可選地,在根據(jù)本技術(shù)的方法中,基于所述應(yīng)用程序在所述集群系統(tǒng)的單個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的運(yùn)行參數(shù),從所述性能特征數(shù)據(jù)集中確定出多條相似特征數(shù)據(jù),包括:獲取所述應(yīng)用程序在所述集群系統(tǒng)的單個(gè)計(jì)算節(jié)點(diǎn)上運(yùn)行的運(yùn)行參數(shù);從所述性能特征數(shù)據(jù)集中確定出滿足預(yù)設(shè)條件的多條性能特征數(shù)據(jù),作為對(duì)應(yīng)的相似特征數(shù)據(jù)。
10、可選地,在根據(jù)本技術(shù)的方法中,基于各分類下相似特征數(shù)據(jù)的數(shù)量,利用應(yīng)用性能預(yù)測模型,生成多條模擬特征數(shù)據(jù),包括:判斷各分類下相似特征數(shù)據(jù)的數(shù)量是否小于第二數(shù)量;若小于所述第二數(shù)量,則隨機(jī)生成滿足預(yù)設(shè)條件的模擬特征,所述模擬特征至少包括:節(jié)點(diǎn)總浮點(diǎn)計(jì)算量、節(jié)點(diǎn)總訪存帶寬量、節(jié)點(diǎn)平均浮點(diǎn)計(jì)算能力;將所述模擬特征及其所屬分類對(duì)應(yīng)的計(jì)算節(jié)點(diǎn)數(shù)一并輸入所述應(yīng)用性能預(yù)測模型,以生成對(duì)應(yīng)的運(yùn)行時(shí)長,并將所述模擬特征與所對(duì)應(yīng)的運(yùn)行時(shí)長相關(guān)聯(lián),作為模擬特征數(shù)據(jù),其中,各分類下所生成的模擬特征數(shù)據(jù)的數(shù)量等于所述第二數(shù)量與對(duì)應(yīng)分類下相似特征數(shù)據(jù)的數(shù)量的差值。
11、可選地,在根據(jù)本技術(shù)的方法中,預(yù)設(shè)條件包括:所述節(jié)點(diǎn)總浮點(diǎn)計(jì)算量、所述節(jié)點(diǎn)總訪存帶寬量、所述節(jié)點(diǎn)平均浮點(diǎn)計(jì)算能力這3個(gè)特征與當(dāng)前運(yùn)行參數(shù)中對(duì)應(yīng)特征的誤差均不超過閾值。
12、可選地,在根據(jù)本技術(shù)的方法中,利用多項(xiàng)式回歸算法,擬合出計(jì)算節(jié)點(diǎn)數(shù)與運(yùn)行時(shí)長之間的關(guān)系,包括:以計(jì)算節(jié)點(diǎn)數(shù)為自變量,以運(yùn)行時(shí)長為因變量,利用最小二乘法,生成指示計(jì)算節(jié)點(diǎn)數(shù)與運(yùn)行時(shí)長間非線性關(guān)系的多項(xiàng)式回歸模型。
13、可選地,根據(jù)本技術(shù)的方法還包括:基于所擬合的關(guān)系繪制應(yīng)用程序的運(yùn)行時(shí)長曲線,確定不同計(jì)算節(jié)點(diǎn)配置下的最短運(yùn)行時(shí)長。
14、可選地,在根據(jù)本技術(shù)的方法中,異常值包括:所述節(jié)點(diǎn)平均浮點(diǎn)計(jì)算能力gflops/g小于50、所述作業(yè)平均訪存帶寬membw/gbps小于10,以及在多核條件下,所述節(jié)點(diǎn)平均通信接收帶寬/mbps和所述節(jié)點(diǎn)平均通信發(fā)送帶寬/mbps為0的數(shù)值。
15、可選地,在根據(jù)本技術(shù)的方法中,第一數(shù)量為4。
16、可選地,在根據(jù)本技術(shù)的方法中,第二數(shù)量為5。
17、根據(jù)本技術(shù)的再一方面,提供了一種計(jì)算設(shè)備,包括:一個(gè)或多個(gè)處理器存儲(chǔ)器;一個(gè)或多個(gè)程序,其中所述一個(gè)或多個(gè)程序存儲(chǔ)在存儲(chǔ)器中并被配置為由一個(gè)或多個(gè)處理器執(zhí)行,一個(gè)或多個(gè)程序包括用于執(zhí)行如上任一方法的指令。
18、根據(jù)本技術(shù)的再一方面,提供了一種存儲(chǔ)一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),一個(gè)或多個(gè)程序包括指令,指令在被計(jì)算設(shè)備執(zhí)行時(shí),使得計(jì)算設(shè)備執(zhí)行如上所述的任一方法。
19、根據(jù)本技術(shù)的再一方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序/指令,其中,該計(jì)算機(jī)程序/指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述所述方法的步驟。
20、綜上所述,根據(jù)本技術(shù)的方案,通過匯總大量的同一應(yīng)用程序在集群系統(tǒng)的各作業(yè)中運(yùn)行的運(yùn)行參數(shù),確定出與運(yùn)行時(shí)長最相關(guān)的性能特征,構(gòu)建該應(yīng)用程序的性能特征數(shù)據(jù)集。一方面,利用該性能特征數(shù)據(jù)集,訓(xùn)練生成應(yīng)用性能預(yù)測模型,用于根據(jù)輸入的性能特征,預(yù)測出對(duì)應(yīng)的運(yùn)行時(shí)長。另一方面,根據(jù)該應(yīng)用程序在單計(jì)算節(jié)點(diǎn)的運(yùn)行參數(shù),結(jié)合性能特征數(shù)據(jù)集和應(yīng)用性能預(yù)測模型,生成應(yīng)用數(shù)據(jù)集。之后,基于應(yīng)用數(shù)據(jù)集,利用多項(xiàng)式回歸算法,擬合出計(jì)算節(jié)點(diǎn)數(shù)與運(yùn)行時(shí)長之間的非線性關(guān)系,通過所擬合的關(guān)系,預(yù)測出該應(yīng)用程序在集群系統(tǒng)中各計(jì)算節(jié)點(diǎn)的運(yùn)行時(shí)長,為該應(yīng)用程序提供準(zhǔn)確的算力使用選擇建議。
21、上述說明僅是本技術(shù)技術(shù)方案的概述,為了能夠更清楚了解本技術(shù)的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本技術(shù)的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本技術(shù)的具體實(shí)施方式。