999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MPI并行程序的容錯系統(tǒng)設(shè)計

2011-01-01 00:00:00李飛飛
電腦知識與技術(shù) 2011年4期

摘要:為了確保并行程序能夠在并行環(huán)境下準確地運行,須提高系統(tǒng)的可靠性,將容錯技術(shù)應用到并行計算中。該文針對MPI并行程序提出一種容錯系統(tǒng)的設(shè)計方法,采用檢查點/卷回恢復技術(shù)、并添加故障檢測功能,能夠有效地處理節(jié)點失效故障和進程失效故障,在一定范圍內(nèi)實現(xiàn)容錯,為MPI環(huán)境下進行大規(guī)模計算提供一個可使用的應用模型。

關(guān)鍵詞:MPI并行程序;容錯;檢查點/卷回恢復;故障檢測

中圖分類號:TP302文獻標識碼:A文章編號:1009-3044(2011)04-0817-03

The Design of Fault-Tolerant System for Parallel Program Based on MPI

LI Fei-fei

(Northeast Dianli University, Jilin 132012, China)

Abstract: In order to ensure that the parallel program accurately runs on parallel environment, system reliability must be enhanced, so fault-tolerant technology is applied to parallel computing. In this paper, a design method of fault-tolerant system is proposed for parallel program based on MPI, which adoptes checkpoint/rollback recovery technology and adds a function of detecting failure. The fault-tolerant system can effectively handle node failure and processes failure in a certain range, which provide a practical model for large-scale calculation under MPI environment.

Key words: parallel program; MPI; fault-tolerant; checkpoint/rollback recovery; detecting failure

并行計算從本質(zhì)上講就是將多任務(wù)映射到多處理機上執(zhí)行,或?qū)⒍嗳蝿?wù)映射到具有特定拓撲結(jié)構(gòu)的多節(jié)點機上求解,每臺節(jié)點機啟動一個進程。MPI(Message Passing Interface)消息傳遞接口[1]用于開發(fā)基于消息的并行程序,通過傳遞消息來協(xié)調(diào)各個并行執(zhí)行的進程的步伐,并且利用交換信息和數(shù)據(jù)去控制執(zhí)行并行計算任務(wù),廣泛應用于集群系統(tǒng)的并行程序開發(fā)環(huán)境。隨著集群規(guī)模的不斷擴大和節(jié)點機數(shù)的增加,異常關(guān)機、節(jié)點故障雖然不會經(jīng)常但極有可能發(fā)生,但是現(xiàn)行的MPI標準中不包括任何機制去恢復意外失效的進程,系統(tǒng)發(fā)生故障時程序必須從頭開始重新執(zhí)行,從而引起計算時間的大量浪費[2]。因此,需要將容錯技術(shù)引入到并行計算中,保證在發(fā)生各種異常事件或故障時,為用戶提供持續(xù)的服務(wù)。

目前,并行程序的容錯通常是基于檢查點技術(shù),再加入故障探測、處理以及自動恢復等輔助功能而形成的完整容錯機制,在全局一致性狀態(tài)下將進程的運行狀態(tài)進行保存,當程序運行出現(xiàn)故障時,利用保存的進程狀態(tài)對出錯進程進行恢復,使計算任務(wù)從檢查點處恢復執(zhí)行,以減少計算損失,提高程序運行的可靠性和可用性。

1 容錯相關(guān)內(nèi)容

1.1 檢查點技術(shù)

檢查點技術(shù)[3]是指在程序運行時選擇適當?shù)臅r刻設(shè)置檢查點,進行檢查點操作,保存各個進程的運行狀態(tài)到存儲器中,系統(tǒng)如果在隨后的運行過程中發(fā)生故障,所有進程停止計算卷回到上一次最近的檢查點處,利用檢查點處保存的正確狀態(tài)去恢復出錯的進程,從該檢查點處重新計算。其過程如圖1所示,這樣可以避免由于故障而導致程序從頭重新執(zhí)行,因而能有效地減少計算損失。

在設(shè)置檢查點時要保證所有進程處于全局一致性狀態(tài)[4],所謂全局一致性狀態(tài),就是一個并行程序在無錯執(zhí)行期間所有進程的某種狀態(tài)集合,當某個進程的狀態(tài)表現(xiàn)為發(fā)送了一條消息時,在相對的另一個進程狀態(tài)必須反映為接收該消息。為了發(fā)生故障時正確地卷回恢復,設(shè)置檢查點時必須保證記錄的狀態(tài)是所有進程處在全局一致性狀態(tài)下,避免產(chǎn)生多米諾效應。

如圖2所示,黑色方塊代表各個進程獨立設(shè)置的檢查點,當進程P2發(fā)出消息m7后發(fā)生故障,則卷回到檢查點C處,卷回過程中P2取消發(fā)送m7,因此P1必須回退到檢查點B以取消對m7的接收。同理P1發(fā)送的消息m6無效,進程P0卷回到檢查點A處,依次類推,P1卷回到D處,導致P1卷回到E處,P0卷回到F處,最后所有進程又卷回到起點,重新開始計算所有任務(wù),這種現(xiàn)象稱為多米諾效應[5]。

1.2 故障

一個系統(tǒng)是容錯的[6],是指并行程序在發(fā)生邏輯故障的情況下仍然能夠正確地運行,故障模型[7]一般分為兩類:Byzatine故障模型和Fail-stop故障模型。本文針對Fail-stop故障模型進行研究,可描述為并行計算中進程的掛起或崩潰情況,是并行計算領(lǐng)域常見的硬件故障模型。fail-stop故障可分為節(jié)點失效故障和進程失效故障兩大類。節(jié)點失效故障一旦發(fā)生,進程執(zhí)行中斷不對任何請求做出響應,比如進程崩潰故障、系統(tǒng)掉電故障等;而進程失效故障是指某個進程異常退出,其它進程或運行環(huán)境無法感知,并行程序成為懸空程序。兩種情況的發(fā)生都會導致并行程序計算失敗,因此,容錯系統(tǒng)應及時檢測出出錯的故障類型,以便系統(tǒng)進行卷回恢復處理。

1.3 卷回恢復

卷回恢復技術(shù)[8]把一個并行系統(tǒng)看作是一個應用進程的集合,各進程相互之間通過網(wǎng)絡(luò)通訊。在進程無錯執(zhí)行到檢查點處將進程的運行狀態(tài)保存到穩(wěn)定存儲器中來實現(xiàn)容錯,當出現(xiàn)錯誤時,一個出錯進程可從檢查點處所保存的一個狀態(tài)中進行重啟恢復,這樣就可以盡量減少計算的損失。在卷回恢復過程中,可以通過進程遷移來實現(xiàn),將在出錯進程上執(zhí)行的任務(wù)遷移到另外一個進程上,執(zhí)行同樣的計算得到結(jié)果。還可以重構(gòu)并行環(huán)境,發(fā)生故障后,所有進程卷回到上一次最近的檢查點處,利用保存的進程狀態(tài)重構(gòu)并行環(huán)境,重新分配任務(wù)進行計算。本文研究的容錯系統(tǒng)采用后一種方法,將出錯進程剔除,剩余節(jié)點機重構(gòu)并行環(huán)境,實現(xiàn)負載平衡重新執(zhí)行計算任務(wù)。

2 容錯系統(tǒng)的設(shè)計

本MPI并行程序的容錯系統(tǒng)可分為三個模塊:用戶界面模塊、總控模塊和檢測模塊。用戶界面模塊:是容錯系統(tǒng)和用戶的通訊接口,用戶在界面上完成所有準備工作,然后啟動容錯系統(tǒng)運行并行程序,并且在計算的過程中,系統(tǒng)運行狀態(tài)會輸出顯示在用戶界面上,方便用戶了解各個節(jié)點機的狀況;總控模塊:掌握整個系統(tǒng)的運行過程,系統(tǒng)初始化、調(diào)用執(zhí)行并行程序、負責檢查點操作、卷回恢復處理,以及協(xié)調(diào)檢測模塊與總控模塊的配合;檢測模塊:監(jiān)聽各個進程運行狀況,一旦發(fā)現(xiàn)某個進程發(fā)生故障則向總控模塊報告。

本容錯系統(tǒng)的模塊結(jié)構(gòu)圖,如圖3所示。

2.1 檢查點的生成

本文針對MPI并行程序而設(shè)計的容錯系統(tǒng),設(shè)計的出發(fā)點是在容錯系統(tǒng)上調(diào)用并行程序,然后啟動后臺并行環(huán)境執(zhí)行并行計算。用戶必須將并行程序進行粒度劃分,使得每一個粒度成為一個.exe的可執(zhí)行程序,并將所有的.exe可執(zhí)行程序交給容錯系統(tǒng)。用戶可以根據(jù)MPI的特點以及需要自由地對并行程序進行粒度劃分,并規(guī)定.exe可執(zhí)行程序被容錯系統(tǒng)調(diào)用的順序。

容錯系統(tǒng)通過依次調(diào)用所有粒度的.exe可執(zhí)行程序完成計算任務(wù),將粒度連接點默認為檢查點,作為卷回恢復的參考點,在每個檢查點處保存進程的運行狀態(tài),利用這些狀態(tài)去恢復出錯的故障。此檢查點方法可以避免產(chǎn)生多米諾效應,如圖4所示,當進程P1或是P2發(fā)生故障時,所有進程停止計算任務(wù),卷回到上一次最近的檢查點B或是C處,由主進程P0根據(jù)故障類型對出錯進程進行恢復,重新執(zhí)行計算任務(wù)。

2.2 用戶界面模塊

用戶界面是用戶與程序交互的窗口,比較直觀,方便用戶與容錯系統(tǒng)的交流,在界面上用戶進行相應的操作,完成所有準備工作,然后啟動系統(tǒng)開始運行并行程序,在計算的過程中各個節(jié)點機的運行情況會輸出顯示在用戶界面上,方便用戶了解各個節(jié)點機的狀況。用戶的準備工作如下:

1) 依次保存要運行的.exe可執(zhí)行程序;

2) 存儲機器信息文件,用于判斷可用于并行計算的節(jié)點機以及故障檢測的依據(jù);

3) 登記用戶名和密碼,用于并行計算的節(jié)點機的用戶名和密碼。

在容錯系統(tǒng)界面上操作以上三個步驟,即可啟動系統(tǒng)執(zhí)行并行計算。

2.3 總控模塊

總控模塊是容錯系統(tǒng)的核心,由主進程調(diào)用執(zhí)行,主要包括三個部分的內(nèi)容,系統(tǒng)初始化、檢查點操作以及卷回恢復處理,系統(tǒng)功能示意圖如圖5所示。

1) 系統(tǒng)初始化。主進程進行初始化工作,獲得使用的機器信息和初始化各類系統(tǒng)資源,系統(tǒng)將初始化設(shè)定為第一個檢查點,在此處保存所有進程運行狀態(tài),即得到本局域網(wǎng)中可用于并行計算的所有節(jié)點機,并將相關(guān)的信息(即可計算節(jié)點機的機器名和IP地址)保存在本地磁盤上的檢查點文件中,這些信息用于總控模塊給符合條件的節(jié)點機分配任務(wù)執(zhí)行.exe可執(zhí)行程序,同時這些信息也是檢測模塊執(zhí)行的原始數(shù)據(jù)。

2) 檢查點操作。當系統(tǒng)執(zhí)行到檢查點處主進程調(diào)用總控模塊進行一次檢查點操作,任務(wù)是保存此時進程的運行狀態(tài)到本地磁盤上的檢查點文件中,用于執(zhí)行下一個.exe可執(zhí)行程序為各個進程分配任務(wù)以及發(fā)生故障時進行卷回恢復處理的依據(jù)。進程的運行狀態(tài)包括節(jié)點機的機器名和IP地址,執(zhí)行并行計算時將任務(wù)平均分配給這些機器名對應的節(jié)點機,在這些節(jié)點機上分別啟動一個進程執(zhí)行并行計算的任務(wù),IP地址用于檢測模塊監(jiān)聽進程時判斷參與計算的進程是否正常運行。

3) 卷回恢復。當參與計算的某一節(jié)點機上的進程發(fā)生故障時,總控模塊執(zhí)行卷回恢復任務(wù),所有進程停止一切計算任務(wù)卷回到上一次檢查點處,主進程讀取該檢查點處的檢查點文件內(nèi)容,得到所有符合運行條件的進程,根據(jù)所發(fā)生的故障類型進行恢復處理,如圖4所示,當發(fā)生進程失效故障時,重新啟動所有進程再一次進行相同的計算任務(wù),相應的,當發(fā)生節(jié)點機失效故障時,主進程去掉出錯進程,為檢查點文件中保存的其他剩余進程重新分配任務(wù),然后進行相同的計算。

2.4 檢測模塊

檢測故障是實現(xiàn)并行程序容錯的重要環(huán)節(jié)之一,保證實現(xiàn)容錯功能的先決條件,探知發(fā)生故障及其類型并交由總控模塊判斷進行哪種處理。檢測模塊由守護進程來實現(xiàn),周期性地檢測進程運行狀況是否良好,如發(fā)生故障及時通知主進程的總控模塊。

利用java提供的異常(Exception)處理實現(xiàn)故障檢測的功能。除了標準異常,根據(jù)容錯功能的需要擴展java.lang.Exception類來實現(xiàn)特定的異常,如在表達故障類型時事先定義每種故障發(fā)生對應的異常,將某節(jié)點機網(wǎng)絡(luò)不在線定義為節(jié)點失效故障,MPI并行環(huán)境的wmpiconfig.exe進程不在線定義為進程失效故障。當拋出異常時總控模塊得知發(fā)生故障,提供了一種在并行程序容錯中實現(xiàn)錯誤捕捉的機制。

3 系統(tǒng)測試

以基于MPI的P-Q法潮流并行程序為測試用例,驗證容錯系統(tǒng)的有效性。此并行程序被劃分為四個粒度,容錯系統(tǒng)依次調(diào)用四個粒度的.exe可執(zhí)行程序。實驗方法:在執(zhí)行計算的過程中斷開一臺用于并行計算的節(jié)點機的網(wǎng)絡(luò)連接制造節(jié)點機失效故障,另一種方法是手動殺死一臺節(jié)點機上的MPI進程制造進程失效故障。測試結(jié)果如表1所示。

實驗結(jié)果表明,本容錯系統(tǒng)能夠檢測出并行程序計算過程中發(fā)生的節(jié)點機失效故障和進程失效故障,并且能夠?qū)收线M行相應的處理,最終得到并行計算的結(jié)果,實現(xiàn)了一定范圍內(nèi)的容錯功能。

4 總結(jié)

本文將容錯技術(shù)應用到并行計算中,在不修改原并行程序代碼的情況下設(shè)計出一個容錯系統(tǒng),利用守護進程實現(xiàn)故障的檢測及時發(fā)現(xiàn)故障,并結(jié)合檢查點/卷回恢復技術(shù)對出錯的進程進行恢復,為并行計算的過程提供保障。本文設(shè)計的容錯系統(tǒng)實現(xiàn)了對除主機之外的其他節(jié)點機故障的恢復,一旦主進程發(fā)生故障,則所有計算都白費。本文下一步的研究工作是解決此問題,可以將生成的檢查點文件進行備份,保存在另外一臺計算節(jié)點機上,主機發(fā)生故障后將此節(jié)點機上的進程轉(zhuǎn)為主進程,負責重構(gòu)并行環(huán)境和啟動并行程序重新計算。

參考文獻:

[1] 任波,王乘.MPI集群通信性能分析[J].計算機工程,2004,30(11):71-73.

[2] 崔麗青,徐煒民.MPI容錯問題的研究及實現(xiàn)[J].計算機應用,2003,23(12):236-238.

[3] 周恩強,盧宇彤,沈志宇.一個適合大規(guī)模集群并行計算的檢查點系統(tǒng)[J].計算機研究與發(fā)展,2005,42(6):987-992.

[4] 萬國偉.消息傳遞系統(tǒng)容錯技術(shù)研究[D].長沙:國防科學技術(shù)大學研究生院,2006:15-21.

[5] 薛瑞尼.面向集群系統(tǒng)的MPI并行程序容錯技術(shù)研究[D].北京:清華大學,2005:12-23.

[6] 丁俊,童維勤.群機系統(tǒng)的容錯和恢復[J].計算機應用,2001,21(06):90-92.

[7] 孫峻朝,王建瑩,楊孝宗.故障和容錯機制的層次模型[J].計算機工程與應用,1999(10):5-7.

[8] 周軍海.基于回卷恢復的MPI程序容錯[D].長沙:湖南大學,2004:32-38.

主站蜘蛛池模板: 中日韩一区二区三区中文免费视频 | 九九视频在线免费观看| 色男人的天堂久久综合| 国产微拍一区| 99久视频| 欧美一级在线| 97精品久久久大香线焦| 22sihu国产精品视频影视资讯| 55夜色66夜色国产精品视频| 欧美成人aⅴ| 亚洲欧洲AV一区二区三区| 夜夜高潮夜夜爽国产伦精品| 国产精品自在在线午夜区app| 欧美在线视频a| 99精品视频九九精品| 国产95在线 | 91色爱欧美精品www| 国产视频一区二区在线观看 | 免费在线色| 色噜噜中文网| 极品私人尤物在线精品首页| 亚洲视频色图| 日韩二区三区无| 亚洲 欧美 中文 AⅤ在线视频| 亚洲欧美成人在线视频| 国产在线专区| 国产农村1级毛片| a亚洲视频| 2020国产在线视精品在| 久久香蕉国产线| 伊人久久精品无码麻豆精品 | 欧美日韩国产在线观看一区二区三区 | 精品国产网| 亚洲伊人电影| 老司机午夜精品视频你懂的| 日本三级欧美三级| 国产人前露出系列视频| 日本在线国产| 国产视频只有无码精品| 国产精品人成在线播放| 亚洲色图欧美| 综合色区亚洲熟妇在线| 亚洲精品不卡午夜精品| 免费国产高清视频| 永久成人无码激情视频免费| 91色爱欧美精品www| 亚洲国产中文在线二区三区免| 日本不卡在线播放| 国产电话自拍伊人| 国产成人乱无码视频| 无码精品一区二区久久久| 亚洲国产日韩在线成人蜜芽| 国产一区二区精品福利| 亚洲精品制服丝袜二区| 日本成人在线不卡视频| 日韩国产 在线| 丁香婷婷激情网| 久久成人国产精品免费软件| 久久99蜜桃精品久久久久小说| 三上悠亚一区二区| 国产精品免费久久久久影院无码| 亚洲中久无码永久在线观看软件| 91久久性奴调教国产免费| 国产精鲁鲁网在线视频| 久久免费看片| 高清国产va日韩亚洲免费午夜电影| AV在线天堂进入| 99在线观看国产| 丰满人妻一区二区三区视频| 欧美在线精品怡红院| 九九久久99精品| 四虎影视国产精品| 国产成人综合日韩精品无码不卡| 国产精品香蕉在线观看不卡| 亚洲天堂高清| 丁香婷婷综合激情| 2020极品精品国产| 91在线中文| 免费人成黄页在线观看国产| 中文字幕第4页| 国产亚洲欧美另类一区二区| 国产xx在线观看|