一種基于高效能仿真云的容錯方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,特別是涉及一種基于高效能仿真云的容錯方法。
【背景技術(shù)】
[0002]基于HLA的仿真體系結(jié)構(gòu)的尚效能仿真75Γ是一種利用網(wǎng)絡(luò)和專門定制的尚性能仿真計算機硬件,并且仿真遵從HLA高層體系結(jié)構(gòu)的標準,按照仿真用戶的仿真需求,按需組織各種仿真軟件和提供高性能仿真計算節(jié)點的新的仿真模式。高效能仿真云目標是為高端仿真用戶和海量仿真用戶,按需構(gòu)建仿真環(huán)境,每個仿真用戶所需求的仿真環(huán)境不同,如仿真節(jié)點個數(shù),仿真軟件種類等,因此仿真支撐環(huán)境能夠基于高性能計算機為仿真硬件載體,為不同的用戶/租戶構(gòu)建所需的仿真系統(tǒng),并且保證用戶/租戶之間數(shù)據(jù)、模型的隔離高安全特性;并且在大規(guī)模的仿真中,模型與模型之間需要進行協(xié)同、互操作等,因此根據(jù)高性能計算機本身多CPU,多核的特點,將仿真任務(wù)合理的安排到節(jié)點和核上,以提高仿真協(xié)同的高效性。正因為要支持海量的仿真用戶,以及高性能仿真計算機自身的特點,在仿真運行過程中會因為網(wǎng)絡(luò)、計算節(jié)點宕機等問題導(dǎo)致仿真聯(lián)邦或者成員的不正常退出,嚴重影響仿真結(jié)果。大規(guī)模復(fù)雜的仿真系統(tǒng),因為其的模型復(fù)雜且精度高,多實體等特點,一次完整的仿真運行往往需要數(shù)天甚至更久,而高性能計算機本身多核的特點,加上面向多仿真用戶,因此仿真節(jié)點因為硬件本身或者網(wǎng)絡(luò)出錯導(dǎo)致失效的概率很高,如果重新部署仿真環(huán)境,重頭開始仿真運行,勢必浪費極大的時間和計算能力,同時在重新運行的時候也不保證不會出現(xiàn)某個或者多個仿真節(jié)點失效。目前,仿真系統(tǒng)的容錯技術(shù)已經(jīng)研宄多年,包括HLAE規(guī)范也已經(jīng)將仿真容錯收錄到HLA仿真標準中,仿真算法也層出不窮,但目前仿真的容錯技術(shù)主要還集中在理論的高度,在實際的仿真運行運行過程中還未能起到很好的支撐,并且針對高性能計算機自身的特點,也沒有相應(yīng)的解決方法。
[0003]因此,需要提供一種容錯方法,以保證仿真支撐環(huán)境能夠?qū)Ψ抡嫦到y(tǒng)進行容錯,并對出錯模型進行迀移和恢復(fù)運行,使得模型迀移后,整個仿真系統(tǒng)恢復(fù)到失效的前一個狀態(tài)記錄點,繼續(xù)仿真運行。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種基于高效能仿真云的容錯方法,以解決以高性能仿真計算機為載體的仿真運行過程中仿真出錯后快速可靠的識別出錯誤的問題。
[0005]為解決上述技術(shù)問題,本發(fā)明采用下述技術(shù)方案一種基于高效能仿真云的容錯方法,該方法的步驟包括
[0006]根據(jù)仿真采用計算機的特點,確定容錯類型;
[0007]各仿真成員加入仿真系統(tǒng)中,同時創(chuàng)建共享數(shù)據(jù)區(qū)對仿真過程進行記錄;
[0008]利用心跳檢測對各仿真成員是否正常運行,若運行正常,則數(shù)據(jù)共享區(qū)對當(dāng)前數(shù)據(jù)進行記錄并保存,若運行異常,則將整個仿真系統(tǒng)退回至上一個記錄的檢測點;
[0009]判斷異常情況的容錯類型,重新部署仿真模型,單獨對異常的仿真成員進行離線糾錯后,與其他正常的仿真成員一同恢復(fù)仿真運行。
[0010]優(yōu)選的,所述容錯類型包括仿真計算節(jié)點失效、CPU失效和Core失效。
[0011]優(yōu)選的,采用以10秒為一個周期的被動心跳檢測對個仿真成員進行檢測。
[0012]優(yōu)選的,所述仿真記錄的時間點大于心跳周期的時間間隔。
[0013]優(yōu)選的,所述共享數(shù)據(jù)區(qū)記錄存儲的內(nèi)容包括仿真對象、仿真實體交換數(shù)據(jù)的過程以及數(shù)據(jù)細節(jié),并設(shè)置時間保存點。
[0014]優(yōu)選的,所述恢復(fù)仿真運行的步驟包括
[0015]判斷異常情況的容錯類型后,當(dāng)前正常狀態(tài)的仿真成員處于等待狀態(tài);
[0016]異常狀態(tài)的仿真成員重新加入到仿真聯(lián)邦中,并重新從共享數(shù)據(jù)區(qū)中讀取與自己相關(guān)的仿真數(shù)據(jù);
[0017]單獨對異常狀態(tài)的仿真成員從仿真開始進行推進,直至出錯前的上一個記錄的檢測點。
[0018]本發(fā)明的有益效果如下:
[0019]本發(fā)明所述技術(shù)方案實現(xiàn)了在HLA架構(gòu)下的基于高效能仿真云的容錯技術(shù),根據(jù)高效能仿真計算機的特點,對可能出現(xiàn)的仿真錯誤進行了分類;能夠有效的對仿真運行過程中因為網(wǎng)絡(luò),多核架構(gòu)下Core、CUP以及計算節(jié)點失效和高效能仿真計算機宕機引起的仿真成員不正常退出等情況進行有效監(jiān)測;能夠在整個仿真系統(tǒng)運行開始時創(chuàng)建共享的數(shù)據(jù)區(qū),用來存儲仿真中所有仿真對象、仿真實體交換數(shù)據(jù)的過程以及數(shù)據(jù)細節(jié),并設(shè)置時間保存點,在仿真系統(tǒng)回退時候使用;在監(jiān)測到仿真失效的時候,支持仿真對象“離線”恢復(fù),并在恢復(fù)好后加入到仿真系統(tǒng),然后進行“在線”運行,從而整個仿真系統(tǒng)繼續(xù)正常運行。
【附圖說明】
[0020]下面結(jié)合附圖對本發(fā)明的【具體實施方式】作進一步詳細的說明;
[0021]圖1示出基于高性能仿真計算機的容錯分級示意圖;
[0022]圖2示出本發(fā)明實施例中仿真系統(tǒng)容錯過程的示意圖。
【具體實施方式】
[0023]本發(fā)明公開了一種基于高性能仿真云的容錯方法,該方法以高性能仿真計算機為載體,在仿真運行過程中仿真出錯后快速可靠的識別出錯誤,并且對模型進行迀移和恢復(fù)運行,使得整個仿真系統(tǒng)恢復(fù)到失效的前一個狀態(tài)記錄點,繼續(xù)仿真運行,該方法的步驟包括
[0024]基于高性能仿真計算機的仿真錯誤分類
[0025]在復(fù)雜系統(tǒng)高效能仿真中,為了大大縮短仿真周期,因此現(xiàn)在的仿真運行都以高性能計算機作為硬件載體。在HLA高層體系結(jié)構(gòu)的框架下,仿真任務(wù)、仿真聯(lián)邦以及仿真對象會被分配在高性能計算機的不同部分,仿真模型可分別被部署到仿真計算節(jié)點之間,一個仿真計算節(jié)點的多個CPU上,以及小的仿真對象可被分配到一個CPU得core內(nèi),因此,根據(jù)高性能計算機的硬件特點,將容錯分為Core失效、CPU失效和節(jié)點失效三個等級。
[0026]仿真系統(tǒng)的出錯檢測
[0027]本發(fā)明對錯誤的檢查手段是通過心跳機制來檢測的,心跳信息的存在代表目前的仿真成員或者聯(lián)邦處于健康運行狀態(tài)。心跳機制分為兩種:主動心跳和被動心跳,其中主動心跳是在仿真運行的過程中,在周期內(nèi)向運行支撐環(huán)境RTI發(fā)送心跳消息,一旦RTI在幾個周期內(nèi)沒有接收到來自仿真成員的心跳消息,則判斷為該仿真成員出錯;被動心跳則是RTI以廣播形式主動向每個成員進行發(fā)送心跳請求,接受到心跳請求后的成員返回心跳消息,匯報RTI自己是否健康運行。因為高效能仿真云需要為海量用戶提供仿真環(huán)境,并且仿真的系統(tǒng)復(fù)雜、規(guī)模龐大,要求的通訊量巨大,主動心跳要求網(wǎng)絡(luò)開銷會很大,因此本發(fā)明采用被動心跳方式來檢測。并且仿真的推進步長通常是毫米級的,如果每一個步長周期內(nèi)進行心跳檢測,勢必會對網(wǎng)絡(luò)帶來巨大的壓力,因此,可以設(shè)置以10秒為一個周期做一個心跳檢測,這樣既能保證仿真錯誤檢測的可靠性,又能保證不浪費網(wǎng)絡(luò)資源,保證仿真運行的高效性。除此之外,還能夠根據(jù)仿真規(guī)模的大小,動態(tài)的調(diào)整心跳周期,以適應(yīng)不同規(guī)模、不同精度的仿真運行。<