[發(fā)明專利]預(yù)測(cè)MPI程序運(yùn)行時(shí)間的方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710138221.9 | 申請(qǐng)日: | 2017-03-09 |
| 公開(公告)號(hào): | CN106933665B | 公開(公告)日: | 2020-06-26 |
| 發(fā)明(設(shè)計(jì))人: | 孫廣中;詹石巖;孫經(jīng)緯 | 申請(qǐng)(專利權(quán))人: | 中國(guó)科學(xué)技術(shù)大學(xué) |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48;G06F8/30 |
| 代理公司: | 北京凱特來知識(shí)產(chǎn)權(quán)代理有限公司 11260 | 代理人: | 鄭立明;鄭哲 |
| 地址: | 230026 安*** | 國(guó)省代碼: | 安徽;34 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 預(yù)測(cè) mpi 程序 運(yùn)行 時(shí)間 方法 | ||
本發(fā)明公開了一種預(yù)測(cè)MPI程序運(yùn)行時(shí)間的方法,可以針對(duì)循環(huán)、分支語句的定位與計(jì)數(shù)語句的插入,以及對(duì)特定MPI函數(shù)的定位操作,之后對(duì)多節(jié)點(diǎn)產(chǎn)生的特征進(jìn)行合并操作,進(jìn)而生成預(yù)測(cè)模型,實(shí)現(xiàn)MPI程序運(yùn)行時(shí)間的預(yù)測(cè)。該方法針對(duì)傳統(tǒng)技術(shù)中無法對(duì)MPI特征進(jìn)行采集和整合的問題予以修正,并且將基于代碼插裝的程序特征獲取技術(shù)擴(kuò)展到了高性能計(jì)算領(lǐng)域中常用的C/C++語言。不僅可以準(zhǔn)確預(yù)測(cè)MPI程序運(yùn)行時(shí)間,同時(shí),還對(duì)于程序的輸入不敏感,無需使用者考慮特殊輸入情況。
技術(shù)領(lǐng)域
本發(fā)明涉及程序性能預(yù)測(cè)技術(shù)領(lǐng)域,尤其涉及一種預(yù)測(cè)MPI程序運(yùn)行時(shí)間的方法。
背景技術(shù)
在超級(jí)計(jì)算機(jī)系統(tǒng)(以下簡(jiǎn)稱超算系統(tǒng))的運(yùn)行過程中,其作業(yè)調(diào)度系統(tǒng)負(fù)責(zé)對(duì)用戶提交的作業(yè)進(jìn)行作業(yè)調(diào)度操作,為了提高系統(tǒng)的整體利用效率,調(diào)度系統(tǒng)需要得知作業(yè)的運(yùn)行時(shí)間以更好的安排作業(yè)隊(duì)列。而在超級(jí)計(jì)算機(jī)系統(tǒng)中運(yùn)行的作業(yè)程序通常為MPI程序,因此如何對(duì)MPI程序進(jìn)行運(yùn)行時(shí)間預(yù)測(cè)得到了越來越多的關(guān)注。
目前在超算系統(tǒng)中常用的方法為經(jīng)驗(yàn)估計(jì),即根據(jù)用戶以往提交的程序的運(yùn)行時(shí)間估計(jì)之后用戶提交的程序的運(yùn)行時(shí)間。這種方法針對(duì)重復(fù)運(yùn)行的用戶程序具有一定的效果,但是難以對(duì)大部分程序產(chǎn)生應(yīng)有的預(yù)測(cè)效果。此外,有其他研究人員提出了其他預(yù)測(cè)方法,可以分為基于數(shù)學(xué)模型的分析和基于運(yùn)行數(shù)據(jù)的分析兩種。
基于數(shù)學(xué)模型的分析即通過分析程序本身的數(shù)學(xué)模型,結(jié)合實(shí)際運(yùn)行系統(tǒng)的特性,得出程序的最終運(yùn)行模型,從而能夠?qū)Τ绦虻倪\(yùn)行時(shí)間進(jìn)行細(xì)致的分析。但是這種方法對(duì)于研究人員的要求非常高,通常要求研究者同時(shí)具備多個(gè)領(lǐng)域的專業(yè)知識(shí)背景,并且研究過程較為耗時(shí)。此外,當(dāng)程序發(fā)生變更,或者運(yùn)行環(huán)境發(fā)生改變,就必須重新對(duì)程序進(jìn)行建模。
基于運(yùn)行數(shù)據(jù)的分析,根據(jù)數(shù)據(jù)的獲取途徑不同,可以分為若干種不同的技術(shù),如基于基準(zhǔn)程序、基于程序運(yùn)行狀態(tài)采樣、基于骨架程序、基于代碼插裝技術(shù)等等。
基于基準(zhǔn)程序的預(yù)測(cè)技術(shù)主要用于更換運(yùn)行環(huán)境后的程序性能預(yù)測(cè),即使用一組基準(zhǔn)程序作為比較對(duì)象,測(cè)出基準(zhǔn)程序在不同運(yùn)行環(huán)境下的性能變化,以此估計(jì)待測(cè)程序的性能變化。這種技術(shù)易于實(shí)行,但是基準(zhǔn)程序的代表性的優(yōu)劣決定了最終的預(yù)測(cè)準(zhǔn)確度。
基于程序運(yùn)行狀態(tài)采樣的預(yù)測(cè)技術(shù)即通過監(jiān)控程序運(yùn)行中的系統(tǒng)狀態(tài)數(shù)據(jù),通過一定的模型分析,得出狀態(tài)數(shù)據(jù)與程序運(yùn)行時(shí)間的關(guān)聯(lián)關(guān)系。這種技術(shù)通常需要運(yùn)行環(huán)境的支持,并且為了不過多消耗系統(tǒng)資源,監(jiān)控粒度不能做到任意小,并且不能根據(jù)程序的輸入情況預(yù)測(cè)其運(yùn)行時(shí)間。
基于骨架程序的預(yù)測(cè)技術(shù)即通過某種方式得到一個(gè)簡(jiǎn)化版的程序,稱為骨架程序。骨架程序與原程序的運(yùn)行時(shí)間保持一定的比例,最終通過運(yùn)行骨架程序推算出原程序的運(yùn)行時(shí)間。這種技術(shù)的問題在于很難獲得一個(gè)較優(yōu)的骨架程序,使得骨架程序與原程序之間保持適當(dāng)?shù)谋壤2⑶矣捎谠摷夹g(shù)縮減了原程序中的大量代碼,極有可能遺漏特定輸入下的運(yùn)行狀態(tài),從而使得預(yù)測(cè)變得不準(zhǔn)確。
基于代碼插裝技術(shù)的預(yù)測(cè)是一種通過修改程序代碼提取程序運(yùn)行特征的技術(shù)。主要做法是通過修改源程序,在不改變?cè)闯绦蛘Z義的前提下,插入特定代碼,使修改后的程序可以輸出與程序邏輯相關(guān)的特征信息,從而用于后續(xù)的預(yù)測(cè)模型的建立。但是目前該技術(shù)還并不能適用于MPI程序的特征提取,經(jīng)過調(diào)研,也沒有發(fā)現(xiàn)其他基于代碼插裝技術(shù)的針對(duì)MPI程序的特征提取工具。而在高性能計(jì)算領(lǐng)域,大多數(shù)應(yīng)用都使用了MPI技術(shù),因此需要針對(duì)現(xiàn)有技術(shù)進(jìn)行優(yōu)化使得其適用于MPI程序。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種預(yù)測(cè)MPI程序運(yùn)行時(shí)間的方法,可以準(zhǔn)確預(yù)測(cè)MPI程序運(yùn)行時(shí)間,同時(shí),對(duì)于程序的輸入不敏感,無需使用者考慮特殊輸入情況。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的:
一種預(yù)測(cè)MPI程序運(yùn)行時(shí)間的方法,包括:
對(duì)待預(yù)測(cè)的MPI程序中的待處理語句進(jìn)行定位;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)科學(xué)技術(shù)大學(xué),未經(jīng)中國(guó)科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710138221.9/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法、程序以及記錄介質(zhì)
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法
- 基于時(shí)間序列預(yù)測(cè)模型適用性量化的預(yù)測(cè)模型選擇方法
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法
- 分類預(yù)測(cè)方法及裝置、預(yù)測(cè)模型訓(xùn)練方法及裝置
- 幀內(nèi)預(yù)測(cè)的方法及裝置
- 圖像預(yù)測(cè)方法及裝置、電子設(shè)備和存儲(chǔ)介質(zhì)
- 文本預(yù)測(cè)方法、裝置以及電子設(shè)備
- 模型融合方法、預(yù)測(cè)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開發(fā)支持裝置、程序開發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>
- 運(yùn)行控制裝置及運(yùn)行控制方法
- 運(yùn)行支援裝置、運(yùn)行支援系統(tǒng)以及運(yùn)行支援程序
- 列車運(yùn)行處理方法、運(yùn)行處理裝置和運(yùn)行調(diào)度系統(tǒng)
- 運(yùn)行監(jiān)測(cè)系統(tǒng)及運(yùn)行監(jiān)測(cè)方法
- 運(yùn)行控制裝置及運(yùn)行控制方法
- 運(yùn)行曲線制作裝置、運(yùn)行輔助裝置以及運(yùn)行控制裝置
- 運(yùn)行支持裝置、車輛、運(yùn)行管理裝置和運(yùn)行支持方法
- 運(yùn)行計(jì)劃方法、運(yùn)行控制裝置和運(yùn)行計(jì)劃系統(tǒng)
- 運(yùn)行控制裝置、運(yùn)行管理系統(tǒng)、運(yùn)行控制方法以及車輛
- 自動(dòng)建模運(yùn)行系統(tǒng)及運(yùn)行方法





