王志佳,李倫波,王嘉春
1(南京理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,南京 210094)
2(北京空間飛行器總體設(shè)計部 信息中心,北京 100094)
航天器型號研制是一個涉及眾多新學(xué)科、新技術(shù),具有耗資大、風(fēng)險高、周期長、技術(shù)復(fù)雜的系統(tǒng)工程.型號設(shè)計階段需要考慮的影響因素較多,在衛(wèi)星總體、分系統(tǒng)和單機(jī)產(chǎn)品之間存在著大量的協(xié)調(diào)和互動關(guān)系,在輸入與輸出之間、參數(shù)與系統(tǒng)功能之間也涉及大量的迭代關(guān)系,通過CAE軟件的仿真分析,極大提高了產(chǎn)品設(shè)計周期,增強(qiáng)了產(chǎn)品可靠性,涵蓋了有效載荷、結(jié)構(gòu)、熱控、能源、姿態(tài)和軌道控制等多個層次和多個環(huán)節(jié)[1].
隨著計算技術(shù)與網(wǎng)絡(luò)技術(shù)的高速發(fā)展和廣泛應(yīng)用.基于高性能計算系統(tǒng)的仿真計算技術(shù),在提高產(chǎn)品的設(shè)計質(zhì)量,降低研究開發(fā)成本,縮短開發(fā)周期方面都發(fā)揮了重要作用,成為了實現(xiàn)產(chǎn)品創(chuàng)新的支撐.然而,仿真計算資源成本的投入逐漸成為企業(yè)成本投入的重中之重,其僅次于人力資源成本投入.雖然購置了高性能的計算設(shè)備,但卻無法保障設(shè)備的充分利用,尤其是一些國外工程軟件,如ANSYS Fluent、MSC Nastran、LS-DYNA等,僅一個并行求解器許可就需要近百萬的花費(fèi),使得企業(yè)競爭能力明顯不足.本文以某航天器制造企業(yè)為項目背景,基于高性能計算系統(tǒng)的資源調(diào)度軟件Platform LSF(Load Sharing Facility),研究面向航天器仿真分析的資源調(diào)度策略優(yōu)化問題,從而提高計算資源利用率以及企業(yè)仿真能力.
在航天器研制領(lǐng)域中,仿真學(xué)科主要涉及力學(xué)分析、熱分析、電磁分析、碰撞分析、電路分析、流體力學(xué)分析等,在用的CAE軟件多為國外產(chǎn)品,多為面向制造行業(yè)進(jìn)行銷售,版權(quán)許可控制極為嚴(yán)格,價格制定非常昂貴,且按照許可證數(shù)量來限制終端用戶的使用權(quán)限,如僅購買了一個許可,那么某個時間僅能一個作業(yè)進(jìn)行計算,直到該作業(yè)計算完畢,釋放許可證資源后,才能計算其他作業(yè).
許可資源已經(jīng)成為制造企業(yè)成本投入的重點.以ANSYS FLUENT為例,一個支持16核并行的Fluent求解器,價格高達(dá)320萬人民幣,針對大型制造企業(yè),以支持50位型號設(shè)計師同時開展流體計算來進(jìn)行估計,僅流體計算軟件就需要上億的資金來購買軟件許可,使得企業(yè)的生產(chǎn)成本過于沉重.同時,隨著高性能計算技術(shù)的不斷發(fā)展,GPU技術(shù)、眾核技術(shù)[2]等新興技術(shù)不斷推出,大大提高了軟件計算性能,為支持新的技術(shù),需要單獨購買軟件的擴(kuò)展許可,對現(xiàn)有許可進(jìn)行升級,通過市場調(diào)研,后期軟件及許可證資源的升級維護(hù),費(fèi)用占據(jù)產(chǎn)品list價格的15%~30%,又將投入大量資金.因此,對于資源調(diào)度策略的進(jìn)一步優(yōu)化和定制,是提高許可資源利用率,使得昂貴的許可證資源能夠充分發(fā)揮效益的必要條件,也是企業(yè)追求精益化生產(chǎn)的必經(jīng)之路.
航天器制造行業(yè)高性能計算既要滿足多人多任務(wù)小作業(yè)的計算需求,也要適應(yīng)更高密度網(wǎng)格的大作業(yè)計算需求,尤其是隨著后續(xù)對模型精度要求的提高、對網(wǎng)格劃分粒度的加大,同時開展作業(yè)人數(shù)的增多,昂貴的CAE許可證資源競爭激烈,對于如何優(yōu)化作業(yè)計算效率成為難點問題,而現(xiàn)有資源調(diào)度算法多數(shù)以用戶公平或用戶權(quán)益角度出發(fā),未針對計算效率進(jìn)行優(yōu)化,導(dǎo)致昂貴的許可證資源使用極其緊張,許可證及計算資源長時間被占用,作業(yè)計算效率較低,需要針對以上的行業(yè)特點來設(shè)計和定制一個滿足需求的調(diào)度算法.
作業(yè)調(diào)度算法是計算集群的大腦,最為常用的調(diào)度算法就是先來先服務(wù)算法,即計算順序嚴(yán)格按照作業(yè)提交順序進(jìn)行,不考慮作業(yè)的緊急程度、作業(yè)大小、優(yōu)先級等一系列因素.隨著應(yīng)用的不斷深入和集群技術(shù)的不斷發(fā)展,作業(yè)調(diào)度算法被不斷改進(jìn),一些高級的調(diào)度算法不斷被提出.例如,國內(nèi)外較為流行的LSF、PBS等作業(yè)調(diào)度管理系統(tǒng)中常用的搶占式調(diào)度、公平式調(diào)度、獨占式調(diào)度、預(yù)約調(diào)度、回填調(diào)度、節(jié)能調(diào)度[3]等.同時,不斷有人基于現(xiàn)有調(diào)度算法進(jìn)行優(yōu)化,進(jìn)一步提升算法性能.任小西等人[4]優(yōu)化了搶占式調(diào)度算法,實現(xiàn)了基于動態(tài)搶占閾值的LSF調(diào)度算法,減小了系統(tǒng)開銷,進(jìn)一步提高了資源利用率;李榮勝等人[5]基于回填調(diào)度提出一種基于價值密度的調(diào)度算法,提高了資源利用率.為進(jìn)一步優(yōu)化資源占用時間,沈萍萍等人[6]提出對已運(yùn)行計算作業(yè)重新調(diào)度的思想,但未考慮作業(yè)規(guī)模的大小,對于航天器仿真分析這種需要同時計算較多大作業(yè)和短作業(yè)的情況,在主機(jī)性能差異較大時,顯然讓高性能主機(jī)計算大型作業(yè)能夠節(jié)省更多計算時間和資源占用時間.
綜上,根據(jù)應(yīng)用的實際,當(dāng)前并無完全滿足應(yīng)用需求的資源調(diào)度算法.基于該情況,本文提出一種新的思路,設(shè)計并實現(xiàn)一種新的基于CPU Factor影響的二次調(diào)度算法,完善了現(xiàn)有作業(yè)調(diào)度算法未動態(tài)考慮高性能運(yùn)算主機(jī)空閑狀態(tài)、未考慮作業(yè)規(guī)模大小的缺陷和不足,進(jìn)一步提升了資源利用率.
算法基于“能者多勞”的思維進(jìn)行設(shè)計,實現(xiàn)將更多的大作業(yè)交由高性能的主機(jī)進(jìn)行處理,提升整體的作業(yè)處理能力,縮短許可證占用時間,避免因主機(jī)性能差異,造成高性能主機(jī)空閑,導(dǎo)致資源浪費(fèi).同時,考慮到作業(yè)調(diào)度的消耗,算法僅針對大作業(yè)開展二次調(diào)度,避免因頻繁調(diào)度而導(dǎo)致的調(diào)度效率的降低.
資源調(diào)度系統(tǒng)在派發(fā)作業(yè)時,總是將作業(yè)調(diào)度到最佳的運(yùn)算主機(jī),以便作業(yè)的運(yùn)算時間最小.資源調(diào)度系統(tǒng)在每次嘗試調(diào)度作業(yè)時,總需要檢測主機(jī)的被派發(fā)資格,需要參考一系列因素,其中主機(jī)負(fù)載水平(CPU Load Average)[7]和主機(jī)性能因子(CPU Factor)最為關(guān)鍵[8].
在面向航天器仿真分析的環(huán)境中,CAE計算作業(yè)多為計算密集型任務(wù)[9],對于CPU的性能要求較高,需要頻繁進(jìn)行計算.考慮到計算效率,已在集群配置文件lsb.hosts中限制了各主機(jī)運(yùn)行的計算作業(yè)數(shù)量不能超過CPU核數(shù),即主機(jī)負(fù)載水平小于等于1,因此在LSF進(jìn)行作業(yè)調(diào)度時,CPU因子成為主要的評估指標(biāo).LSF會將作業(yè)派發(fā)至當(dāng)前情況下空閑且性能最好的主機(jī)上(作業(yè)數(shù)量小于CPU個數(shù)且當(dāng)前CPU因子最高的主機(jī)),當(dāng)這臺主機(jī)的作業(yè)數(shù)量達(dá)到CPU個數(shù)時,才考慮另外一臺空閑且性能最好主機(jī).
在航天器仿真制造過程中,越來越多新研型號需要通過大型模擬仿真實驗進(jìn)行驗證,逐步取消以往用于實驗驗證的航天器,取而代之的是通過大型結(jié)構(gòu)、熱仿真分析實驗等來支撐.在這種應(yīng)用情境下,LSF總是將作業(yè)派發(fā)至當(dāng)前作業(yè)數(shù)量小于CPU個數(shù)且CPU因子最高的主機(jī),并且除了出錯或某些意外的情況,作業(yè)不會在被調(diào)度到其他主機(jī)[10,11].但每個作業(yè)的計算時間幾乎均不相同,隨著時間的推演,運(yùn)算主機(jī)間的空閑情況將不斷變化,此時,即使有空閑且性能更高的主機(jī),作業(yè)也無法遷移,必然造成計算資源的浪費(fèi).尤其是對于大型計算任務(wù),高性能運(yùn)算主機(jī)與低性能運(yùn)算主機(jī)間的差別體現(xiàn)更大.例如,對近1400萬自由度的航天器部件模型(500 Hz內(nèi)2500階模態(tài)),采用全模型標(biāo)準(zhǔn)的模態(tài)頻響應(yīng)分析SOL111進(jìn)行求解,低CPU 因子主機(jī)求解時間長達(dá)26小時.如果采用基于高CPU因子主機(jī)優(yōu)先的二次調(diào)度算法,將大作業(yè)(根據(jù)工程實踐,將運(yùn)行時間超過4小時的計算作業(yè)定義為大作業(yè))重新遷移至高CPU因子的主機(jī)上運(yùn)行,求解時間可以縮減至10小時,將大幅加快作業(yè)運(yùn)行效率,減少對于昂貴的許可證資源的占用,提高系統(tǒng)資源的利用率[12,13].
基于上述思想,考慮對調(diào)度算法進(jìn)行優(yōu)化,實現(xiàn)一種基于CPU因子影響的二次調(diào)度算法.
算法的執(zhí)行過程包括5個步驟,流程如圖1所示.
圖1 基于CPU 因子影響的二次調(diào)度算法調(diào)度流程
(1) 根據(jù)CPU因子值由大到小依次對比各主機(jī)當(dāng)前運(yùn)行作業(yè)數(shù)與允許運(yùn)行的最大作業(yè)數(shù),如果前者等于后者,說明主機(jī)已滿載,不能作為目標(biāo)主機(jī),當(dāng)定位到第一個前者小于后者的主機(jī),可以確定為空閑目標(biāo)主機(jī);如全部主機(jī)的運(yùn)行作業(yè)數(shù)等于最大作業(yè)數(shù),則表示當(dāng)前主機(jī)均已滿載,無法進(jìn)行二次優(yōu)化調(diào)度.
(2) 反向根據(jù)CPU因子的值由小到大依次對比各主機(jī)當(dāng)前運(yùn)行作業(yè)數(shù)與允許運(yùn)行的最大作業(yè)數(shù),當(dāng)?shù)谝淮味ㄎ坏接兄鳈C(jī)當(dāng)前運(yùn)行作業(yè)數(shù)不為零時,可以確定為源主機(jī),如果所有主機(jī)的運(yùn)行作業(yè)數(shù)均為零,則表示當(dāng)前沒有作業(yè)需要進(jìn)行二次調(diào)度.
(3) 遍歷源主機(jī)中的所有作業(yè),對比作業(yè)運(yùn)行時間,當(dāng)?shù)谝淮味ㄎ坏皆粗鳈C(jī)上存在作業(yè)運(yùn)行時間超過240分鐘時(根據(jù)工程實踐,作業(yè)運(yùn)行時間超過240分鐘被定義為大型仿真作業(yè)),可以確定為二次調(diào)度的目標(biāo)作業(yè),鎖定作業(yè)ID.
(4) 通過變量傳遞待轉(zhuǎn)移作業(yè)的ID,設(shè)置候選主機(jī)數(shù)量為1,傳遞候選主機(jī)名稱,最終通過調(diào)用LSF API[14,15]函數(shù)lsb_mig(&mig,&badHostldx),實現(xiàn)將目標(biāo)作業(yè)遷移至目標(biāo)主機(jī),即實現(xiàn)作業(yè)的二次調(diào)度.
(5) 經(jīng)過一個作業(yè)調(diào)度輪詢間隔后,重復(fù)上述過程,持續(xù)尋找需要調(diào)度的作業(yè).
在實際計算環(huán)境中,選取一臺雙路6核的高CPU因子主機(jī)Host_high和一臺雙路6核的低CPU因子主機(jī)Host_low,通過提交相同數(shù)量的同一作業(yè),測試二次優(yōu)化調(diào)度前后的運(yùn)算時間差別.以下時間單位均為分鐘.
單個測試作業(yè)在兩臺主機(jī)上的運(yùn)行時間參數(shù)如表1所示.從表中可以看出,對于短作業(yè)Job1,在高配置主機(jī)和低配置主機(jī)上的運(yùn)行時間差不多;對于大作業(yè)Job2和Job3,在低配主機(jī)和高配主機(jī)上的運(yùn)行時間差別較大.
表1 單個測試作業(yè)運(yùn)行時間差異(單位:分鐘)
測試一:驗證對于運(yùn)行時間小于240分鐘的短作業(yè)算法是否生效.將短作業(yè)Job1復(fù)制8份,同時提交給high主機(jī)和low主機(jī),對比開啟二次調(diào)度與否對作業(yè)Job1運(yùn)行時間的影響,以及作業(yè)總計算時間的差異,結(jié)果如表2所示.從表中可以看出,二次調(diào)度開啟前后作業(yè)的總運(yùn)算時間差異很小,說明為減小二次調(diào)度時間上的損耗,對于短作業(yè)二次調(diào)度算法不生效.
表2 Job1作業(yè)運(yùn)行時間差異(單位:分鐘)
測試二:驗證對于運(yùn)行時間大于240分鐘的大作業(yè)算法是否生效.將Job2復(fù)制8份,同時提交給high主機(jī)和low主機(jī),對比開啟二次調(diào)度與否對作業(yè)Job2運(yùn)行時間的影響,以及作業(yè)總計算時間的差異,結(jié)果如表3所示.從表3中可以看出,對于低配主機(jī)上的運(yùn)行時間超過240分鐘的大作業(yè)被重新調(diào)度到了高配主機(jī)后,總運(yùn)算時間節(jié)省了300分鐘.
表3 Job2作業(yè)運(yùn)行時間差異(單位:分鐘)
測試三:驗證運(yùn)算時間的縮短程度與作業(yè)規(guī)模的關(guān)系.將Job3復(fù)制8份,同時提交給high主機(jī)和low主機(jī),對比開啟二次調(diào)度與否對作業(yè)Job3運(yùn)行時間的影響,以及作業(yè)總計算時間的差異,結(jié)果如表4所示.從表中可以看出,對于低配主機(jī)上的運(yùn)行時間遠(yuǎn)超過240分鐘的大作業(yè)被重新調(diào)度到了高配主機(jī)后,總運(yùn)算時間節(jié)省了827分鐘.
表4 Job3作業(yè)運(yùn)行時間差異(單位:分鐘)
從三次測試數(shù)據(jù)得出如下結(jié)論:
(1) 為保證調(diào)度效率,減少因頻繁調(diào)度導(dǎo)致的調(diào)度效率損耗,對于作業(yè)運(yùn)行時間遠(yuǎn)小于4小時的短計算作業(yè),二次調(diào)度不發(fā)揮作用.
(2) 對于作業(yè)運(yùn)行時間為4小時左右的計算作業(yè),通過大作業(yè)二次優(yōu)化調(diào)度可以降低總運(yùn)行時間約12.6%.
(3) 對于作業(yè)運(yùn)行時間為12小時左右的計算作業(yè),通過大作業(yè)二次優(yōu)化調(diào)度可以降低總運(yùn)行時間約15.27%.
如圖2所示,從圖中可以看出隨著作業(yè)規(guī)模增大,作業(yè)總運(yùn)算時間降低越多.
圖2 作業(yè)總運(yùn)算時間與二次調(diào)度算法的關(guān)系
由此可以推斷,基于CPU因子影響的二次調(diào)度算法適用于CAE仿真等計算密集型任務(wù),一定程度的縮短了大作業(yè)的運(yùn)行時間,且縮短的程度與作業(yè)的規(guī)模呈正比.
目前該算法已應(yīng)用于航天器型號研制仿真分析實踐,例如通信、遙感、導(dǎo)航等領(lǐng)域,不同程度的縮短了型號仿真分析周期.以導(dǎo)航領(lǐng)域某型號衛(wèi)星整星力學(xué)分析為例:模型劃分為500萬網(wǎng)格,應(yīng)用當(dāng)前計算環(huán)境,單個作業(yè)計算時間約需要12小時,同時需開展10個方案進(jìn)行對比論證,還需針對整星開展模態(tài)分析,采用現(xiàn)有先來先服務(wù)算法,一顆衛(wèi)星的整體力學(xué)分析至少需要5天時間.采用基于CPU因子影響的二次調(diào)度算法后,調(diào)度系統(tǒng)充分調(diào)度高性能主機(jī)運(yùn)算能力,動態(tài)的將作業(yè)二次調(diào)度值高性能主機(jī),使得仿真計算時間由5天縮減為3.5天,有效的減少了許可證資源總占用時間,提高了資源利用率.
本文提出一種基于CPU因子影響的二次調(diào)度算法,實現(xiàn)將正在低性能運(yùn)算主機(jī)上運(yùn)行的大作業(yè)遷移至高性能主機(jī)上繼續(xù)運(yùn)行,從而加快大作業(yè)計算效率,縮短作業(yè)運(yùn)行時間,減少對許可證資源的占用時間,提升了許可證資源的利用率,間接的減少了企業(yè)成本投入,具備一定的推廣意義.
1 陳月根.航天器數(shù)字化設(shè)計基礎(chǔ).北京:中國科學(xué)技術(shù)出版社,2010.2-3.
2 周小宇,雒江濤,羅林,等.眾核與Spark結(jié)合的高速流量監(jiān)測系統(tǒng).計算機(jī)系統(tǒng)應(yīng)用,2017,26(6):112-117.
3 Van Den Dooren D,Sys T,Toffolo TAM,et al.Multimachine energy-aware scheduling.EURO Journal on Computational Optimization,2017,5(1-2):285-307.[doi:10.1007/s13675-016-0072-0]
4 任小西,趙公怡.基于動態(tài)搶占閾值的LSF調(diào)度算法.計算機(jī)工程,2012,38(4):275-277,280.
5 李榮勝,趙文峰,徐惠民.價值密度—截止期—回填的網(wǎng)格作業(yè)調(diào)度算法.計算機(jī)應(yīng)用,2010,30(10):2771-2773.
6 沈萍萍,陳珂,張燕,等.分布仿真系統(tǒng)二次調(diào)度負(fù)載均衡策略研究.計算機(jī)仿真,2011,28(9):223-225,290.
7 Teodoro S,Do Carmo AB,Adornes DC,et al.A comparative study of energy-aware scheduling algorithms for computational grids.Journal of Systems and Software,2016,117:153-165.[doi:10.1016/j.jss.2016.02.017]
8 Platform Corporation.Administering and configuring IBM platform LSF.https://www.ibm.com/support/knowledgecen ter/en/SSETD4_9.1.3/lsf_kc_managing.html.[2017-09-25].
9 郝永生,盧俊文,劉冠峰,等.計算密集型與數(shù)據(jù)密集型混合網(wǎng)格作業(yè)調(diào)度算法.計算機(jī)工程與科學(xué),2014,36(8):1423-1429.
10 Goswami S,Das A.Optimization of workload scheduling in computational grid.Proceedings of the 5th International Conference on Frontiers in Intelligent Computing:Theory and Applications.Singapore.2017.
11 王小寧,肖海力,曹榮強(qiáng).面向高性能計算環(huán)境的作業(yè)優(yōu)化調(diào)度模型的設(shè)計與實現(xiàn).計算機(jī)工程與科學(xué),2017,39(4):619-626.
12 鞏子杰,張亞平,張銘棟.分布式計算中基于資源分級的自適應(yīng)Min-Min算法.計算機(jī)應(yīng)用研究,2016,33(3):716-719,725.
13 廖大強(qiáng),鄒杜,印鑒.一種基于優(yōu)先級的網(wǎng)格調(diào)度算法.計算機(jī)工 程 ,2014,40(10):11-16.[doi:10.3778/j.issn.1002-8331.1308-0418]
14 Platform Corporation.LSF API Reference.Platform Computing,2016:77-78.
15 盛樂標(biāo),周慶林.利用LSF API實現(xiàn)高性能計算機(jī)集群的機(jī)時統(tǒng)計.實驗科學(xué)與技術(shù),2014,12(2):50-52,117.