專利名稱:基于torque的并行檢查點(diǎn)執(zhí)行方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,具體涉及一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法。
背景技術(shù):
作業(yè)調(diào)度系統(tǒng)是高性能計(jì)算機(jī)系統(tǒng)基礎(chǔ)的應(yīng)用管理軟件,其功能與性能直接關(guān)系到整個(gè)計(jì)算機(jī)系統(tǒng)的效率以及可靠性。但是在并行平臺(tái)上對(duì)檢查點(diǎn)技術(shù)并沒(méi)能做到廣泛的支持,而檢查點(diǎn)的一個(gè)典型應(yīng)用就是容錯(cuò)。檢查點(diǎn)現(xiàn)有技術(shù)=Libckpt :集成在Condor操作系統(tǒng)中的檢查點(diǎn)系統(tǒng)。由于缺乏內(nèi)核的支持,它只能對(duì)有限的用戶進(jìn)程進(jìn)行設(shè)置檢查點(diǎn),使得它在機(jī)群/作業(yè)管理系統(tǒng)中的應(yīng)用變得困難。
SGI的Irix :內(nèi)核級(jí)實(shí)現(xiàn),提供了豐富的用戶接口和實(shí)際應(yīng)用。但是Irix不是一款開(kāi)放源代碼的系統(tǒng)。Epckpt :基于Linux的檢查點(diǎn)系統(tǒng),未作存儲(chǔ)優(yōu)化,效率低下。現(xiàn)有的TORQUE雖然已經(jīng)實(shí)現(xiàn)了檢查點(diǎn)技術(shù),但是只能對(duì)單進(jìn)程的任務(wù)進(jìn)行檢查點(diǎn)設(shè)置,且無(wú)法支持對(duì)多進(jìn)程進(jìn)行檢查點(diǎn)和進(jìn)程的遷移。存在這些問(wèn)題的原因如下=TORQUE只是結(jié)合了 BLCR(Berkeley Lab’ s Linux Checkpoint/Restart伯克利實(shí)驗(yàn)室實(shí)現(xiàn)的檢查點(diǎn)與恢復(fù)技術(shù))進(jìn)行進(jìn)程檢查點(diǎn)。而B(niǎo)LCR自身無(wú)法支持分布式多進(jìn)程任務(wù);而且只在任務(wù)運(yùn)行節(jié)點(diǎn)上存有檢查點(diǎn)映像文件,其他節(jié)點(diǎn)無(wú)法利用該文件,也就無(wú)法做到進(jìn)程遷移。
發(fā)明內(nèi)容
為克服上述缺陷,本發(fā)明提供了一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,運(yùn)用改進(jìn)的基于TORQUE的改進(jìn)檢查點(diǎn)技術(shù),使得原來(lái)只支持單進(jìn)程檢查點(diǎn)的T0RQUE,現(xiàn)在也能夠支持多進(jìn)程檢查點(diǎn),并能夠?qū)?jié)點(diǎn)故障自動(dòng)處理,對(duì)進(jìn)程進(jìn)行遷移。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,在NFS文件共享存儲(chǔ)系統(tǒng)中對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作,其改進(jìn)之處在于,所述方法包括如下步驟(I).用戶向TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server提交作業(yè);(2). TORQUE服務(wù)器守護(hù)進(jìn)程發(fā)送任務(wù)消息給TORQUE調(diào)度器pbs_sched,TORQUE調(diào)度器pbs_sched根據(jù)作業(yè)中指定的參數(shù)要求尋找計(jì)算節(jié)點(diǎn);(3).對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作。本發(fā)明提供的優(yōu)選技術(shù)方案中,在所述步驟I中,用戶通過(guò)TORQUE提交作業(yè)命令qsub提交作業(yè)腳本,作業(yè)腳本使用MPI進(jìn)程啟動(dòng)命令chkp_mpirun啟動(dòng)MPI,在提交作業(yè)命令中加入作業(yè)檢查點(diǎn)請(qǐng)求。本發(fā)明提供的第二優(yōu)選技術(shù)方案中,在所述步驟2中,TORQUE調(diào)度器pbS_SChed通過(guò)計(jì)算節(jié)點(diǎn)守護(hù)進(jìn)程Pbsjnom輪詢各計(jì)算節(jié)點(diǎn)的狀態(tài),將結(jié)果返回給TORQUE服務(wù)器守護(hù)進(jìn)程 pbs_server。
本發(fā)明提供的第三優(yōu)選技術(shù)方案中,在所述步驟3中,TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server將用戶的檢查點(diǎn)操作請(qǐng)求傳送到相應(yīng)的計(jì)算節(jié)點(diǎn)上并周期運(yùn)行;其中,各個(gè)計(jì)算節(jié)點(diǎn)分別設(shè)置有獨(dú)立檢查點(diǎn)鏡像。本發(fā)明提供的第四優(yōu)選技術(shù)方案中,周期進(jìn)行檢查點(diǎn)操作的各個(gè)計(jì)算節(jié)點(diǎn)將獨(dú)立檢查點(diǎn)鏡像合并成全局檢查點(diǎn)文件。本發(fā)明提供的第五優(yōu)選技術(shù)方案中,全局檢查點(diǎn)文件存儲(chǔ)在NFS文件共享存儲(chǔ)系統(tǒng)中。本發(fā)明提供的第六優(yōu)選技術(shù)方案中,在所述步驟3后,存在以下步驟a:(a).在輪詢各個(gè)計(jì)算節(jié)點(diǎn)時(shí),如果發(fā)現(xiàn)某個(gè)計(jì)算節(jié)點(diǎn)故障,則將該計(jì)算節(jié)點(diǎn)上分配的所有未執(zhí)行完的和未執(zhí)行的任務(wù)根據(jù)全局檢查點(diǎn)文件全部進(jìn)行卷回恢復(fù)。 本發(fā)明提供的第七優(yōu)選技術(shù)方案中,在所述步驟a中,TORQUE調(diào)度器pbS_SChed將故障計(jì)算節(jié)點(diǎn)的所有任務(wù)號(hào)發(fā)回給TORQUE服務(wù)器守護(hù)進(jìn)程pbs_serVer,TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server將讀取NFS文件共享存儲(chǔ)系統(tǒng)上離當(dāng)前時(shí)間最近的全局進(jìn)程映像文件,以卷回的方式重新提交任務(wù)。與現(xiàn)有技術(shù)比,本發(fā)明提供的一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,基于TORQUE的改進(jìn)檢查點(diǎn)技術(shù),可以使得TORQUE對(duì)運(yùn)行于其上的,無(wú)論是單進(jìn)程還是多進(jìn)程的任務(wù)進(jìn)行檢查點(diǎn),并在節(jié)點(diǎn)故障時(shí)自動(dòng)進(jìn)行卷回恢復(fù),避免了由用戶發(fā)現(xiàn)節(jié)點(diǎn)失效并重新提交作業(yè)的不便,以及重啟作業(yè)不及時(shí)導(dǎo)致的系統(tǒng)利用率低下,從而提高了調(diào)度系統(tǒng)的可靠性;而且,經(jīng)實(shí)驗(yàn)測(cè)試,運(yùn)用改進(jìn)的基于TORQUE的改進(jìn)檢查點(diǎn)技術(shù),使得原來(lái)只支持單進(jìn)程檢查點(diǎn)的T0RQUE,現(xiàn)在也能夠支持多進(jìn)程檢查點(diǎn),并能夠?qū)?jié)點(diǎn)故障自動(dòng)處理,對(duì)進(jìn)程進(jìn)行遷移,從而減少了因節(jié)點(diǎn)故障造成的計(jì)算資源浪費(fèi)。
圖I為基于TORQUE的并行檢查點(diǎn)執(zhí)行方法的流程示意圖。
具體實(shí)施例方式涉及的關(guān)鍵技術(shù)術(shù)語(yǔ)的說(shuō)明I TORQUE Tera-scale Open-source Resource and Queue manager 開(kāi)源的萬(wàn)億級(jí)計(jì)算資源與隊(duì)列管理器2檢查點(diǎn)在一個(gè)事務(wù)結(jié)束而另一個(gè)事務(wù)即將開(kāi)始的時(shí)候,對(duì)系統(tǒng)狀態(tài)的一次快照。3映像文件檢查點(diǎn)文件,保存了進(jìn)程執(zhí)行的所有信息。4進(jìn)程遷移在不同的處理器上移動(dòng)一個(gè)正在執(zhí)行進(jìn)程的能力,這些處理器通過(guò)網(wǎng)絡(luò)互相連接而不是局部共享內(nèi)存。5NFS Network File System 網(wǎng)絡(luò)文件系統(tǒng)如圖I所示,一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,在NFS文件共享存儲(chǔ)系統(tǒng)中對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作,所述方法包括如下步驟(I).用戶向TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server提交作業(yè);(2). TORQUE服務(wù)器守護(hù)進(jìn)程發(fā)送任務(wù)消息給TORQUE調(diào)度器pbs_sched,TORQUE調(diào)度器pbs_sched根據(jù)作業(yè)中指定的參數(shù)要求尋找計(jì)算節(jié)點(diǎn);(3).對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作。在所述步驟I中,用戶通過(guò)TORQUE提交作業(yè)命令qsub提交作業(yè)腳本,提交命令中需要加入作業(yè)檢查點(diǎn)請(qǐng)求,作業(yè)腳本中使用MPI進(jìn)程啟動(dòng)命令chkp_mpirun啟動(dòng)MPI,或者可以直接在客戶端以命令行形式提交MPI作業(yè),方法為在命令行執(zhí)行MPI啟動(dòng)命令chkp_mpirun0在所述步驟2中,TORQUE調(diào)度器pbs_sched通過(guò)計(jì)算節(jié)點(diǎn)守護(hù)進(jìn)程pbs_mom輪詢各計(jì)算節(jié)點(diǎn)的狀態(tài),將結(jié)果返回給TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server。在所述步驟3中,TORQUE服務(wù)器守護(hù)進(jìn)程pbsjerver將用戶的檢查點(diǎn)操作請(qǐng)求傳送到相應(yīng)的計(jì)算節(jié)點(diǎn)上并周期運(yùn)行;其中,各個(gè)計(jì)算節(jié)點(diǎn)分別設(shè)置有獨(dú)立檢查點(diǎn)鏡像。周期進(jìn)行檢查點(diǎn)操作的各個(gè)計(jì)算節(jié)點(diǎn)將獨(dú)立檢查點(diǎn)鏡像合并成全局檢查點(diǎn)文件。全局檢查點(diǎn)文件存儲(chǔ)在NFS文件共享存儲(chǔ)系統(tǒng)中。 在所述步驟3后,存在以下步驟a (a).在輪詢各個(gè)計(jì)算節(jié)點(diǎn)時(shí),如果發(fā)現(xiàn)某個(gè)計(jì)算節(jié)點(diǎn)故障,則將該計(jì)算節(jié)點(diǎn)上分配的所有未執(zhí)行完的和未執(zhí)行的任務(wù)根據(jù)全局檢查點(diǎn)文件全部進(jìn)行卷回恢復(fù)。在所述步驟a中,TORQUE調(diào)度器pbS_SChed將故障計(jì)算節(jié)點(diǎn)的所有任務(wù)號(hào)發(fā)回給TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server, TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server將讀取NFS文件共享存儲(chǔ)系統(tǒng)上離當(dāng)前時(shí)間最近的全局進(jìn)程映像文件,以卷回的方式重新提交任務(wù)。通過(guò)以下實(shí)施例對(duì)基于TORQUE的并行檢查點(diǎn)執(zhí)行方法做進(jìn)一步描述。基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,包括一、NFS文件系統(tǒng)(Network File System網(wǎng)絡(luò)文件系統(tǒng))本方法采用了 NFS共享存儲(chǔ)來(lái)存儲(chǔ)映像文件,各進(jìn)程在為自己設(shè)置檢查點(diǎn)時(shí),其檢查點(diǎn)文件實(shí)際上是被NFS發(fā)送到掛載在管理結(jié)點(diǎn)上的穩(wěn)定存儲(chǔ)陣列中,存儲(chǔ)陣列的可靠性一般由其自身來(lái)保證(RAID-Redundant Arrays of InexpensiveDisks磁盤(pán)陣列機(jī)制)。用NFS共享文件系統(tǒng)提供的服務(wù),可以使得所有的計(jì)算節(jié)點(diǎn)都能訪問(wèn)到該存儲(chǔ)空間,為進(jìn)程的遷移以及節(jié)點(diǎn)故障后在其他節(jié)點(diǎn)恢復(fù)提供了有利條件。二、并行檢查點(diǎn)執(zhí)行流程I.通常并行任務(wù)的實(shí)現(xiàn)都是基于MPI (Message Passing Interface消息傳遞接口)而實(shí)現(xiàn)的,本方法在執(zhí)行作業(yè)命令時(shí)不再使用MPI自身的mpirun(MPI啟動(dòng)命令),而是使用本方法提供的chkp_mpirun命令(本方法提供的MPI進(jìn)程啟動(dòng)命令),具體實(shí)現(xiàn)流程如下2.用戶可以直接使用chkp_mpirun命令在命令行啟動(dòng)MPI可執(zhí)行程序,用戶也可以通過(guò)qsub命令(TORQUE的提交作業(yè)命令)提交作業(yè)腳本,作業(yè)腳本中使用chkp_mpirun命令啟動(dòng)MPI可執(zhí)行程序,并在提交命令中加入作業(yè)檢查點(diǎn)請(qǐng)求;pbs_serVer (TORQUE在管理節(jié)點(diǎn)上的守護(hù)進(jìn)程)接收到用戶腳本之后,發(fā)送任務(wù)消息給pbs_sched調(diào)度器(TORQUE在管理節(jié)點(diǎn)上的調(diào)度器),調(diào)度器根據(jù)腳本文件中指定的參數(shù)要求尋找合適的節(jié)點(diǎn)。調(diào)度器通過(guò)pbS_mom(T0RQUE在計(jì)算節(jié)點(diǎn)上的守護(hù)進(jìn)程)輪詢各計(jì)算節(jié)點(diǎn)的狀態(tài),將結(jié)果返回給pbs_server, pbs_server再將用戶的任務(wù)程序由網(wǎng)絡(luò)傳送到相應(yīng)的計(jì)算節(jié)點(diǎn),并在該節(jié)點(diǎn)上運(yùn)行,同時(shí)在該節(jié)點(diǎn)上周期進(jìn)行檢查點(diǎn),啟動(dòng)任務(wù)的節(jié)點(diǎn)會(huì)將個(gè)計(jì)算節(jié)點(diǎn)上的獨(dú)立檢查點(diǎn)鏡像合并成全局一致的檢查點(diǎn)鏡像,從而達(dá)到單一系統(tǒng)映像效果。并將這個(gè)周期性產(chǎn)生的檢查點(diǎn)文件存放在NFS共享存儲(chǔ)上。3.實(shí)現(xiàn)自動(dòng)卷回恢復(fù)也就是實(shí)現(xiàn)進(jìn)程遷移,需要管理節(jié)點(diǎn)定時(shí)輪詢各計(jì)算節(jié)點(diǎn)是狀態(tài)。如果發(fā)現(xiàn)節(jié)點(diǎn)故障,則將該節(jié)點(diǎn)上分配的所有未執(zhí)行完的和未執(zhí)行的任務(wù)全部進(jìn)行卷回恢復(fù)。這是通過(guò)修改pbs_sched調(diào)度器的定時(shí)執(zhí)行函數(shù)來(lái)實(shí)現(xiàn)的。pbs_sched調(diào)度器會(huì)將故障節(jié)點(diǎn)的所有任務(wù)號(hào)發(fā)回給pbs_server, pbs_server將讀取共享存儲(chǔ)上的離當(dāng)前時(shí)間最近的全局進(jìn)程映像文件,以卷回的方式重新提交任務(wù)。
需要聲明的是,本發(fā)明內(nèi)容及具體實(shí)施方式
意在證明本發(fā)明所提供技術(shù)方案的實(shí)際應(yīng)用,不應(yīng)解釋為對(duì)本發(fā)明保護(hù)范圍的限定。本領(lǐng)域技術(shù)人員在本發(fā)明的精神和原理啟發(fā)下,可作各種修改、等同替換、或改進(jìn)。但這些變更或修改均在申請(qǐng)待批的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,在NFS文件共享存儲(chǔ)系統(tǒng)中對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作,其特征在于,所述方法包括如下步驟 (1).用戶向TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server提交作業(yè); (2).TORQUE服務(wù)器守護(hù)進(jìn)程發(fā)送任務(wù)消息給TORQUE調(diào)度器pbS_SChed,TORQUE調(diào)度器pbs_sched根據(jù)作業(yè)中指定的參數(shù)要求尋找計(jì)算節(jié)點(diǎn); (3).對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,在所述步驟I中,用戶通過(guò)TORQUE提交作業(yè)命令qsub提交作業(yè)腳本,作業(yè)腳本使用MPI進(jìn)程啟動(dòng)命令chkp_mpirun啟動(dòng)MPI,在提交作業(yè)命令中加入作業(yè)檢查點(diǎn)請(qǐng)求。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,在所述步驟2中,TORQUE調(diào)度器pbs_sched通過(guò)計(jì)算節(jié)點(diǎn)守護(hù)進(jìn)程pbs_mom輪詢各計(jì)算節(jié)點(diǎn)的狀態(tài),將結(jié)果返回給TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,在所述步驟3中,TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server將用戶的檢查點(diǎn)操作請(qǐng)求傳送到相應(yīng)的計(jì)算節(jié)點(diǎn)上并周期運(yùn)行;其中,各個(gè)計(jì)算節(jié)點(diǎn)分別設(shè)置有獨(dú)立檢查點(diǎn)鏡像。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,周期進(jìn)行檢查點(diǎn)操作的各個(gè)計(jì)算節(jié)點(diǎn)將獨(dú)立檢查點(diǎn)鏡像合并成全局檢查點(diǎn)文件。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,全局檢查點(diǎn)文件存儲(chǔ)在NFS文件共享存儲(chǔ)系統(tǒng)中。
7.根據(jù)權(quán)利要求I或者4所述的方法,其特征在于,在所述步驟3后,存在以下步驟a (a).在輪詢各個(gè)計(jì)算節(jié)點(diǎn)時(shí),如果發(fā)現(xiàn)某個(gè)計(jì)算節(jié)點(diǎn)故障,則將該計(jì)算節(jié)點(diǎn)上分配的所有未執(zhí)行完的和未執(zhí)行的任務(wù)根據(jù)全局檢查點(diǎn)文件全部進(jìn)行卷回恢復(fù)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在所述步驟a中,TORQUE調(diào)度器pbs_sched將故障計(jì)算節(jié)點(diǎn)的所有任務(wù)號(hào)發(fā)回給TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server, TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server將讀取NFS文件共享存儲(chǔ)系統(tǒng)上離當(dāng)前時(shí)間最近的全局進(jìn)程映像文件,以卷回的方式重新提交任務(wù)。
全文摘要
本發(fā)明提供了一種基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,在NFS文件共享存儲(chǔ)系統(tǒng)中對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作,所述方法包括如下步驟(1).用戶向TORQUE服務(wù)器守護(hù)進(jìn)程pbs_server提交作業(yè),提交命令加入檢查點(diǎn)請(qǐng)求,作業(yè)腳本中使用作業(yè)啟動(dòng)命令chkp_mpirun啟動(dòng)任務(wù);(2).TORQUE服務(wù)器守護(hù)進(jìn)程發(fā)送任務(wù)消息給TORQUE調(diào)度器pbs_sched,TORQUE調(diào)度器pbs_sched根據(jù)作業(yè)中指定的參數(shù)要求尋找計(jì)算節(jié)點(diǎn);(3).對(duì)計(jì)算節(jié)點(diǎn)進(jìn)行檢查點(diǎn)操作。本發(fā)明提供的基于TORQUE的并行檢查點(diǎn)執(zhí)行方法,運(yùn)用改進(jìn)的基于TORQUE的改進(jìn)檢查點(diǎn)技術(shù),使得原來(lái)只支持單進(jìn)程檢查點(diǎn)的TORQUE,現(xiàn)在也能夠支持多進(jìn)程檢查點(diǎn),并能夠?qū)?jié)點(diǎn)故障自動(dòng)處理,對(duì)進(jìn)程進(jìn)行遷移。
文檔編號(hào)G06F11/00GK102915257SQ20121036765
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年9月28日 優(yōu)先權(quán)日2012年9月28日
發(fā)明者林霞 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司