基于任務(wù)備份的并行cfd計(jì)算容錯(cuò)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及CFD大規(guī)模數(shù)值模擬計(jì)算技術(shù)領(lǐng)域,具體涉及基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法。
【背景技術(shù)】
[0002]在面向航空航天飛行器和高速列車等高價(jià)值目標(biāo)的優(yōu)化設(shè)計(jì)過程中,空氣動(dòng)力學(xué)復(fù)雜流動(dòng)研究提升了對(duì)高性能數(shù)值模擬的利用水平,現(xiàn)今階段提出了在億億次量級(jí)的高性能計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)十萬核量級(jí)大規(guī)模數(shù)值模擬的計(jì)算需求。而在這些以計(jì)算流體力學(xué)(CFD)為主導(dǎo)的高性能計(jì)算領(lǐng)域,不僅要滿足實(shí)時(shí)性需求,還要求在計(jì)算機(jī)的軟硬件出現(xiàn)故障時(shí)保證計(jì)算的正確進(jìn)行,否則任務(wù)計(jì)算失敗將會(huì)導(dǎo)致計(jì)算資源的巨大浪費(fèi),因此并行CFD數(shù)值模擬必須具備魯棒性、原子操作性等多方面的可靠性保障。
[0003]目前大部分高性能計(jì)算系統(tǒng)采用集群的方式擴(kuò)展并行計(jì)算能力,在計(jì)算資源規(guī)模擴(kuò)展的同時(shí)帶來了可靠性問題,這使得利用已有的硬件資源實(shí)現(xiàn)高質(zhì)量的軟件容錯(cuò)功能成為重要的亟待解決問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的要解決的技術(shù)問題是提供一種解決并行CFD計(jì)算容錯(cuò)問題為目標(biāo),提高系統(tǒng)容錯(cuò)能力,降低錯(cuò)誤檢測(cè)開銷的方法。
[0005]為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案為,一種基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,包括以下步驟:
[0006]步驟一、初始化
[0007]在CFD軟件中建立兩個(gè)檢查點(diǎn)A與B,分別存貯tl迭代時(shí)刻與t2迭代時(shí)刻的計(jì)算恢見Ih息(tl幸t2);
[0008]在CFD軟件中建立程序計(jì)數(shù)器,記錄檢查點(diǎn)A與B的使用情況;
[0009]步驟二、并行CFD計(jì)算容錯(cuò)方法的的原子操作如下:
[0010]操作1、CFD計(jì)算流程開始,進(jìn)而執(zhí)行操作2 ;
[0011]操作2、程序計(jì)數(shù)器清零,進(jìn)而執(zhí)行操作3 ;
[0012]操作3、向CFD軟件寫入檢查點(diǎn)A中所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作4 ;
[0013]操作4、判斷檢查點(diǎn)A寫入是否成功,若成功則轉(zhuǎn)向操作5,若失敗轉(zhuǎn)向操作6 ;
[0014]操作5、判斷CFD計(jì)算流程是否結(jié)束,若是轉(zhuǎn)向操作15,若否轉(zhuǎn)向操作9 ;
[0015]操作6、檢查程序計(jì)數(shù)器的值是否為零,若是轉(zhuǎn)向操作3,若否轉(zhuǎn)向操作7 ;
[0016]操作7、從檢查點(diǎn)B讀取其所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作8 ;
[0017]操作8、繼續(xù)執(zhí)行CFD計(jì)算流程,完成后轉(zhuǎn)向操作3 ;
[0018]操作9、程序計(jì)數(shù)器加1,進(jìn)而執(zhí)行操作10 ;
[0019]操作10、繼續(xù)執(zhí)行CFD計(jì)算流程,進(jìn)而執(zhí)行操作11 ;
[0020]操作11、向CFD軟件寫入檢查點(diǎn)B中所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作12 ;
[0021]操作12、判斷檢查點(diǎn)B寫入是否成功,若成功轉(zhuǎn)向5,若失敗轉(zhuǎn)向操作13 ;
[0022]操作13、從檢查點(diǎn)A讀取其所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作14 ;
[0023]操作14、繼續(xù)執(zhí)行CFD計(jì)算流程,完成后轉(zhuǎn)向操作10 ;
[0024]操作15、CFD計(jì)算流程計(jì)算結(jié)束。
[0025]所述步驟一中,計(jì)算恢復(fù)信息包括:網(wǎng)格分區(qū)數(shù)信息、網(wǎng)格單元流場(chǎng)計(jì)算信息、迭代步數(shù)信息。
[0026]所述操作5中,判斷計(jì)算流程是否結(jié)束是通過判斷CFD計(jì)算步數(shù)是否達(dá)到所述迭代步數(shù)信息的要求,如果達(dá)到達(dá)到則結(jié)束,否則未結(jié)束。
[0027]所述操作4和操作11中判斷是否寫入成功,是通過在CFD軟件中建立檢查點(diǎn)信息校驗(yàn)機(jī)制,通過全文件遍歷的方式測(cè)試寫入檢查點(diǎn)信息的可用性,進(jìn)而確認(rèn)其是否寫入成功。
[0028]在以所述全文件遍歷的方式測(cè)試寫入檢查點(diǎn)信息的可用性過程中,若文件在遍歷過程中發(fā)現(xiàn)損壞,則校驗(yàn)測(cè)試不通過;若文件完成遍歷檢測(cè),則標(biāo)記該檢查點(diǎn)為可用項(xiàng)。
[0029]本發(fā)明的有益效果:通過注入程序故障信息,發(fā)現(xiàn)該方法可有效解決并行CFD計(jì)算容錯(cuò)問題,提高系統(tǒng)容錯(cuò)能力,降低錯(cuò)誤檢測(cè)開銷。
【附圖說明】
[0030]圖1為本發(fā)明基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法的流程圖。
【具體實(shí)施方式】
[0031]以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步描述。
[0032]本發(fā)明的一種基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,包括以下步驟:
[0033]步驟一、初始化
[0034]在CFD軟件中建立兩個(gè)檢查點(diǎn)A與B,分別存貯tl迭代時(shí)刻與t2迭代時(shí)刻的計(jì)算恢復(fù)信息(tl Φ t2),所述計(jì)算恢復(fù)信息包括:網(wǎng)格分區(qū)數(shù)信息、網(wǎng)格單元流場(chǎng)計(jì)算信息、迭代步數(shù)信息;
[0035]在CFD軟件中建立程序計(jì)數(shù)器,記錄檢查點(diǎn)A與B的使用情況;若程序計(jì)數(shù)器的值不為0,則認(rèn)為程序在執(zhí)行過程中有可用的軟件恢復(fù)點(diǎn);
[0036]步驟二、并行CFD計(jì)算容錯(cuò)方法的的原子操作如下:
[0037]操作1、CFD計(jì)算流程開始,進(jìn)而執(zhí)行操作2 ;
[0038]操作2、程序計(jì)數(shù)器清零,進(jìn)而執(zhí)行操作3 ;
[0039]操作3、向CFD軟件寫入檢查點(diǎn)A中所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作4 ;
[0040]操作4、判斷檢查點(diǎn)A寫入是否成功,若成功則轉(zhuǎn)向操作5,若失敗轉(zhuǎn)向操作6 ;
[0041]操作5、判斷CFD計(jì)算流程是否結(jié)束,若是轉(zhuǎn)向操作15,若否轉(zhuǎn)向操作9 ;
[0042]操作6、檢查程序計(jì)數(shù)器的值是否為零,若是轉(zhuǎn)向操作3,若否轉(zhuǎn)向操作7 ;
[0043]操作7、從檢查點(diǎn)B讀取其所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作8 ;
[0044]操作8、繼續(xù)執(zhí)行CFD計(jì)算流程,完成后轉(zhuǎn)向操作3 ;
[0045]操作9、程序計(jì)數(shù)器加1,進(jìn)而執(zhí)行操作10 ;
[0046]操作10、繼續(xù)執(zhí)行CFD計(jì)算流程,進(jìn)而執(zhí)行操作11 ;
[0047]操作11、向CFD軟件寫入檢查點(diǎn)B中所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作12 ;
[0048]操作12、判斷檢查點(diǎn)B寫入是否成功,若成功轉(zhuǎn)向5,若失敗轉(zhuǎn)向操作13 ;
[0049]操作13、從檢查點(diǎn)A讀取其所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作14 ;
[0050]操作14、繼續(xù)執(zhí)行CFD計(jì)算流程,完成后轉(zhuǎn)向操作10 ;
[0051]操作15、CFD計(jì)算流程計(jì)算結(jié)束。
[0052]所述操作5中,判斷計(jì)算流程是否結(jié)束是通過判斷CFD計(jì)算步數(shù)是否達(dá)到所述迭代步數(shù)信息的要求,如果達(dá)到達(dá)到則結(jié)束,否則未結(jié)束。
[0053]步驟三、所述操作4和操作11中判斷是否寫入成功,是通過在CFD軟件中建立檢查點(diǎn)信息校驗(yàn)機(jī)制,通過全文件遍歷的方式測(cè)試檢查點(diǎn)的可用性,進(jìn)而確認(rèn)其是否寫入成功;
[0054]具體地,若文件在遍歷過程中發(fā)現(xiàn)損壞,則校驗(yàn)測(cè)試不通過;若文件完成遍歷檢測(cè),則標(biāo)記該檢查點(diǎn)為可用項(xiàng);
[0055]本發(fā)明在CFD軟件中建立檢查點(diǎn)A與B的原子互斥寫入操作,即在檢查點(diǎn)A寫入操作失敗時(shí),禁止檢查點(diǎn)B的寫入操作,反之亦然,保證程序在崩潰時(shí)仍然具備至少一個(gè)完整可用的檢查恢復(fù)點(diǎn)信息。
【主權(quán)項(xiàng)】
1.一種基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,其特征在于:包括以下步驟: 步驟一、初始化 在CFD軟件中建立兩個(gè)檢查點(diǎn)A與B,分別存貯tl迭代時(shí)刻與t2迭代時(shí)刻的計(jì)算恢復(fù)?η息(tl ^ t2); 在CFD軟件中建立程序計(jì)數(shù)器,記錄檢查點(diǎn)A與B的使用情況; 步驟二、并行CFD計(jì)算容錯(cuò)方法的的原子操作如下: 操作1、CFD計(jì)算流程開始,進(jìn)而執(zhí)行操作2 ; 操作2、程序計(jì)數(shù)器清零,進(jìn)而執(zhí)行操作3 ; 操作3、向CFD軟件寫入檢查點(diǎn)A中所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作4 ; 操作4、判斷檢查點(diǎn)A寫入是否成功,若成功則轉(zhuǎn)向操作5,若失敗轉(zhuǎn)向操作6 ; 操作5、判斷CFD計(jì)算流程是否結(jié)束,若是轉(zhuǎn)向操作15,若否轉(zhuǎn)向操作9 ; 操作6、檢查程序計(jì)數(shù)器的值是否為零,若是轉(zhuǎn)向操作3,若否轉(zhuǎn)向操作7 ; 操作7、從檢查點(diǎn)B讀取其所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作8 ; 操作8、繼續(xù)執(zhí)行CFD計(jì)算流程,完成后轉(zhuǎn)向操作3 ; 操作9、程序計(jì)數(shù)器加1,進(jìn)而執(zhí)行操作10 ; 操作10、繼續(xù)執(zhí)行CFD計(jì)算流程,進(jìn)而執(zhí)行操作11 ; 操作11、向CFD軟件寫入檢查點(diǎn)B中所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作12 ; 操作12、判斷檢查點(diǎn)B寫入是否成功,若成功轉(zhuǎn)向5,若失敗轉(zhuǎn)向操作13 ; 操作13、從檢查點(diǎn)A讀取其所記錄的計(jì)算恢復(fù)信息,進(jìn)而執(zhí)行操作14 ; 操作14、繼續(xù)執(zhí)行CFD計(jì)算流程,完成后轉(zhuǎn)向操作10 ; 操作15、CFD計(jì)算流程計(jì)算結(jié)束。2.按照權(quán)利要求1所述的基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,其特征在于:所述步驟一中,計(jì)算恢復(fù)信息包括:網(wǎng)格分區(qū)數(shù)信息、網(wǎng)格單元流場(chǎng)計(jì)算信息、迭代步數(shù)信息。3.按照權(quán)利要求1所述的基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,其特征在于:所述操作5中,判斷計(jì)算流程是否結(jié)束是通過判斷CFD計(jì)算步數(shù)是否達(dá)到所述迭代步數(shù)信息的要求,如果達(dá)到達(dá)到則結(jié)束,否則未結(jié)束。4.按照權(quán)利要求1所述的基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,其特征在于:所述操作4和操作11中判斷是否寫入成功,是通過在CFD軟件中建立檢查點(diǎn)信息校驗(yàn)機(jī)制,通過全文件遍歷的方式測(cè)試寫入檢查點(diǎn)信息的可用性,進(jìn)而確認(rèn)其是否寫入成功。5.按照權(quán)利要求4所述的基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,其特征在于:在以所述全文件遍歷的方式測(cè)試寫入檢查點(diǎn)信息的可用性過程中,若文件在遍歷過程中發(fā)現(xiàn)損壞,則校驗(yàn)測(cè)試不通過;若文件完成遍歷檢測(cè),則標(biāo)記該檢查點(diǎn)為可用項(xiàng)。
【專利摘要】本發(fā)明涉及一種基于任務(wù)備份的并行CFD計(jì)算容錯(cuò)方法,包括以下步驟:1.在CFD軟件中建立兩個(gè)檢查點(diǎn)A與B,分別存貯t1迭代時(shí)刻與t2迭代時(shí)刻的計(jì)算恢復(fù)信息;2.進(jìn)行并行CFD計(jì)算容錯(cuò)方法的原子操作,從操作1CFD計(jì)算流程開始至CFD計(jì)算流程計(jì)算結(jié)束;從而實(shí)現(xiàn)通過注入程序故障信息,發(fā)現(xiàn)該方法可有效解決并行CFD計(jì)算容錯(cuò)問題,提高系統(tǒng)容錯(cuò)能力,降低錯(cuò)誤檢測(cè)開銷。
【IPC分類】G06F11/36
【公開號(hào)】CN105630663
【申請(qǐng)?zhí)枴緾N201410601647
【發(fā)明人】張星, 閔昌萬, 王玲, 禹彩輝, 方洪
【申請(qǐng)人】北京臨近空間飛行器系統(tǒng)工程研究所, 中國運(yùn)載火箭技術(shù)研究院
【公開日】2016年6月1日
【申請(qǐng)日】2014年10月30日