国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

超算環(huán)境科學(xué)工作流應(yīng)用的容錯(cuò)*

2020-12-07 09:19李于鋒莫?jiǎng)t堯肖永浩趙士操段博文
關(guān)鍵詞:檢查點(diǎn)高通量錯(cuò)誤

李于鋒,莫?jiǎng)t堯,肖永浩,趙士操,段博文

(1. 中國(guó)工程物理研究院 計(jì)算機(jī)應(yīng)用研究所, 四川 綿陽(yáng) 621900; 2. 北京應(yīng)用物理與計(jì)算數(shù)學(xué)研究所, 北京 100094)

在科學(xué)發(fā)現(xiàn)和工程仿真中,使用一系列相關(guān)軟件完成數(shù)據(jù)收集、建模、模擬、分析成為普遍現(xiàn)象。各步驟間可能有數(shù)據(jù)依賴(lài)或控制依賴(lài)關(guān)系,這些軟件相互協(xié)作才能獲得最終結(jié)果。科學(xué)工作流管理系統(tǒng)對(duì)這些軟件及其數(shù)據(jù)依賴(lài)關(guān)系進(jìn)行組合,并控制各部分在時(shí)間、空間以及資源等約束條件下按序完成,已經(jīng)成為復(fù)雜科學(xué)計(jì)算流程管理的必要手段,有效推動(dòng)了科研進(jìn)展[1]。面向大規(guī)模數(shù)據(jù)集和復(fù)雜計(jì)算流程的超算環(huán)境科學(xué)工作流技術(shù)提供了自動(dòng)化、流程化的方法,并為用戶屏蔽作業(yè)投遞和數(shù)據(jù)傳遞轉(zhuǎn)換等細(xì)節(jié),極大地促進(jìn)了超算環(huán)境和應(yīng)用平臺(tái)的協(xié)同發(fā)展。

在超算環(huán)境中,資源失效是常見(jiàn)現(xiàn)象,如計(jì)算結(jié)點(diǎn)死機(jī)或網(wǎng)絡(luò)模塊出現(xiàn)故障等問(wèn)題造成無(wú)法正常工作等。據(jù)估計(jì)E級(jí)計(jì)算的平均無(wú)故障時(shí)間(Mean Time Between Failure, MTBF)已縮短為數(shù)分鐘[2]。資源失效會(huì)造成任務(wù)和流程中斷執(zhí)行。另外,在復(fù)雜流程(通常表現(xiàn)為稠密大規(guī)模有向圖)中組件數(shù)量大、配置煩瑣,對(duì)系統(tǒng)環(huán)境變量及運(yùn)行參數(shù)有嚴(yán)格要求,用戶使用易出現(xiàn)配置錯(cuò)誤導(dǎo)致軟件組件運(yùn)行異常,也同樣造成任務(wù)運(yùn)行失敗和流程中斷執(zhí)行。如何對(duì)任務(wù)運(yùn)行失敗進(jìn)行預(yù)防或者失敗后進(jìn)行自動(dòng)恢復(fù),以保證流程整體自動(dòng)持續(xù)運(yùn)行,是工作流容錯(cuò)研究的重點(diǎn)問(wèn)題。

容錯(cuò)作為科學(xué)工作流管理系統(tǒng)的重要組成部分,隨著科學(xué)工作流運(yùn)行環(huán)境從單機(jī)、集群、異構(gòu)多集群到云的變遷,涌現(xiàn)出多種容錯(cuò)策略,在不同的運(yùn)行模式下,為工作流平臺(tái)的穩(wěn)定運(yùn)行提供了有力保障。特別是對(duì)于長(zhǎng)時(shí)間運(yùn)行的科學(xué)工作流,或者數(shù)據(jù)處理步驟繁多的流程,提供錯(cuò)誤自動(dòng)恢復(fù)機(jī)制尤為重要。

國(guó)內(nèi)外已經(jīng)出現(xiàn)了很多工作流系統(tǒng)平臺(tái),這些工作流系統(tǒng)都提供了容錯(cuò)相關(guān)的功能。比如美國(guó)加州大學(xué)研究者基于Ptolemy II[3]系統(tǒng)開(kāi)發(fā)的Kepler[4]系統(tǒng),廣泛應(yīng)用于包括生態(tài)學(xué)、分子生物學(xué)、化學(xué)、計(jì)算機(jī)科學(xué)、電子工程和海洋學(xué)等領(lǐng)域;美國(guó)南加州大學(xué)信息科學(xué)研究所開(kāi)發(fā)的系統(tǒng)Pegasus[5],已應(yīng)用于地震及災(zāi)害模擬,引力波探索(Laser Interferometer Gravitational-wave-Observatory, LIGO)等領(lǐng)域;英國(guó)曼切斯特大學(xué)計(jì)算機(jī)科學(xué)學(xué)院開(kāi)發(fā)的Taverna[6]工作流套件,廣泛應(yīng)用于生命科學(xué)等領(lǐng)域;英國(guó)加地夫大學(xué)開(kāi)發(fā)的Triana[7]網(wǎng)格集成計(jì)算環(huán)境,可用于天文學(xué)計(jì)算和網(wǎng)絡(luò)數(shù)據(jù)處理等領(lǐng)域。這些工作流管理系統(tǒng)的容錯(cuò)功能將在本文第二部分進(jìn)行闡述。

為了支持超算環(huán)境下科學(xué)和工程計(jì)算領(lǐng)域數(shù)值模擬流程的高效設(shè)計(jì)與自動(dòng)執(zhí)行,中國(guó)工程物理研究院計(jì)算機(jī)應(yīng)用研究所自主研發(fā)了HSWAP工作流應(yīng)用平臺(tái)[8-9],以高性能應(yīng)用軟件作為組件封裝的基本單位,配置簡(jiǎn)單,部署便捷,支持跨平臺(tái)應(yīng)用的協(xié)作。本文設(shè)計(jì)的容錯(cuò)模型和方法將以HSWAP系統(tǒng)為驗(yàn)證平臺(tái),基于日志分析,利用數(shù)據(jù)驅(qū)動(dòng)的方式實(shí)現(xiàn)了容錯(cuò)功能,為錯(cuò)誤自動(dòng)恢復(fù)、工作流無(wú)間斷運(yùn)行提供了重要支撐。

1 科學(xué)工作流容錯(cuò)的分類(lèi)

工作流系統(tǒng)的容錯(cuò)分為任務(wù)級(jí)和工作流級(jí)[10-11],其中任務(wù)級(jí)又可分為任務(wù)重試、檢查點(diǎn)/重啟動(dòng)、替換資源、多副本運(yùn)行等,工作流級(jí)可分為替換任務(wù)、冗余多任務(wù)、用戶定義的異常處理、基于修復(fù)工作流等。具體分類(lèi)如圖1所示。任務(wù)重試是在任務(wù)出錯(cuò)后,簡(jiǎn)單地重新執(zhí)行該任務(wù),通常會(huì)設(shè)置一個(gè)最大重試次數(shù),即超過(guò)該重試次數(shù)后若還沒(méi)有恢復(fù)成功,則放棄重試。檢查點(diǎn)重啟動(dòng)機(jī)制[12]需要任務(wù)本身支持檢查點(diǎn)重啟動(dòng)功能,在任務(wù)運(yùn)行過(guò)程中進(jìn)行一定間隔的檢查點(diǎn)信息保存,在任務(wù)異常出錯(cuò)后能夠從最近的檢查點(diǎn)恢復(fù)執(zhí)行。替換資源方式是指在任務(wù)運(yùn)行失敗后,切換到其他資源繼續(xù)運(yùn)行該任務(wù),以應(yīng)對(duì)資源失效造成的異常。任務(wù)多副本運(yùn)行是指同一個(gè)任務(wù)(同一實(shí)現(xiàn))在多種資源上同時(shí)運(yùn)行,確保至少有一個(gè)運(yùn)行成功,這是一種預(yù)防失效的方式。工作流級(jí)容錯(cuò)的替換任務(wù)方式是指任務(wù)運(yùn)行失敗后,會(huì)執(zhí)行任務(wù)的另一種實(shí)現(xiàn),該實(shí)現(xiàn)同樣完成原來(lái)任務(wù)的目標(biāo);冗余多任務(wù)是指會(huì)同時(shí)運(yùn)行多個(gè)替換任務(wù),也是預(yù)防失效的方式;用戶定義的異常處理機(jī)制通常是在組件級(jí)別對(duì)出錯(cuò)情況進(jìn)行處理。基于修復(fù)工作流是指工作流執(zhí)行過(guò)程中異常發(fā)生后記錄失敗的任務(wù)信息,生成新的工作流以備后續(xù)提交重新運(yùn)行。

圖1 工作流容錯(cuò)的分類(lèi)Fig.1 Taxonomy of fault tolerance

面向基于數(shù)據(jù)流的科學(xué)工作流管理系統(tǒng),Ustun等[13]提出了多數(shù)據(jù)實(shí)例相關(guān)的容錯(cuò)框架。首先識(shí)別出數(shù)據(jù)處理管線(pipeline)中的錯(cuò)誤模式,提出的恢復(fù)方法包括容許限定次數(shù)的失敗項(xiàng)、以啞數(shù)據(jù)代替因錯(cuò)誤數(shù)據(jù)而不能執(zhí)行的任務(wù)輸出、立即重執(zhí)行錯(cuò)誤任務(wù)(需考慮數(shù)據(jù)實(shí)例依賴(lài)關(guān)系)、依賴(lài)工作流實(shí)例的恢復(fù)(考慮中間數(shù)據(jù)的存儲(chǔ)代價(jià)和生成代價(jià))等。另外,文獻(xiàn)中利用編程語(yǔ)言模型中的異常處理等技術(shù)[14]或研發(fā)新的異常處理語(yǔ)言[15]給容錯(cuò)研究帶來(lái)了新技術(shù)路線,但由于和原工作流系統(tǒng)的緊耦合性,不易推廣。

2 典型工作流系統(tǒng)的容錯(cuò)設(shè)計(jì)

Taverna科學(xué)工作流管理系統(tǒng)中的容錯(cuò)采用了任務(wù)重試和替換任務(wù)兩種策略,任務(wù)重試中工作流設(shè)計(jì)者可定義最大重試次數(shù),該策略也可應(yīng)用于子工作流容錯(cuò);替換任務(wù)允許在任務(wù)重試達(dá)到最大次數(shù)后選擇執(zhí)行一個(gè)不同的任務(wù)。

Triana工作流系統(tǒng)的容錯(cuò)是面向用戶的,如錯(cuò)誤發(fā)生時(shí),會(huì)產(chǎn)生警告信息,并允許用戶修改后繼續(xù)執(zhí)行;在工作流級(jí)支持輕量級(jí)的檢查點(diǎn)/重啟動(dòng)和工作流服務(wù)的選擇。在中間件級(jí)和任務(wù)級(jí),所有預(yù)定義的異常會(huì)被Triana引擎感知(死鎖、活鎖和內(nèi)存泄露除外);在最底層的資源失效方面,借助GridLab GAT工具可以識(shí)別資源失效,但是錯(cuò)誤恢復(fù)機(jī)制還未完善。

Pegasus的容錯(cuò)是基于DAGMan和HTCondor開(kāi)展的。例如,在作業(yè)運(yùn)行錯(cuò)誤后進(jìn)行重試或重新提交處理,通常可以在作業(yè)文件中設(shè)置作業(yè)重試次數(shù)。針對(duì)數(shù)據(jù)傳輸?shù)目煽啃詥?wèn)題,Pegasus傳輸服務(wù)會(huì)首先嘗試高性能的并行傳輸,失敗后會(huì)進(jìn)行更安全的低速單連接傳輸。如果重試次數(shù)已達(dá)最大,將生成修復(fù)工作流待后續(xù)重新運(yùn)行。另外,Pegasus還支持進(jìn)行重新資源規(guī)劃以重用失敗時(shí)已生成的數(shù)據(jù),并通過(guò)調(diào)度任務(wù)到不同資源來(lái)實(shí)現(xiàn)容錯(cuò)。

Kepler科學(xué)工作流系統(tǒng)中的容錯(cuò)是通過(guò)一個(gè)稱(chēng)為Checkpoint的復(fù)合actor實(shí)現(xiàn)的。actor是Kepler中的專(zhuān)有概念,表示一個(gè)執(zhí)行組件。檢查點(diǎn)復(fù)合組件包括一個(gè)子工作流和若干可替換的子工作流,當(dāng)錯(cuò)誤發(fā)生后,發(fā)出錯(cuò)誤時(shí)間信息,檢查點(diǎn)內(nèi)所有工作流停止執(zhí)行并處理錯(cuò)誤,決定是否重運(yùn)行該子工作流或者運(yùn)行一個(gè)可替換的具有同樣功能的子工作流。

已有工作流系統(tǒng)的容錯(cuò)存在的問(wèn)題有:容錯(cuò)生命周期管理不健全,如Taverna、Triana等;容錯(cuò)處理與執(zhí)行任務(wù)緊耦合,擴(kuò)展方式不靈活,如Kepler、Taverna等;沒(méi)有獨(dú)立的容錯(cuò)機(jī)制,依賴(lài)其他(網(wǎng)格基礎(chǔ)設(shè)施提供的)資源管理工具實(shí)現(xiàn),如Pegasus、Triana等。

容錯(cuò)的設(shè)計(jì)需要考慮可靈活配置的錯(cuò)誤恢復(fù)策略、與工作流執(zhí)行引擎的解耦模型、容錯(cuò)處理的全生命周期管理等問(wèn)題。如此設(shè)計(jì)方可將容錯(cuò)服務(wù)功能方便集成到多種科學(xué)工作流系統(tǒng)。HSWAP是面向高性能計(jì)算領(lǐng)域的工作流系統(tǒng)平臺(tái),其以封裝數(shù)值模擬軟件和應(yīng)用形成松耦合、粗粒度的工作流為特色,下文提出的容錯(cuò)模型和方法設(shè)計(jì)在該類(lèi)平臺(tái)上的實(shí)現(xiàn)十分便捷。

3 容錯(cuò)模型和方法設(shè)計(jì)

3.1 容錯(cuò)全生命周期管理

工作流執(zhí)行異常出現(xiàn)后,對(duì)異常的發(fā)生、消息的流轉(zhuǎn)以及針對(duì)異常的處理進(jìn)行全面的分析,有助于給出全面系統(tǒng)的容錯(cuò)方案。容錯(cuò)的生命周期如圖2所示,首先是錯(cuò)誤發(fā)生,生成錯(cuò)誤事件,然后錯(cuò)誤被監(jiān)控工具識(shí)別監(jiān)測(cè),最后進(jìn)入錯(cuò)誤處理流程,包括錯(cuò)誤恢復(fù)策略以及相關(guān)的恢復(fù)動(dòng)作。

圖2 容錯(cuò)全生命周期管理Fig.2 Full period management of fault tolerance

為支持容錯(cuò),工作流系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)考慮異常狀態(tài)管理以及錯(cuò)誤信息的傳遞,比如錯(cuò)誤發(fā)生后,流程執(zhí)行中斷進(jìn)入待恢復(fù)狀態(tài),還要考慮錯(cuò)誤事件的描述,事件消息的發(fā)出和相應(yīng)的消息跟蹤。容錯(cuò)處理流程的過(guò)程如圖3所示,包括異常信息監(jiān)測(cè)、錯(cuò)誤信息識(shí)別、錯(cuò)誤信息分類(lèi)、錯(cuò)誤恢復(fù)處理四種主要的功能步驟。

圖3 容錯(cuò)處理流程Fig.3 Fault handling process

異常信息監(jiān)測(cè)是指異常事件消息發(fā)出后,容錯(cuò)模塊能夠感知和探測(cè)到異常;錯(cuò)誤信息識(shí)別則是從工作流系統(tǒng)日志等記錄中有效識(shí)別出錯(cuò)誤信息;錯(cuò)誤信息分類(lèi)則是為了進(jìn)一步的容錯(cuò)處理縮小處理方式范圍;錯(cuò)誤恢復(fù)處理則是采取相應(yīng)的執(zhí)行動(dòng)作,以使得工作流從中斷暫停狀態(tài)轉(zhuǎn)移至繼續(xù)執(zhí)行或等待用戶救援狀態(tài)。

3.2 基于決策樹(shù)的ECA容錯(cuò)模型

異常處理可以采用基于事件-條件-動(dòng)作(Event-Condition-Action,ECA)的模型[10]構(gòu)建。ECA模型如圖4所示,針對(duì)不同的錯(cuò)誤事件,在不同的條件下執(zhí)行相應(yīng)的動(dòng)作。

圖4 ECA模型Fig.4 ECA model

在ECA模型中,事件集表示所有發(fā)生的事件,每類(lèi)事件都有一個(gè)明確的標(biāo)識(shí),表明相應(yīng)的信息,比如任務(wù)運(yùn)行失敗、網(wǎng)絡(luò)服務(wù)超時(shí)等異常信息。條件集里的條件表明當(dāng)前工作流系統(tǒng)的運(yùn)行狀態(tài)和運(yùn)行環(huán)境,比如工作流引擎是否停止響應(yīng)、資源是否可用等。動(dòng)作集里的動(dòng)作表明實(shí)現(xiàn)錯(cuò)誤恢復(fù)需要執(zhí)行的命令,可以是單個(gè)命令,也可以是多步驟的多條命令組合成的復(fù)合動(dòng)作。ECA模型具有很好的靈活性,針對(duì)同一事件,對(duì)應(yīng)不同的條件下,則可執(zhí)行不同的動(dòng)作指令;在相同條件下,不同事件也可對(duì)應(yīng)不同的動(dòng)作指令。

在異常事件和環(huán)境條件可監(jiān)測(cè)、可探察的前提下,靈活配置錯(cuò)誤恢復(fù)動(dòng)作是ECA模型的特色。本文擴(kuò)展了簡(jiǎn)單的ECA模型,使得事件發(fā)生后,可以結(jié)合多個(gè)條件來(lái)最終選擇相應(yīng)的動(dòng)作執(zhí)行。具體地,引入決策樹(shù)算法,基于決策樹(shù)高效實(shí)現(xiàn)事件-條件集合到動(dòng)作集合的映射?;跊Q策樹(shù)的錯(cuò)誤恢復(fù)動(dòng)作選擇示例如圖5所示。

圖5 基于決策樹(shù)的錯(cuò)誤恢復(fù)Fig.5 Failure recovery based on decision tree model

基于決策樹(shù)模型設(shè)計(jì)的錯(cuò)誤恢復(fù)針對(duì)每個(gè)事件都有一顆不同的決策樹(shù)。允許不同的事件有不同的處理邏輯,比如圖5中事件1的處理邏輯必須判斷兩個(gè)條件才能給出最終的恢復(fù)動(dòng)作,而事件2在條件3滿足的前提下只需判斷一個(gè)條件就可以決定恢復(fù)動(dòng)作。另外,不同事件的決策順序也不相同,圖5中事件1需要先判斷條件1,然后判斷條件2或條件3;而事件2則先判斷條件3,然后視結(jié)果可能判斷條件1。如此設(shè)計(jì)有助于減少環(huán)境探查,快速?zèng)Q定錯(cuò)誤恢復(fù)動(dòng)作。具體的執(zhí)行動(dòng)作決策如算法1所示。

算法1中決策變量是指某一個(gè)條件的布爾值,即對(duì)任一條件,都有兩個(gè)狀態(tài)表示是否滿足。比如計(jì)算結(jié)點(diǎn)網(wǎng)絡(luò)故障不可達(dá)(無(wú)法連接)、計(jì)算結(jié)點(diǎn)可連接兩個(gè)狀態(tài),每個(gè)狀態(tài)下都有后續(xù)不同的處理邏輯。

算法1 容錯(cuò)動(dòng)作決策

3.3 錯(cuò)誤信息和恢復(fù)動(dòng)作

針對(duì)超算環(huán)境科學(xué)工作流系統(tǒng)的執(zhí)行特征,設(shè)計(jì)了錯(cuò)誤事件信息的要素,如圖6所示。錯(cuò)誤信息包括錯(cuò)誤信息的發(fā)出位置、出錯(cuò)模塊、引入環(huán)境、產(chǎn)生時(shí)間、發(fā)生頻率、嚴(yán)重等級(jí)、造成影響等七個(gè)維度。

圖6 錯(cuò)誤信息要素Fig.6 Elements of fault information

雖然錯(cuò)誤信息包含的要素較多,但在實(shí)際工作流執(zhí)行過(guò)程中能夠獲得的信息卻是有限的,需要建立日志系統(tǒng)來(lái)存儲(chǔ)和分析歷史錯(cuò)誤信息,補(bǔ)充相對(duì)完整的錯(cuò)誤信息,方便后續(xù)的錯(cuò)誤恢復(fù)策略選擇決策。

圖7 錯(cuò)誤恢復(fù)處理方式Fig.7 Failure recovery methods

容錯(cuò)設(shè)計(jì)考慮了在發(fā)生異常事件后可配置不同的處理方式。支持的處理方式如圖7所示,有重試、替換、重啟動(dòng)、錯(cuò)誤傳播、忽略、標(biāo)注和用戶介入七類(lèi)。重試又包括任務(wù)重試和子流程重試,任務(wù)重試表示僅重運(yùn)行出錯(cuò)任務(wù),子流程重試則重運(yùn)行出錯(cuò)任務(wù)所在的子流程(工作流的一個(gè)子結(jié)構(gòu))。替換類(lèi)的處理包括替換資源、替換任務(wù)和替換子流程。替換資源表示同一任務(wù)在不同的資源上重運(yùn)行;替換任務(wù)表示選擇執(zhí)行另一個(gè)具有同樣功能但不同實(shí)現(xiàn)的任務(wù);替換子工作流則表示選擇執(zhí)行另一個(gè)具有相同功能的子工作流執(zhí)行。重啟動(dòng)(或稱(chēng)檢查點(diǎn)-重啟動(dòng))方式一般需要任務(wù)實(shí)現(xiàn)支持,在任務(wù)運(yùn)行過(guò)程中,會(huì)以一定間隔保留后續(xù)恢復(fù)時(shí)所需的數(shù)據(jù)信息(檢查點(diǎn)信息記錄),在錯(cuò)誤恢復(fù)時(shí),會(huì)從檢查點(diǎn)處重新加載信息繼續(xù)執(zhí)行而不會(huì)從頭開(kāi)始計(jì)算。錯(cuò)誤傳播是指將錯(cuò)誤信息從出錯(cuò)任務(wù)所在的執(zhí)行模塊傳遞到工作流系統(tǒng)引擎、用戶界面以及日志系統(tǒng)(將來(lái)可能通過(guò)網(wǎng)絡(luò)遠(yuǎn)程傳輸給客戶端或其他系統(tǒng))。對(duì)于一些不影響流程主要功能完成度的異常信息,可采取忽略的處理措施。對(duì)于未知異常,可采取標(biāo)注的方式記錄異常出現(xiàn)的場(chǎng)景及其造成的影響等信息。當(dāng)任務(wù)配置參數(shù)出現(xiàn)錯(cuò)誤引發(fā)異常時(shí),通常需要用戶介入,以用戶的專(zhuān)業(yè)知識(shí)修正任務(wù)配置參數(shù),才能夠達(dá)到錯(cuò)誤恢復(fù)的目的,這可通過(guò)科學(xué)工作流的“人在回路”(human in the loop)等技術(shù)實(shí)現(xiàn)。

3.4 容錯(cuò)與科學(xué)工作流系統(tǒng)的關(guān)系

異常信息和處理方法、處理策略設(shè)計(jì)好之后,應(yīng)該考慮如何將容錯(cuò)與科學(xué)工作流系統(tǒng)進(jìn)行有效融合,既能有效發(fā)揮出容錯(cuò)的重要作用,又不影響原有工作流系統(tǒng)的設(shè)計(jì)。本文提出如圖8所示的設(shè)計(jì)架構(gòu)來(lái)確定各子系統(tǒng)間的關(guān)系。容錯(cuò)服務(wù)和科學(xué)工作流引擎獨(dú)立開(kāi)發(fā)和部署,基于遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call,RPC)和日志服務(wù)及消息來(lái)進(jìn)行交互。

圖8 容錯(cuò)與科學(xué)工作流系統(tǒng)的關(guān)系Fig.8 Fault tolerance architecture in HSWAP

異常事件發(fā)生后,由監(jiān)控模塊探測(cè)到錯(cuò)誤信息,生成錯(cuò)誤事件傳遞給科學(xué)工作流引擎,進(jìn)而形成錯(cuò)誤事件信息,并將該信息發(fā)送至日志服務(wù)器(可基于 Elastic Search-Logstash構(gòu)建)。容錯(cuò)服務(wù)會(huì)間隔輪詢(xún)?nèi)罩痉?wù)獲得所有出錯(cuò)事件,并用預(yù)先配置好的錯(cuò)誤恢復(fù)準(zhǔn)則進(jìn)行錯(cuò)誤分析,然后觸發(fā)錯(cuò)誤恢復(fù)動(dòng)作,完成錯(cuò)誤恢復(fù)。

如此的容錯(cuò)架構(gòu)設(shè)計(jì)有三方面的優(yōu)點(diǎn):一是模塊化,將容錯(cuò)服務(wù)與工作流管理系統(tǒng)和日志系統(tǒng)解耦,實(shí)現(xiàn)了松耦合以及容錯(cuò)模塊可插拔、可替換的目的;二是服務(wù)化,將所有錯(cuò)誤統(tǒng)一集中管理,并實(shí)現(xiàn)了高并發(fā)的處理邏輯,可同時(shí)處理不同用戶、不同工作流實(shí)例的錯(cuò)誤恢復(fù);三是單向消息機(jī)制,數(shù)據(jù)傳輸代價(jià)小、效率高、邏輯清晰,在實(shí)際系統(tǒng)開(kāi)發(fā)中簡(jiǎn)單實(shí)用。

4 容錯(cuò)在HSWAP系統(tǒng)的實(shí)現(xiàn)與驗(yàn)證

4.1 HSWAP簡(jiǎn)介

HSWAP是中國(guó)工程物理研究院計(jì)算機(jī)應(yīng)用研究所開(kāi)發(fā)的超算連貫計(jì)算引擎[8-9],旨在HPC環(huán)境中使用科學(xué)工作流技術(shù)提供集成的超算服務(wù)模式助力科研人員提高工作效率?;贖SWAP開(kāi)發(fā)的石油地震勘探平臺(tái)以及材料高通量計(jì)算平臺(tái)等行業(yè)計(jì)算平臺(tái),已在實(shí)際項(xiàng)目中得到應(yīng)用并發(fā)揮了重要作用。

HSWAP的主要特色是為超算用戶屏蔽使用超算系統(tǒng)的復(fù)雜性,以計(jì)算軟件為基本封裝單位形成可復(fù)用組件,進(jìn)而實(shí)現(xiàn)靈活可定制業(yè)務(wù)流程的功能。流程以有向無(wú)環(huán)圖(Directed Acyclic Graph, DAG)表達(dá),實(shí)現(xiàn)流程中結(jié)點(diǎn)間依賴(lài)管理和數(shù)據(jù)自動(dòng)傳遞和轉(zhuǎn)換功能。平臺(tái)的架構(gòu)和相關(guān)模型如圖9所示。

4.2 HSWAP的容錯(cuò)實(shí)現(xiàn)和驗(yàn)證

HSWAP平臺(tái)提供了日志系統(tǒng),這為實(shí)現(xiàn)上文提出的容錯(cuò)架構(gòu)提供了方便。引擎執(zhí)行過(guò)程中,會(huì)通過(guò)Logstash服務(wù)將運(yùn)行時(shí)相關(guān)信息寫(xiě)入Elastic Search數(shù)據(jù)庫(kù),相關(guān)信息在容錯(cuò)模塊可以用來(lái)進(jìn)行容錯(cuò)動(dòng)作決策。

(a) HSWAP的模塊架構(gòu)(a) Architecture of HSWAP

(b) HSWAP的流程和組件模型(b) Workflow and component models of HSWAP圖9 HSWAP平臺(tái)的架構(gòu)和業(yè)務(wù)模型Fig.9 Architecture and models of HSWAP

在HSWAP中提供了基于數(shù)據(jù)完整性校驗(yàn)的兩類(lèi)錯(cuò)誤識(shí)別和恢復(fù)方法。在超算系統(tǒng)中,任務(wù)作業(yè)退出后,是否正常完成任務(wù)目標(biāo)需要多方面的考慮,其中數(shù)據(jù)完整性是最常見(jiàn)的判別標(biāo)準(zhǔn)之一,特別是對(duì)于數(shù)值模擬仿真類(lèi)任務(wù),生成完整而正確的數(shù)據(jù)文件幾乎是唯一的標(biāo)準(zhǔn)?;跀?shù)據(jù)判別的容錯(cuò)流程如圖10所示,分為三個(gè)步驟,即出錯(cuò)標(biāo)識(shí)、信息收集、錯(cuò)誤恢復(fù)。

圖10 基于數(shù)據(jù)完整性校驗(yàn)的容錯(cuò)流程Fig.10 Fault tolerance based on integrity of data

基于數(shù)據(jù)完整性校驗(yàn)的出錯(cuò)標(biāo)識(shí)在HSWAP工作流引擎中完成,主要是利用工作流組件的自定義配置功能,對(duì)不同的任務(wù)配置不同的數(shù)據(jù)完整性校驗(yàn)策略,比如數(shù)據(jù)體量、數(shù)據(jù)結(jié)束標(biāo)識(shí)監(jiān)測(cè)等,當(dāng)數(shù)據(jù)完整性不達(dá)標(biāo)時(shí),發(fā)出錯(cuò)誤信息。日志信息會(huì)收集所有任務(wù)運(yùn)行上下文信息,以便容錯(cuò)模塊對(duì)錯(cuò)誤進(jìn)行分析定位。容錯(cuò)服務(wù)根據(jù)出錯(cuò)事件,基于可配置的ECA規(guī)則(如圖11所示),執(zhí)行錯(cuò)誤恢復(fù)邏輯,最后通過(guò)HSWAP引擎接口調(diào)用自動(dòng)恢復(fù)流程執(zhí)行。

圖11 錯(cuò)誤恢復(fù)策略配置文件示例Fig.11 Example for fault tolerance strategy

面向單個(gè)數(shù)值模擬任務(wù)的檢查點(diǎn)-重啟動(dòng)錯(cuò)誤恢復(fù)方式在HSWAP的實(shí)現(xiàn)流程如圖12所示。流程執(zhí)行監(jiān)控、結(jié)果文件正確性校驗(yàn)、重啟動(dòng)參數(shù)配置和輸入文件準(zhǔn)備、重投遞運(yùn)行等一系列過(guò)程自動(dòng)化執(zhí)行,無(wú)須人工干預(yù)。實(shí)際使用中結(jié)合重試、重啟動(dòng)兩種方式,解決了資源不穩(wěn)定等問(wèn)題引起的執(zhí)行中斷問(wèn)題。

圖12 基于檢查點(diǎn)-重啟動(dòng)的容錯(cuò)Fig.12 Fault tolerance based on checkpoint-restart

HSWAP平臺(tái)針對(duì)材料計(jì)算等領(lǐng)域高通量計(jì)算模式提供了特有支持,功能包括數(shù)百上千并行任務(wù)的并發(fā)投遞、監(jiān)控和容錯(cuò)。高通量計(jì)算模式如圖13(a)所示,一般表現(xiàn)為大量并發(fā)執(zhí)行的相似任務(wù),用于材料分子篩選等參數(shù)掃描類(lèi)計(jì)算或大數(shù)據(jù)分析等領(lǐng)域。在容錯(cuò)設(shè)計(jì)上,用戶可定義高通量計(jì)算出錯(cuò)的判別標(biāo)準(zhǔn),如以計(jì)算完成百分比作為失敗閾值(fail_threshold)。當(dāng)高通量并發(fā)任務(wù)失敗比例(fail_ratio)超過(guò)此閾值,標(biāo)識(shí)任務(wù)失敗,并重啟動(dòng)失敗部分的任務(wù)計(jì)算,完成容錯(cuò)恢復(fù)執(zhí)行。高通量計(jì)算的失敗比例定義為式(1),其中num_all為該高通量所并發(fā)執(zhí)行的所有子任務(wù)(或稱(chēng)計(jì)算實(shí)例)數(shù),num_failed為其中運(yùn)行失敗的子任務(wù)數(shù)。

(1)

例如,若對(duì)某高通量計(jì)算任務(wù),需要并發(fā)執(zhí)行100次不同的通量計(jì)算(可能為不同參數(shù)運(yùn)行同一軟件組件),設(shè)失敗閾值為20%,若100個(gè)計(jì)算實(shí)例中失敗數(shù)為20以下,則認(rèn)為該高通量計(jì)算成功運(yùn)行,不進(jìn)入容錯(cuò)處理;若失敗數(shù)為30,此時(shí)失敗比例大于失敗閾值,進(jìn)入容錯(cuò)處理過(guò)程,只需要重試或重啟動(dòng)運(yùn)行失敗的30個(gè)計(jì)算子任務(wù),運(yùn)行完畢重復(fù)容錯(cuò)過(guò)程,直到滿足高通量計(jì)算任務(wù)的成功運(yùn)行閾值標(biāo)準(zhǔn),或者達(dá)到最大重試次數(shù)并報(bào)告錯(cuò)誤信息。

HSWAP平臺(tái)針對(duì)高通量計(jì)算的容錯(cuò)過(guò)程如圖13(b)所示,其中失敗閾值設(shè)為20%,每個(gè)圖標(biāo)表示同一高通量計(jì)算任務(wù)在不同時(shí)刻的狀態(tài),圖標(biāo)上部表示子任務(wù)數(shù)目及狀態(tài),藍(lán)色為正在運(yùn)行,紅色為失敗,灰色為成功結(jié)束。實(shí)測(cè)結(jié)果表明容錯(cuò)模塊能夠正確識(shí)別錯(cuò)誤,并按要求重運(yùn)行失敗的任務(wù),滿足自動(dòng)恢復(fù)運(yùn)行的需求。

(a) 高通量計(jì)算模式(a) High throughput computing pattern

(b) 高通量計(jì)算的容錯(cuò)(b) Fault tolerance of high throughput computing圖13 高通量計(jì)算及其容錯(cuò)Fig.13 High throughput computing and fault tolerance

復(fù)雜超算應(yīng)用具有計(jì)算規(guī)模大、運(yùn)行時(shí)間長(zhǎng)等特征,高通量計(jì)算等復(fù)雜流程也愈加普遍。由于機(jī)器故障,程序參數(shù)配置錯(cuò)誤等異常造成運(yùn)行中斷現(xiàn)象常常出現(xiàn)。依靠人工查看、修改配置、重新投遞作業(yè)的方式進(jìn)行錯(cuò)誤恢復(fù),會(huì)嚴(yán)重影響執(zhí)行效率。在某百萬(wàn)億次超算平臺(tái)上,某工程項(xiàng)目中沖擊波計(jì)算程序的實(shí)際運(yùn)行情況統(tǒng)計(jì)如表1所示。

表1中人工重啟動(dòng)間隔是指在任務(wù)失敗后開(kāi)始計(jì)時(shí),直到人工發(fā)現(xiàn)錯(cuò)誤并投遞作業(yè),再次投遞排隊(duì)后繼續(xù)運(yùn)行的時(shí)間。由于作業(yè)可能在深夜或凌晨中斷運(yùn)行而用戶無(wú)法及時(shí)發(fā)現(xiàn),加之重投作業(yè)造成再次排隊(duì)等待時(shí)間,實(shí)際應(yīng)用的完成時(shí)間就會(huì)大幅增長(zhǎng),自動(dòng)容錯(cuò)技術(shù)能夠縮減人工重啟動(dòng)間隔時(shí)間,顯著縮短工程仿真或其他科學(xué)研究領(lǐng)域的計(jì)算周期。

表1 某沖擊波計(jì)算任務(wù)的容錯(cuò)效率Tab.1 Performance and fault tolerance of some shock computing software

5 結(jié)論

本文針對(duì)超算環(huán)境中工作流應(yīng)用的容錯(cuò)機(jī)制展開(kāi)討論,調(diào)研了容錯(cuò)在典型科學(xué)工作流系統(tǒng)的實(shí)現(xiàn)方式以及容錯(cuò)的分類(lèi)。提出了完整的容錯(cuò)生命周期模型;在事件-條件-動(dòng)作的處理邏輯基礎(chǔ)上,提出了可配置的基于決策樹(shù)的錯(cuò)誤恢復(fù)模型;設(shè)計(jì)并實(shí)現(xiàn)了模塊化、可擴(kuò)展的科學(xué)工作流系統(tǒng)容錯(cuò)架構(gòu)。本文提出的容錯(cuò)模型已在自主研發(fā)的超算環(huán)境工作流管理系統(tǒng)HSWAP中實(shí)現(xiàn)。面向單個(gè)任務(wù)和高通量任務(wù)應(yīng)用場(chǎng)景分別給出了容錯(cuò)實(shí)現(xiàn)策略,并通過(guò)實(shí)際算例在超算平臺(tái)上驗(yàn)證了容錯(cuò)對(duì)于提高流程執(zhí)行效率的作用。目前實(shí)現(xiàn)的工作流系統(tǒng)和容錯(cuò)模塊并沒(méi)有系統(tǒng)軟件的權(quán)限,作為應(yīng)用級(jí)系統(tǒng),無(wú)須系統(tǒng)管理員權(quán)限就可方便部署,助力加速科研和工程實(shí)踐過(guò)程;但是未能進(jìn)行超算平臺(tái)軟硬件基礎(chǔ)設(shè)施的健康信息探查,提供給錯(cuò)誤信息分析模塊的信息還不夠全面,僅從應(yīng)用的視角實(shí)現(xiàn)了錯(cuò)誤日志分析功能。下一步的工作將包括全面探測(cè)底層軟硬件系統(tǒng)和應(yīng)用各模塊的運(yùn)行信息,給出更準(zhǔn)確的出錯(cuò)原因分析。另外,基于可靠性感知的調(diào)度方案設(shè)計(jì)以及云上容錯(cuò)[16-18]也是值得深入研究的技術(shù)方向。

猜你喜歡
檢查點(diǎn)高通量錯(cuò)誤
Spark效用感知的檢查點(diǎn)緩存并行清理策略①
在錯(cuò)誤中成長(zhǎng)
免疫檢查點(diǎn)抑制劑相關(guān)內(nèi)分泌代謝疾病
高通量血液透析臨床研究進(jìn)展
Ka頻段高通量衛(wèi)星在鐵路通信中的應(yīng)用探討
中國(guó)通信衛(wèi)星開(kāi)啟高通量時(shí)代
分層檢查點(diǎn)的近似最優(yōu)周期計(jì)算模型
分布式任務(wù)管理系統(tǒng)中檢查點(diǎn)的設(shè)計(jì)
護(hù)理干預(yù)在高通量血液透析患者中的應(yīng)用效果
不犯同樣錯(cuò)誤
乐安县| 板桥市| 疏勒县| 卢龙县| 县级市| 宣汉县| 井冈山市| 公主岭市| 石屏县| 乐陵市| 奈曼旗| 宜章县| 昌江| 巴彦淖尔市| 新竹市| 阳曲县| 敦化市| 安徽省| 西平县| 拜城县| 安顺市| 广宁县| 云阳县| 琼海市| 株洲市| 凤凰县| 仪征市| 阳曲县| 临清市| 辽源市| 贡嘎县| 凤凰县| 陈巴尔虎旗| 元朗区| 大邑县| 唐海县| 尤溪县| 利津县| 许昌县| 枣庄市| 哈尔滨市|