白漢利, 陳曉夢(mèng),2, 蒲 巧,*
(1.中國(guó)空氣動(dòng)力研究與發(fā)展中心, 綿陽(yáng) 621000; 2.西南科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 綿陽(yáng) 621000)
當(dāng)前,我國(guó)經(jīng)濟(jì)發(fā)展已經(jīng)由高速增長(zhǎng)階段進(jìn)入了高質(zhì)量發(fā)展階段,國(guó)家的發(fā)展更加依賴自主創(chuàng)新,尤其是科學(xué)技術(shù)自主創(chuàng)新。在這種宏觀環(huán)境下,我國(guó)航空、航天、兵器、地面交通、能源、環(huán)保、制造等空氣動(dòng)力學(xué)相關(guān)專(zhuān)業(yè)的資助研發(fā)投入大幅增長(zhǎng),各類(lèi)型號(hào)、新產(chǎn)品、新技術(shù)、新概念不斷涌現(xiàn),面臨一系列復(fù)雜的空氣動(dòng)力學(xué)問(wèn)題,迫切需要自主研發(fā)以CFD(Computational Fluid Dynamics)為核心的多學(xué)科耦合的大型軟件系統(tǒng),并配套建設(shè)高性能計(jì)算機(jī)系統(tǒng),構(gòu)建空氣動(dòng)力數(shù)值模擬平臺(tái),形成數(shù)值模擬、數(shù)值試驗(yàn)、數(shù)值飛行、多學(xué)科融合和協(xié)同優(yōu)化等能力,支撐相關(guān)產(chǎn)業(yè)轉(zhuǎn)型升級(jí),這也是國(guó)家數(shù)值風(fēng)洞項(xiàng)目(National Numerical Windtunnel,NNW)致力于解決的問(wèn)題[1-2]。
隨著高性能計(jì)算硬件由P級(jí)計(jì)算(PFLOPS,運(yùn)算速度每秒千萬(wàn)億次)向E級(jí)計(jì)算(EFLOPS,運(yùn)算速度每秒百億億次)發(fā)展[3-4]以及CFD軟件的拓展,其應(yīng)用需求逐漸從單一功能向多學(xué)科耦合模擬、大規(guī)模并行計(jì)算、高精度和高分辨率以及充分利用計(jì)算資源等方面轉(zhuǎn)變。對(duì)此,國(guó)內(nèi)外在提高硬件計(jì)算能力的同時(shí),也對(duì)相關(guān)的CFD軟件和數(shù)值模擬平臺(tái)不斷進(jìn)行更換,使其具備面向E級(jí)計(jì)算機(jī)高性能計(jì)算的能力。如國(guó)外的DLR項(xiàng)目Digital-X,集成了流體力學(xué)模擬、結(jié)構(gòu)力學(xué)模擬、多學(xué)科優(yōu)化等7大領(lǐng)域的軟件包,借助合適的高保真、多學(xué)科仿真方法,通過(guò)數(shù)值計(jì)算,確定飛機(jī)的飛行特性,實(shí)現(xiàn)飛機(jī)在虛擬計(jì)算機(jī)環(huán)境中的首次飛行,降低了實(shí)際研發(fā)成本[5];典型的數(shù)值模擬軟件如ANSYS Workbench、ABAQUS、Nastran等通過(guò)對(duì)高性能計(jì)算環(huán)境中間件的建立[6-7],集成了網(wǎng)格劃分、CFD模擬、后處理技術(shù),實(shí)現(xiàn)了對(duì)流體力學(xué)、結(jié)構(gòu)動(dòng)力學(xué)、結(jié)構(gòu)熱等應(yīng)用場(chǎng)景的分析模擬;國(guó)外開(kāi)發(fā)的科學(xué)計(jì)算工作流系統(tǒng)如Kepler[8]、Trident[9]、Pegasus[10]、Taverna[11]、Vistrails[12]等,支持科研過(guò)程中的復(fù)雜步驟按照邏輯關(guān)系順序進(jìn)行自動(dòng)執(zhí)行計(jì)算與模擬分析,現(xiàn)已在天文、氣象、材料、物理、生物等多個(gè)領(lǐng)域應(yīng)用。
此外,國(guó)內(nèi)陳飆松教授團(tuán)隊(duì)一直致力于計(jì)算力學(xué)的科學(xué)研究和工程應(yīng)用的SiPESC平臺(tái)[13-14],實(shí)現(xiàn)了求解器集成、有限元求解器研發(fā)、性能優(yōu)化等模塊,并完成了大量計(jì)算分析軟件集成案例;安世亞太研發(fā)的多學(xué)科異構(gòu)集成平臺(tái)軟件SimCube[15],支持自主及商業(yè)計(jì)算分析軟件的聯(lián)合仿真、性能優(yōu)化、界面集成、結(jié)果可視化等功能;還有一些公司基于開(kāi)源CFD 模擬仿真軟件和商業(yè)軟件進(jìn)行二次開(kāi)發(fā),對(duì)原有軟件進(jìn)行擴(kuò)展和定制,如藍(lán)威技術(shù)有限公司開(kāi)發(fā)的EasyCAE集成平臺(tái)。但是,目前國(guó)內(nèi)自主研發(fā)的這些軟件或平臺(tái),或是注重功能實(shí)現(xiàn)而未對(duì)擴(kuò)展性和通用性進(jìn)入深入統(tǒng)籌,或是擴(kuò)展性和通用性較差,軟件架構(gòu)需要升級(jí)更新。
因此,為了加快空氣動(dòng)力數(shù)值模擬平臺(tái)的構(gòu)建、提高研究人員的工作效率、軟件的開(kāi)發(fā)效率和實(shí)用性、軟件之間的通信效率以及計(jì)算資源的利用率,作為NNW項(xiàng)目中數(shù)值模擬軟件平臺(tái)的重要組成部分,NNW集成框架系統(tǒng)在研究軟件系統(tǒng)體系結(jié)構(gòu)、集成方法、工作流管理、數(shù)據(jù)交換標(biāo)準(zhǔn)的基礎(chǔ)上,以中間件為框架核心,為軟件系統(tǒng)提供了一個(gè)面向分布式的科學(xué)計(jì)算環(huán)境,實(shí)現(xiàn)了各學(xué)科求解器、前置處理軟件、后置處理軟件的集成,有效地為用戶提供計(jì)算流程配置、計(jì)算工程監(jiān)控管理、數(shù)據(jù)管理功能。
本文第一部分介紹高性能計(jì)算環(huán)境下數(shù)值模擬軟件集成的相關(guān)工作,第二部分介紹NNW集成框架系統(tǒng)的設(shè)計(jì)過(guò)程,第三部分介紹NNW集成框架系統(tǒng)在實(shí)際計(jì)算環(huán)境下的應(yīng)用,第四部分總結(jié)并展望未來(lái)工作。
在科學(xué)計(jì)算領(lǐng)域,由于用戶對(duì)不同軟件操作的熟練度有所差異,以及不同的計(jì)算機(jī)可能存在操作系統(tǒng)不同、應(yīng)用軟件版本不同、軟件之間的數(shù)據(jù)交換格式不統(tǒng)一等情況,因此為用戶提供統(tǒng)一的、易于操作和理解的使用方式,是構(gòu)建面向科學(xué)計(jì)算領(lǐng)域用戶的集成框架的基本要求。另外,提高高性能計(jì)算能力的同時(shí)并高效利用高性能計(jì)算資源、合理調(diào)度和管理作業(yè)及數(shù)據(jù),是科學(xué)計(jì)算領(lǐng)域需要考慮的重點(diǎn)問(wèn)題。
20世紀(jì)90年代末,隨著UNICORE項(xiàng)目的實(shí)現(xiàn)[16]和WebSubmit[17]的首次公開(kāi)發(fā)行,拉開(kāi)了基于Web Portal的高性能計(jì)算應(yīng)用集成的帷幕。由于高性能計(jì)算應(yīng)用具有復(fù)雜多變的特點(diǎn),用戶通過(guò)多個(gè)應(yīng)用軟件交互來(lái)獲取數(shù)據(jù)文件或通過(guò)命令行來(lái)對(duì)作業(yè)進(jìn)行管理時(shí),需要熟悉并掌握相關(guān)的軟件操作或具備豐富的調(diào)試經(jīng)驗(yàn),這不僅對(duì)于用戶極不友好,也不利于科學(xué)計(jì)算研究工作的進(jìn)一步開(kāi)展??紤]到基于Web的圖形化交互界面無(wú)需用戶安裝軟件或編寫(xiě)腳本,在瀏覽器中即可訪問(wèn)應(yīng)用數(shù)據(jù)或資源,因此,繼UNICORE和WebSubmit之后,針對(duì)不同領(lǐng)域的基于Web服務(wù)的高性能計(jì)算研究工作逐漸增多,如美國(guó)國(guó)防部高性能計(jì)算現(xiàn)代化項(xiàng)目HPCMP中提出的基于Web的安全訪問(wèn)以實(shí)現(xiàn)高效的超級(jí)計(jì)算[18],俄羅斯科學(xué)院信息傳輸問(wèn)題研究所提出的基于Web的計(jì)算應(yīng)用程序發(fā)布和分布式執(zhí)行平臺(tái)[19],韓國(guó)科學(xué)技術(shù)研究院提出的用于大規(guī)??茖W(xué)計(jì)算軟件的基于Web的HPC仿真執(zhí)行框架[20],中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心提出的基于Portlet的高性能計(jì)算應(yīng)用集成組件[21]等。
高性能計(jì)算環(huán)境下的設(shè)備、軟件、應(yīng)用和通信技術(shù)等往往具有動(dòng)態(tài)性和異構(gòu)性,其中,解決數(shù)據(jù)的不完整性和多源異構(gòu)性是相關(guān)研究人員關(guān)心的兩大重點(diǎn)問(wèn)題,因此,整合多源數(shù)據(jù)和訪問(wèn)異構(gòu)資源并進(jìn)行集成成為了關(guān)鍵需求,而中間件在屏蔽底層硬件差異、計(jì)算資源的使用差異、集成異構(gòu)數(shù)據(jù)、增加軟件重用性等方面發(fā)揮著重要的作用。為了充分利用高性能計(jì)算資源,降低用戶使用難度,業(yè)界學(xué)者致力于研究不同平臺(tái)和不同領(lǐng)域的中間件研發(fā),如中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心設(shè)計(jì)實(shí)現(xiàn)了面向科學(xué)計(jì)算領(lǐng)域的網(wǎng)格中間件SCE,和優(yōu)化后承載E級(jí)計(jì)算的高性能計(jì)算環(huán)境中間件[22-23],有效地屏蔽了高性能計(jì)算資源在使用和信息方面的異構(gòu),提高了系統(tǒng)的性能,增強(qiáng)了系統(tǒng)的可擴(kuò)展性和穩(wěn)定性。Wan[24]等人通過(guò)開(kāi)發(fā)RFID中間件,將獨(dú)立的功能模塊和分布式數(shù)據(jù)資源集成為可以有序運(yùn)行的系統(tǒng),并在過(guò)程集成中對(duì)數(shù)據(jù)對(duì)象標(biāo)準(zhǔn)化,保證設(shè)計(jì)過(guò)程中數(shù)據(jù)的一致性,實(shí)現(xiàn)數(shù)據(jù)集成,解決數(shù)據(jù)管理和信息傳輸?shù)膯?wèn)題,實(shí)現(xiàn)了用于空氣動(dòng)力學(xué)建模仿真的集成設(shè)計(jì)系統(tǒng)。
此外,國(guó)外Judy Qiu[25]等人實(shí)現(xiàn)了用于數(shù)據(jù)密集型科學(xué)計(jì)算與分析的中間件MIDAS,其提供底層資源管理和異構(gòu)基礎(chǔ)設(shè)施訪問(wèn)層,支持并行數(shù)據(jù)分析庫(kù)在不同資源下跨應(yīng)用程序高效工作。Maddineni[26]等人利用基于SAGA的分布式應(yīng)用運(yùn)行環(huán)境的中間件框架DARE集成了分布式和高性能基礎(chǔ)設(shè)施,其支持動(dòng)態(tài)分配計(jì)算資源,具有可擴(kuò)展性、互操作性、動(dòng)態(tài)執(zhí)行的特點(diǎn),現(xiàn)已被應(yīng)用到多個(gè)完全不同領(lǐng)域的科學(xué)應(yīng)用中,促進(jìn)科學(xué)邏輯與高性能和分布式計(jì)算基礎(chǔ)資源的快速集成。
科學(xué)計(jì)算工作流的實(shí)現(xiàn)對(duì)于科學(xué)計(jì)算具有重要的意義,目前Kepler[8]、Trident[9]、Pegasus[10]、Taverna[11]、Vistrails[12]等典型的科學(xué)工作流管理系統(tǒng)已被廣泛地應(yīng)用到天文學(xué)、物理學(xué)、生物信息學(xué)、地球科學(xué)等領(lǐng)域,它們提供了流程定義與控制、任務(wù)管理、作業(yè)調(diào)度與執(zhí)行、容錯(cuò)處理等功能,屏蔽底層資源,實(shí)現(xiàn)流程化集成,有效地幫助科學(xué)研究人員減少對(duì)流程的部署操作等時(shí)間花費(fèi),專(zhuān)注于具體科學(xué)問(wèn)題的研究,提高求解問(wèn)題的效率。
科學(xué)計(jì)算工作流雖然起源于以流程驅(qū)動(dòng)為主的事務(wù)型工作流,但事務(wù)型工作流和現(xiàn)有的商業(yè)型工作流主要面向流程控制、任務(wù)管理及文檔處理等方面,可重復(fù)性高,而科學(xué)計(jì)算工作流主要面向數(shù)據(jù)密集型的科學(xué)計(jì)算,以數(shù)據(jù)驅(qū)動(dòng)為主,更關(guān)注復(fù)雜的數(shù)據(jù)處理和計(jì)算分析,可重復(fù)性低。由于科學(xué)計(jì)算工作流能夠通過(guò)定義各個(gè)活動(dòng)調(diào)用資源或軟件的方式,有效地建立任務(wù)之間的邏輯關(guān)系和數(shù)據(jù)依賴關(guān)系,快速實(shí)現(xiàn)特定問(wèn)題的科學(xué)計(jì)算,因此,科學(xué)工作流與高性能計(jì)算結(jié)合的相關(guān)研究不斷增多。汪春杰和曹健[27]認(rèn)為Kepler等典型科學(xué)工作流系統(tǒng)雖然提供了常見(jiàn)的應(yīng)用活動(dòng)表示,但是用戶在具體問(wèn)題的流程建模過(guò)程中需要花費(fèi)大量的時(shí)間去熟悉各類(lèi)活動(dòng)節(jié)點(diǎn)的含義及使用方式,對(duì)此,其提出了可擴(kuò)展性較高的ESW應(yīng)用集成統(tǒng)一框架,提高了建模工具的易用性。趙勇[28]等人提出將科學(xué)工作流系統(tǒng)與高性能計(jì)算平臺(tái)相結(jié)合實(shí)現(xiàn)高性能計(jì)算平臺(tái)上的大規(guī)模并行計(jì)算,并通過(guò)Swift工作流系統(tǒng)和Windows HPC Server集成,用NASA MODIS圖片處理工作流分析并驗(yàn)證了該集成方案的可行性。Li和Song[29]提出了一個(gè)靈活且可擴(kuò)展的軟件框架,將模擬仿真應(yīng)用和其他分析應(yīng)用程序集成,共享組件資源,使端到端延遲最小化,并在復(fù)雜的工作流程中提供實(shí)時(shí)插入分析和可視化功能,將其應(yīng)用在湍流的異常檢測(cè)中。
中國(guó)工程物理研究院針對(duì)多領(lǐng)域數(shù)值模擬軟件的封裝、計(jì)算任務(wù)的集成、異構(gòu)資源屏蔽、圖形化交互等問(wèn)題設(shè)計(jì)了適用于高性能計(jì)算環(huán)境的數(shù)值模擬工作流管理平臺(tái)HSWAP[30],并將其應(yīng)用在材料、光學(xué)、力學(xué)等領(lǐng)域,然而其主要針對(duì)文件兼任務(wù)的松耦合,對(duì)于其他數(shù)據(jù)耦合方式還沒(méi)有分析總結(jié)。而NNW集成框架系統(tǒng)主要是面向計(jì)算流體力學(xué)耦合計(jì)算和氣動(dòng)相關(guān)問(wèn)題的模擬,整合相關(guān)數(shù)據(jù)和資源,在工作流的求解器解算過(guò)程中調(diào)用耦合通信框架,提供完整的計(jì)算工具鏈。同時(shí),集成的網(wǎng)格生成軟件提供網(wǎng)格數(shù)據(jù)前置處理,使其可被正確加載到客戶端頁(yè)面進(jìn)行數(shù)據(jù)可視化。
此外,基于STEP的集成方法[31]和基于Agent架構(gòu)的集成方法[32]也被應(yīng)用于異構(gòu)環(huán)境下的軟件集成和數(shù)據(jù)交換等問(wèn)題的解決,但其在擴(kuò)展性方面還有所欠缺。
針對(duì)氣動(dòng)數(shù)值模擬工程對(duì)科學(xué)計(jì)算和仿真與設(shè)計(jì)集成的需求,本文結(jié)合上述三種方法設(shè)計(jì)了面向計(jì)算流體力學(xué)耦合計(jì)算和氣動(dòng)相關(guān)問(wèn)題模擬的NNW集成框架系統(tǒng),在研究軟件系統(tǒng)體系結(jié)構(gòu)、集成方法、工作流管理、數(shù)據(jù)交換標(biāo)準(zhǔn)以及容錯(cuò)機(jī)制的基礎(chǔ)上,以中間件為框架核心,集成各學(xué)科求解器、前置處理和后置處理軟件,整合工作流功能模塊,并提供B/S和C/S兩種交互方式,提高系統(tǒng)的可用性。
集成框架系統(tǒng)主要分為表現(xiàn)層、業(yè)務(wù)層、資源層,表現(xiàn)層為業(yè)務(wù)操作的入口,用戶可以通過(guò)C/S或B/S的模式與整個(gè)平臺(tái)進(jìn)行交互。表現(xiàn)層為用戶提供了工作流建模、建模引擎管理、計(jì)算任務(wù)管理、計(jì)算引擎管理、統(tǒng)計(jì)查詢功能。業(yè)務(wù)層作為整個(gè)分布式交互軟件的橋梁和神經(jīng)系統(tǒng),整合資源層提供各項(xiàng)服務(wù),處理表現(xiàn)層的服務(wù)請(qǐng)求,提供輔助功能;業(yè)務(wù)層的核心為中間件,集成了各款軟件,并整合了工作流引擎、作業(yè)調(diào)度、負(fù)載均衡、組件管理等核心功能。資源層為所有的計(jì)算任務(wù)提供計(jì)算平臺(tái),對(duì)于計(jì)算過(guò)程中產(chǎn)生的中間文檔和整個(gè)計(jì)算過(guò)程進(jìn)行統(tǒng)一的管理。整個(gè)系統(tǒng)的體系結(jié)構(gòu)如圖1所示。資源層和業(yè)務(wù)層及表現(xiàn)層之間的請(qǐng)求服務(wù)過(guò)程如圖2所示,主要以客戶端和服務(wù)端交互的形式表現(xiàn)出來(lái)。
圖1 集成框架系統(tǒng)體系結(jié)構(gòu)
圖2 請(qǐng)求服務(wù)過(guò)程
由于各種數(shù)值模擬軟件存在串行和并行計(jì)算方式的差異、周期長(zhǎng)短的計(jì)算差異、輸入/輸出格式差異、單一運(yùn)行進(jìn)程和多學(xué)科耦合計(jì)算的差異以及不同運(yùn)行環(huán)境的差異,同時(shí)為了便于工作流引擎對(duì)各軟件進(jìn)行流程化管理,通過(guò)統(tǒng)一封裝和制定接口規(guī)范將各計(jì)算軟件、參數(shù)文件、材料庫(kù)以組件化形式進(jìn)行封裝集成,并通過(guò)環(huán)境適配實(shí)現(xiàn)各種組件對(duì)不同計(jì)算機(jī)軟硬件環(huán)境的兼容性。
軟件組件化集成的一般過(guò)程如圖3 所示。主要分為封裝信息抽取過(guò)程和組件封裝過(guò)程兩個(gè)步驟,其中抽取過(guò)程是提取計(jì)算軟件差異化信息的過(guò)程,封裝過(guò)程是平臺(tái)根據(jù)抽取的軟件差異化信息,利用各種軟硬件適配器完成軟件組件化封裝的過(guò)程。
圖3 組件化封裝基本流程
在NNW集成框架系統(tǒng)中,設(shè)計(jì)了工作流計(jì)算引擎對(duì)用戶提交的工作流計(jì)算任務(wù)進(jìn)行管理,并對(duì)工作流計(jì)算任務(wù)要占用的計(jì)算資源、條件限制、計(jì)算時(shí)間等進(jìn)行分析,通過(guò)過(guò)程集成的方式實(shí)現(xiàn)計(jì)算集成、分析集成、數(shù)據(jù)集成。工作流計(jì)算引擎主要分為四個(gè)子模塊,分別是工作流計(jì)算任務(wù)管理器、容錯(cuò)管理器、工作流計(jì)算任務(wù)調(diào)度器、高性能計(jì)算系統(tǒng)接口,其架構(gòu)如圖4所示。
圖4 工作流引擎架構(gòu)
在用戶創(chuàng)建工作流模型后,將其提交到中間件工作流引擎中的工作流計(jì)算任務(wù)管理器中,由于高性能計(jì)算系統(tǒng)不能直接識(shí)別工作流模型,需要將其解析成具體的工作流計(jì)算任務(wù)并決定計(jì)算任務(wù)的執(zhí)行順序,再將其提交到高性能計(jì)算平臺(tái),由Slurm等作業(yè)調(diào)度系統(tǒng)調(diào)度具體物理資源并執(zhí)行計(jì)算。
在工作流計(jì)算任務(wù)被提交后,工作流計(jì)算任務(wù)調(diào)度器根據(jù)動(dòng)態(tài)集成的不同超算系統(tǒng)的作業(yè)調(diào)度方法,調(diào)整作業(yè)執(zhí)行順序,并實(shí)時(shí)監(jiān)控任務(wù)隊(duì)列、計(jì)算資源狀態(tài)、統(tǒng)計(jì)數(shù)據(jù)文件,持續(xù)調(diào)整和優(yōu)化各個(gè)計(jì)算任務(wù)的執(zhí)行順序。當(dāng)任務(wù)執(zhí)行失敗時(shí),及時(shí)對(duì)失敗任務(wù)進(jìn)行恢復(fù)計(jì)算,檢測(cè)其出現(xiàn)的異常類(lèi)型,將發(fā)生的異常記錄到日志信息中進(jìn)行輸出,并通知給任務(wù)提交者,具體的工作流實(shí)例執(zhí)行過(guò)程如圖5所示。
圖5 工作流執(zhí)行邏輯流程圖
在計(jì)算求解程序前,往往需要對(duì)配套的網(wǎng)格參數(shù)文件進(jìn)行前處理并將其可視化。NNW集成框架系統(tǒng)通過(guò)調(diào)用網(wǎng)格處理軟件的接口,將網(wǎng)格文件進(jìn)行前處理。而可視化部分,考慮到大多數(shù)結(jié)構(gòu)網(wǎng)格和非結(jié)構(gòu)網(wǎng)格文件較大,直接進(jìn)行文件傳輸將其顯示到頁(yè)面上容易使I/O消耗大,交換時(shí)間長(zhǎng),造成系統(tǒng)的可讀性下降。因此,在實(shí)現(xiàn)過(guò)程中采用了基于內(nèi)存拷貝的方式來(lái)加載數(shù)據(jù)文件,并將常見(jiàn)的數(shù)據(jù)交換方式寫(xiě)至接口中并隔離到數(shù)據(jù)底層,讀寫(xiě)數(shù)據(jù)時(shí)使用統(tǒng)一的數(shù)據(jù)接口,以此來(lái)減少消耗時(shí)間,增強(qiáng)系統(tǒng)的可讀性和可擴(kuò)展性。
集成框架中調(diào)度類(lèi)型分為任務(wù)調(diào)度和作業(yè)調(diào)度,任務(wù)調(diào)度是針對(duì)工作流層次而言,作業(yè)調(diào)度則用于表示工作流中的計(jì)算任務(wù)。每個(gè)工作流模型被解析為一個(gè)任務(wù)圖,如圖6所示,圖中的每一個(gè)節(jié)點(diǎn)對(duì)應(yīng)為一個(gè)計(jì)算模型,圖中的邊則表示為任務(wù)之間的依賴關(guān)系,即計(jì)算任務(wù)A執(zhí)行結(jié)束后才能執(zhí)行計(jì)算任務(wù)B,若要執(zhí)行計(jì)算任務(wù)D,則需要計(jì)算任務(wù)B、C、G均執(zhí)行結(jié)束才能開(kāi)始。
圖6 有向無(wú)環(huán)圖(DAG)
在集成框架中,每位用戶所提交的工作流計(jì)算任務(wù)都會(huì)被解析為圖6所示的DAG圖,并通過(guò)任務(wù)調(diào)度模塊將其提交給高性能計(jì)算平臺(tái)。當(dāng)只有一個(gè)工作流計(jì)算任務(wù)在執(zhí)行時(shí),調(diào)度較為簡(jiǎn)單,按計(jì)算任務(wù)間依賴關(guān)系調(diào)度即可。而當(dāng)平臺(tái)中同時(shí)有多個(gè)工作流計(jì)算任務(wù)在執(zhí)行時(shí),即同時(shí)處理多個(gè)DAG,調(diào)度模塊則需要根據(jù)計(jì)算資源的占用情況以及平臺(tái)中全局的計(jì)算任務(wù)隊(duì)列情況,按既定優(yōu)化目標(biāo)以及調(diào)度策略進(jìn)行計(jì)算,例如,優(yōu)先保證先提交的工作流計(jì)算任務(wù)完成、優(yōu)先保證高性能計(jì)算資源的整體利用率等,以此來(lái)確定工作流和計(jì)算任務(wù)的調(diào)度序列。
工作流任務(wù)調(diào)度問(wèn)題是典型的NP-hard問(wèn)題,從算法效率和效果兩方面綜合考慮,采用列表啟發(fā)式算法應(yīng)用于該集成框架下的項(xiàng)目場(chǎng)景。列表啟發(fā)式算法主要由任務(wù)優(yōu)先級(jí)排序和計(jì)算資源的選擇這兩步組成,兩個(gè)步驟中采取不同的策略,形成不同的調(diào)度算法。根據(jù)任務(wù)優(yōu)先級(jí)對(duì)任務(wù)進(jìn)行排序時(shí),需要先通過(guò)任務(wù)的相關(guān)屬性來(lái)確定任務(wù)的優(yōu)先級(jí),如表1所示。
表1 計(jì)算任務(wù)優(yōu)先級(jí)排序的屬性
pred(ti)={tj∈T,eji∈E}
(4)
succ(ti)={tj∈T,eij∈E}
(5)
而C表示通信開(kāi)銷(xiāo)集合,可描述為C={ci,j},則任務(wù)ti的上行權(quán)重可以表示為:
(6)
代表著該任務(wù)到終點(diǎn)任務(wù)的關(guān)鍵路徑長(zhǎng)度。下行權(quán)重表示為:
(7)
上行權(quán)重值越大任務(wù)優(yōu)先級(jí)越高,因此,可根據(jù)上行權(quán)重值對(duì)要執(zhí)行的計(jì)算任務(wù)排序,優(yōu)先執(zhí)行級(jí)別高的任務(wù)。計(jì)算資源的選擇采用基于插入策略的最早完成時(shí)間優(yōu)先原則,在空閑的時(shí)間段上插入滿足調(diào)度條件的任務(wù),有效利用計(jì)算資源。
由于CFD相關(guān)問(wèn)題的求解常常涉及多個(gè)參數(shù)且求解過(guò)程復(fù)雜,使用命令行的方式去執(zhí)行任務(wù)計(jì)算對(duì)于用戶而言并不友好,而基于Web的方式在圖形化界面上設(shè)置任務(wù)計(jì)算需要的參數(shù)雖然可行,但當(dāng)多個(gè)任務(wù)執(zhí)行計(jì)算并進(jìn)行調(diào)度時(shí),網(wǎng)格文件、包含邊界條件的文件和其他控制參數(shù)被加載,調(diào)度資源將在Web頁(yè)面頻繁的換入換出,容易導(dǎo)致程序的性能表現(xiàn)變差,因此,對(duì)于驅(qū)動(dòng)整個(gè)流程的執(zhí)行并不適用。
故通過(guò)實(shí)現(xiàn)客戶端應(yīng)用程序,在客戶端的圖形化交互界面上拖拽圖形組件生成工作流流程圖,雙擊組件即可進(jìn)入新的界面來(lái)設(shè)置求解器相關(guān)參數(shù),以耦合計(jì)算為例,具體的執(zhí)行流程如圖7所示。
圖7 基于工作流模型的驅(qū)動(dòng)流程
其中,具體的作業(yè)提交及作業(yè)信息入庫(kù)過(guò)程如圖8所示。在客戶端發(fā)起啟動(dòng)解算器的操作后,由工作流計(jì)算引擎向集群提交作業(yè),并獲取作業(yè)信息,為每個(gè)作業(yè)生成一個(gè)對(duì)應(yīng)的hvJobInfo對(duì)象用于記錄作業(yè)的狀態(tài)信息。之后,工作流計(jì)算引擎將作業(yè)信息對(duì)象提交數(shù)據(jù)管理模塊,由其將作業(yè)信息寫(xiě)入數(shù)據(jù)庫(kù)。
圖8 作業(yè)處理流程
實(shí)際的客戶端操作界面如圖9所示。在驗(yàn)證工作流模型的完整性和邏輯正確性以及接口一致性之后,客戶端為其生成xml格式的工作流描述文件,通過(guò)面向服務(wù)的中間件連接客戶端,解析xml文件中的節(jié)點(diǎn)信息、節(jié)點(diǎn)間連線信息、參數(shù)設(shè)置信息等,加載需要的網(wǎng)格文件,將其提交到高性能計(jì)算平臺(tái)執(zhí)行任務(wù)計(jì)算,并將獲取的作業(yè)信息寫(xiě)入到數(shù)據(jù)庫(kù)中,反饋給客戶端來(lái)監(jiān)控任務(wù)的執(zhí)行狀態(tài)和執(zhí)行時(shí)間等信息。
圖9 工作流模型在客戶端的界面實(shí)現(xiàn)
圖10 計(jì)算結(jié)果示例
此外,對(duì)于無(wú)依賴關(guān)系的單個(gè)可執(zhí)行程序類(lèi)的計(jì)算作業(yè),用戶使用相關(guān)命令提交到高性能計(jì)算平臺(tái)執(zhí)行計(jì)算后,無(wú)需實(shí)時(shí)關(guān)注作業(yè)在計(jì)算平臺(tái)的執(zhí)行情況。中間件通過(guò)與資源層的交互實(shí)時(shí)查詢已提交的作業(yè)信息狀態(tài),并將獲取的結(jié)果顯示在Web界面上便于用戶查詢,如圖11所示。
圖11 Web端查詢作業(yè)隊(duì)列信息
為了評(píng)估該系統(tǒng)流程集成的有效性,我們分別對(duì)短作業(yè)任務(wù)與長(zhǎng)作業(yè)任務(wù)進(jìn)行手動(dòng)執(zhí)行計(jì)算和工作流驅(qū)動(dòng)執(zhí)行計(jì)算,并對(duì)其耗費(fèi)的時(shí)間進(jìn)行了對(duì)比,如圖12和圖13所示。
圖12 短作業(yè)任務(wù)的兩種執(zhí)行方式耗時(shí)對(duì)比
圖13 長(zhǎng)作業(yè)任務(wù)的兩種執(zhí)行方式耗時(shí)對(duì)比
在該評(píng)估試驗(yàn)中,task分為作業(yè)級(jí)任務(wù)和工作流級(jí)任務(wù),我們定義執(zhí)行時(shí)間小于120 min的task為短作業(yè)任務(wù),大于120 min為長(zhǎng)作業(yè)任務(wù)。首先對(duì)8個(gè)執(zhí)行不同CFD計(jì)算的短作業(yè)任務(wù)的兩種執(zhí)行方式進(jìn)行分析,在圖12中,task1和task5是作業(yè)級(jí)任務(wù),其余task均為工作流級(jí)任務(wù)。從圖中可以看出,task1、task3和task5的兩種執(zhí)行方式耗費(fèi)的時(shí)間較為接近,其余task的所有短作業(yè)依次執(zhí)行的時(shí)間總和都要大于工作流驅(qū)動(dòng)作業(yè)執(zhí)行的時(shí)間。
在圖13中,我們對(duì)4個(gè)包含多個(gè)長(zhǎng)作業(yè)且執(zhí)行并行計(jì)算的工作流級(jí)任務(wù)進(jìn)行了兩種執(zhí)行方式的耗時(shí)對(duì)比,從數(shù)據(jù)結(jié)果中可以看出,以工作流驅(qū)動(dòng)作業(yè)執(zhí)行的任務(wù)耗時(shí)明顯比依次執(zhí)行任務(wù)中的作業(yè)的總耗時(shí)要少。從圖中的實(shí)驗(yàn)數(shù)據(jù)和實(shí)際的操作過(guò)程來(lái)看,手動(dòng)實(shí)現(xiàn)任務(wù)的多個(gè)作業(yè)執(zhí)行操作較為繁復(fù),操作者需要間隔地查看任務(wù)是否計(jì)算完成以及當(dāng)前計(jì)算資源是否充足以支持計(jì)算,且不同操作者操作的熟練程度不同,容易導(dǎo)致操作時(shí)間存在一定的差異。而以工作流的方式驅(qū)動(dòng)作業(yè)執(zhí)行能夠?qū)崿F(xiàn)流程的自動(dòng)化執(zhí)行,保證了流程集成的有效性,減少了某些人工操作的耗時(shí),使操作人員更專(zhuān)注于問(wèn)題的解決而不是流程的執(zhí)行過(guò)程。
為了提高研究人員的工作效率和軟件的實(shí)用性,為氣動(dòng)相關(guān)問(wèn)題的求解計(jì)算程序提供配套的前后處理平臺(tái),將前處理軟件、求解計(jì)算程序、后處理軟件集成于統(tǒng)一的集成環(huán)境,提供便于科學(xué)問(wèn)題求解的科學(xué)計(jì)算環(huán)境,設(shè)計(jì)并實(shí)現(xiàn)了面向計(jì)算流體力學(xué)耦合計(jì)算和氣動(dòng)相關(guān)問(wèn)題數(shù)值模擬的NNW集成框架系統(tǒng),提供了基于工作流及數(shù)據(jù)交換中間件的科學(xué)計(jì)算流程組裝及流轉(zhuǎn)控制功能、在高性能計(jì)算平臺(tái)上自動(dòng)化部署及任務(wù)調(diào)度的功能、數(shù)據(jù)文件管理和圖形化交互等功能,目前已將其應(yīng)用在CFD流場(chǎng)計(jì)算、熱計(jì)算、力學(xué)計(jì)算等問(wèn)題上。但對(duì)于工作流層次的調(diào)度方法,暫時(shí)還沒(méi)有對(duì)其進(jìn)行深入研究。后續(xù)工作將在該系統(tǒng)的基礎(chǔ)上,研究如何最大化發(fā)揮高性能計(jì)算平臺(tái)并行計(jì)算的能力。
空氣動(dòng)力學(xué)學(xué)報(bào)2020年6期