亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        地球科學(xué)大規(guī)模并行應(yīng)用的重疊存儲優(yōu)化

        2019-04-18 05:14:46陳璟錕杜云飛
        計算機(jī)研究與發(fā)展 2019年4期
        關(guān)鍵詞:結(jié)點(diǎn)進(jìn)程網(wǎng)格

        陳璟錕 杜云飛

        (國家超級計算廣州中心(中山大學(xué)) 廣州 510006)

        對提升大規(guī)模并行計算規(guī)模與效率的研究和優(yōu)化通常集中在算法的設(shè)計和優(yōu)化上,比如在地球科學(xué)類程序中,通過特別的網(wǎng)格劃分以更好地實(shí)現(xiàn)負(fù)載均衡和壓縮通信的研究仍然長盛不衰[1].然而各種算法的加速比測試往往略去了I/O的占用時間,比如設(shè)置了超過計算時間的輸出間隔、關(guān)閉結(jié)尾輸出等.但在實(shí)際應(yīng)用中,研究者通常需要獲得一個可以描述連續(xù)變化的過程而非一個最終狀態(tài)結(jié)果.這就要求模式在迭代計算過程中定期輸出中間狀態(tài)、輸入邊界數(shù)據(jù)進(jìn)行同化以提高結(jié)果準(zhǔn)確性和輸出數(shù)個檢查點(diǎn)以應(yīng)對長時間運(yùn)行可能碰到的硬件故障.所以,地球科學(xué)類軟件很早就被意識到是一種I/O敏感型的應(yīng)用[2].

        地球科學(xué)研究者往往缺乏足夠的時間和意愿去系統(tǒng)地學(xué)習(xí)與研究大規(guī)模并行程序的編寫,他們更愿意把主要精力放在對科學(xué)問題的研究上.因此地球科學(xué)模擬軟件最常見的輸出方式是簡單地將信息收集到根進(jìn)程,由根進(jìn)程整理并完成串行輸出.然而這種輸出方式會極大地限制程序在大規(guī)模計算時的性能表現(xiàn).因?yàn)镮/O時間不會隨著進(jìn)程數(shù)的增加而下降,所以I/O時間占總時間的比例會越來越高,最終嚴(yán)重地削弱了峰值性能.在一些算例中,甚至?xí)霈F(xiàn)I/O時間遠(yuǎn)超計算時間的情況.這除了讓科研工作者浪費(fèi)時間和金錢外,更大的負(fù)面影響是在精細(xì)化數(shù)值預(yù)報領(lǐng)域,不但降低了數(shù)值預(yù)報的時效性,還增加了對硬件資源的需求并且提高了維護(hù)工作的難度.

        在過去的數(shù)10年中,計算機(jī)科學(xué)家為了克服地球物理科學(xué)模擬的存儲墻問題進(jìn)行多種研究,最終形成的主流共識是:1)由并行I/O取代串行I/O;2)將I/O和計算重疊[2];3)優(yōu)化必須是通用且輕量級的.因?yàn)橛嬎氵M(jìn)程的數(shù)據(jù)保存順序和文件存儲順序不同,所以需要建立一個緩存機(jī)制將每個進(jìn)程的數(shù)據(jù)進(jìn)行重新排列后再做并行輸出,由此誕生了收集式I/O的思路[3].收集式I/O的具體實(shí)現(xiàn)還能細(xì)分為采用本地硬盤作為緩存[4]和設(shè)立I/O結(jié)點(diǎn)作為緩存2種[5].這些思路還繼續(xù)發(fā)展并影響到新一代超級計算機(jī)的并行文件系統(tǒng)設(shè)計[6].為了讓收集式I/O發(fā)揮出這種并行文件系統(tǒng)的性能,計算科學(xué)家又在并行讀寫(MPI-IO)的基礎(chǔ)上根據(jù)I/O結(jié)點(diǎn)的具體硬件架構(gòu)進(jìn)一步開發(fā)了更高級的并行I/O庫[7-10],比如輕便的收集式并行I/O庫ROMIO[7].因?yàn)槭占絀/O的全過程可再分為通信收集和并行讀寫2部分,所以后續(xù)又有許多工作分別針對收集過程[11-12]和如何隱藏讀寫過程[13-15].

        上述研究基本圍繞著底層硬件和基礎(chǔ)庫,這給程序的移植帶來了方便.但在實(shí)際的應(yīng)用當(dāng)中,地球科學(xué)軟件往往會采用以常用科學(xué)數(shù)據(jù)格式存儲數(shù)據(jù),比如NetCDF(network common data form),HDF5(hierarchical data format 5)等.這些文件格式庫的數(shù)據(jù)收集性能在大規(guī)模計算下是無法保證的,而且缺乏異步輸出的能力.這使得存儲墻對現(xiàn)今的地球科學(xué)大規(guī)模計算的負(fù)面影響依然非常嚴(yán)重,極端條件下甚至?xí)霈F(xiàn)超過80%的墻鐘時間是在輸出的情況.雖然有相當(dāng)多工作在努力地提升并行I/O的讀寫性能[16],但單從底層對I/O進(jìn)行優(yōu)化依然不足以克服存儲墻問題,我們還需要對應(yīng)用軟件的訪存行為做出優(yōu)化.

        本文就是從應(yīng)用層出發(fā),參考主-從架構(gòu)[17],通過設(shè)立I/O進(jìn)程[18]、分離I/O過程和計算過程以實(shí)現(xiàn)對地球科學(xué)軟件的訪存優(yōu)化.本文將按照3方面組織:1)如何從應(yīng)用層面設(shè)計一個重疊存儲以適應(yīng)在天河二號上進(jìn)行大規(guī)模計算;2)將詳細(xì)闡述這種優(yōu)化是如何提升WRF(weather research & forecasting mode)的I/O性能,并證明其有效性;3)將這種優(yōu)化移植到ROMS_AGRIF(regional ocean modeling system_adaptative grid refinement in Fortran)和GRAPES(global/regional assimilation and PrEdiction system),以證明它的普遍性.

        1 重疊存儲優(yōu)化地球科學(xué)軟件輸出

        因?yàn)榈厍蚩茖W(xué)的性質(zhì),其模擬過程往往是首先讀入初始條件,然后進(jìn)入迭代循環(huán),每當(dāng)?shù)诌_(dá)設(shè)定好的輸出時間時將進(jìn)行一次中間狀態(tài)輸出,直到循環(huán)到達(dá)終止時間.這意味著輸出的開銷會遠(yuǎn)大于輸入,因此,我們先將精力集中在輸出優(yōu)化上.

        現(xiàn)在我們面臨的情況是輸出所花費(fèi)的時間是一步迭代的數(shù)倍甚至數(shù)10倍,但一般也不會超過一個輸出周期.因此,我們的想法是將輸出過程和迭代計算分離,并確保一個輸出間隔內(nèi)完成輸出,就是讓輸出隱藏在計算中,實(shí)現(xiàn)輸出優(yōu)化的目標(biāo).這樣我們就不需要去追求并行輸出的極限速度,優(yōu)化難度會減輕許多.

        為了達(dá)成這個目標(biāo),我們進(jìn)一步細(xì)分整個思路:

        1) 建立專用的I/O進(jìn)程,以實(shí)現(xiàn)輸出和計算同時進(jìn)行.

        2) I/O進(jìn)程通過收集通信gather收集數(shù)據(jù).

        3) 因?yàn)間ather是堵塞型通信,所以會暴露通信.

        4) 根據(jù)最小生成樹算法(minimum-spanning tree algorithm, MST),需要建立多個I/O進(jìn)程以減少gather通信的消耗.

        5) 多個I/O進(jìn)程之間使用并行I/O完成輸出.

        6) 由思路4,5可知,多個I/O進(jìn)程和計算進(jìn)程如何分組要符合連續(xù)讀寫的原則.

        7) I/O進(jìn)程應(yīng)該分布在不同物理結(jié)點(diǎn).

        8) 通過劃分新通信域從而實(shí)現(xiàn)不同功能進(jìn)程的混合分組.

        思路1是實(shí)現(xiàn)輸出和計算重疊的基礎(chǔ),雖然MPI-IO提供有非堵塞讀寫(MPI_FILE_iread(iwrite)_at)等接口,但NetCDF和HDF5并沒有使用.我們采用的gather通信方式會暴露通信時間,但帶來的好處是減輕結(jié)點(diǎn)內(nèi)存的壓力以及減少程序編寫的復(fù)雜性.又因?yàn)間ather通信是MST算法,耗時正比于進(jìn)程數(shù)的數(shù)量,所以需要設(shè)置多個I/O進(jìn)程,每個I/O進(jìn)程只負(fù)責(zé)收集部分計算進(jìn)程的數(shù)據(jù),以將通信開銷抑制到可以接受的程度.思路5是我們要讓每次輸出耗時一定要小于一個輸出間隔.雖然從理論上無法完備地證明任何情況下并行輸出就能滿足輸出耗時小于輸出間隔,但在實(shí)際的地球物理模擬中并不需要每一步迭代完畢后都要輸出.在絕大部分情況下輸出間隔的墻鐘時間的量級都在10~100 s,而相應(yīng)的輸出量在1~20 GB.所以我們在此選擇并行輸出,既可以滿足現(xiàn)實(shí)應(yīng)用中的絕大部分情況而且還留有相當(dāng)富余的性能空間以應(yīng)對未來的性能需求.為了發(fā)揮并行輸出的性能,就產(chǎn)生了思路6的要求.思路7是為了突破單結(jié)點(diǎn)的物理內(nèi)存限制和通信帶寬限制.思路8是為了方便管理不同種類的進(jìn)程和減少對核心算法的修改,只需要將計算進(jìn)程歸入一個全新的通信域,并用其代替核心算法中原來的全局通信域(MPI_COMM_WORLD)就可完成修改.

        從上述的修改流程中可以看到這種優(yōu)化方法有4種好處:1)相當(dāng)于在原來的程序上外接了一個功能包,不涉及修改核心算法的邏輯;2)對核心算法的修改只有通信域的名字,這使得我們可以在不明白模型和算法細(xì)節(jié)的情況下也能完成重疊存儲優(yōu)化,這也是優(yōu)化方法具有通用性的一個表現(xiàn);3)在通信域劃分時已經(jīng)考慮了后續(xù)并行輸出的速度問題,減少磁盤讀寫競爭問題;4)更加充分地利用了超級計算機(jī)的硬件,突破單結(jié)點(diǎn)帶來的網(wǎng)絡(luò)帶寬和內(nèi)存瓶頸.

        2 WRF的IO優(yōu)化

        WRF是目前國內(nèi)與國際上最流行的中尺度天氣預(yù)報研究軟件之一,是典型的地球科學(xué)類軟件.WRF從3.0版本就開始考慮大規(guī)模計算下的輸出問題,它同樣通過提供設(shè)置額外I/O進(jìn)程的方式實(shí)現(xiàn)優(yōu)化.假設(shè)我們將I/O進(jìn)程設(shè)為2,并為作業(yè)提供總計12個進(jìn)程,而運(yùn)行作業(yè)的超級計算機(jī)每個結(jié)點(diǎn)具有6個CPU核.那設(shè)置I/O進(jìn)程前后的WRF進(jìn)程分配如圖1(a)和圖1(b),反映到具體的物理CPU核劃分如圖1(c).

        圖1(a)(b)(d)中,每一列代表一個進(jìn)程,圓形(黑色)箭頭代表迭代計算過程,菱形 (綠色)箭頭代表通信,長方形(紅色)代表輸出過程,虛線代表計算進(jìn)程空閑;圖1(c)(e)中,深色(藍(lán)色)方塊代表一個計算進(jìn)程,淺色(黃色)陰影方塊代表一個I/O進(jìn)程,褐色線條圍成的區(qū)域代表通信域的劃分.圖1(a)沒有I/O進(jìn)程,由根進(jìn)程負(fù)責(zé)輸出2個結(jié)果文件;圖1(b)設(shè)置了2個I/O進(jìn)程,但只有第2個文件的輸出與計算實(shí)現(xiàn)重疊;圖1(c)不同類型進(jìn)程在12個CPU核上的分布和數(shù)據(jù)收集通信域的劃分;圖1(d)優(yōu)化后的輸出流程;圖1(e)優(yōu)化后不同類型進(jìn)程在12個CPU核上的分布和新的數(shù)據(jù)收集通信域劃分.

        圖1(a)展示了在沒有I/O進(jìn)程時,根進(jìn)程負(fù)責(zé)完成數(shù)據(jù)的收集并輸出結(jié)果,在整個收集-輸出的過程,其余進(jìn)程除了發(fā)送數(shù)據(jù)的操作外都處于閑置狀態(tài).圖1(b)表示設(shè)置了2個I/O進(jìn)程后,每當(dāng)進(jìn)入預(yù)設(shè)的輸出時間點(diǎn),計算進(jìn)程都會將數(shù)據(jù)發(fā)送給I/O進(jìn)程,隨后由I/O進(jìn)程完成數(shù)據(jù)整理和并行輸出.每個I/O進(jìn)程都只會接收到處于同一個通信域的計算進(jìn)程的數(shù)據(jù),數(shù)據(jù)收集通信域的劃分如圖1(c).對比圖1(a)和圖1(b)我們就能發(fā)現(xiàn)原設(shè)計的第1個問題.雖然在設(shè)置了通信進(jìn)程后,最后1個文件的輸出時間和計算時間發(fā)生了重疊,對輸出時間占比有所改善,但除最后1個文件外,其他文件的輸出時間仍然暴露在外.WRF的文件輸出順序是第1層網(wǎng)格—第2層網(wǎng)格—第3層網(wǎng)格.通常研究者會將第3層網(wǎng)格設(shè)置得最為密集,其結(jié)果文件也是最大,輸出耗時最長.這使得原版的設(shè)計在部分情況下已經(jīng)取得了比較明顯的效果.但該設(shè)計卻不適合2種情況:情況1是不同層網(wǎng)格的格點(diǎn)數(shù)相差不大,只是格點(diǎn)間代表的距離不同;情況2是研究者設(shè)置了輔助變量輸出,輸出順序變成先輸出1層網(wǎng)格的數(shù)據(jù),再收集該層的輔助變量數(shù)據(jù)并另開1個新文件保存.情況2會使得只有最后1層的輔助變量文件成功被隱藏,而一般輔助數(shù)據(jù)文件都遠(yuǎn)小于主要數(shù)據(jù),是否隱藏意義不大.原設(shè)計的另1個問題是所有的I/O進(jìn)程都安排在最后,如圖1(c)所示,這往往意味著I/O進(jìn)程會放在同一個結(jié)點(diǎn).雖然放在同一個結(jié)點(diǎn)對于收集式I/O是一種理想情況,但卻也有通信和內(nèi)存這2個瓶頸.

        Fig. 1 Cartoon of WRF’s workflow圖1 WRF的工作示意圖

        針對這2個問題,我們首先選擇調(diào)整I/O進(jìn)程的工作順序.每進(jìn)入1次新的收集-輸出時間點(diǎn),I/O進(jìn)程先全部接收本次輸出的所有數(shù)據(jù),然后才開始逐一整理并輸出到硬盤.如此調(diào)整后,除最后1次輸出外,其余時間點(diǎn)的輸出將全部實(shí)現(xiàn)隱藏,只剩余收集通信暴露在外,如圖1(d)所示.

        為了抑制收集通信gather的耗時,根據(jù)MST算法的特點(diǎn),我們一是可以增加更多的I/O進(jìn)程以減少每個I/O進(jìn)程負(fù)責(zé)的計算進(jìn)程數(shù),二是可以將I/O進(jìn)程分布在各個不同的結(jié)點(diǎn)以變相提高通信帶寬.為此,我們引入1個可由使用者設(shè)定的分布值,可主動控制I/O進(jìn)程的分布程度.如果設(shè)置為1,則如同原設(shè)計一般讓所有I/O進(jìn)程排列在最后;如果設(shè)置為2,則意味著12個進(jìn)程被分為2組,每組最后的2/2=1個進(jìn)程為I/O進(jìn)程,效果如圖1(e),成功利用了2個結(jié)點(diǎn)的通信帶寬.

        自古嫦娥愛少年,這個騷貨沒準(zhǔn)看上你啦,想讓你做鴨子哩,她一天到晚就是一個人晃蕩,沒見過她老公,這熊事,她還不知道是個啥人哩。這樣的女人,看她那嘴,像剛喝過雞血似的鬼,咱可不能招惹,她男人萬一是個道上的,要?dú)⒛銊幠?,讓你缺胳膊少腿,可甭怨我這個叔沒給你打預(yù)防針。

        3 WRF算例測試結(jié)果

        我們使用超級計算機(jī)天河二號作為性能測試平臺,它具有17 920個計算結(jié)點(diǎn),每個結(jié)點(diǎn)的配置為2路24 CPU核,單核頻率2.2 GHz,4路64 GB內(nèi)存,自主研發(fā)的高速互聯(lián)具有點(diǎn)點(diǎn)帶寬140 Gbps,采用層次式Lustre文件系統(tǒng),在存儲服務(wù)器(OSS)和計算結(jié)點(diǎn)間還有1層配備了固態(tài)硬盤(SSD)的I/O結(jié)點(diǎn)用于加速存儲性能.

        我們選用的WRF測試算例為模擬全中國2015-07-27T12:00:00—2015-07-30T12:00:00共72小時的天氣變化,每90 s為1個模擬步.3層嵌套網(wǎng)格:220×180×45,481×391×45,1 216×895×45,每層網(wǎng)格的相鄰格點(diǎn)間距分別為45 000 m,15 000 m,5 000 m.每層網(wǎng)格的輸出間隔均為1 h,采用PNetCDF庫并行輸出NetCDF格式文件,沒有輔助變量輸出,條帶數(shù)設(shè)置為4.我們使用的WRF版本為3.6.1,但其關(guān)于輸出的代碼與3.7.1相同,與3.8.1和3.9相似.我們的編譯器為Intel-14,WRF模式選擇em_real,只允許根進(jìn)程輸出日志信息.

        Fig. 2 Performance of WRF after output optimization圖2 輸出優(yōu)化后的WRF性能圖

        我們選擇3種設(shè)定以對比優(yōu)化效果,分別是:原版無I/O進(jìn)程、原版帶2個I/O進(jìn)程、優(yōu)化版帶2個I/O進(jìn)程并且分布值為2.第1種設(shè)定的輸出方式為NetCDF,而后兩者均為PNetCDF.我們的測試結(jié)果如圖2所示.每一組柱狀圖從左起按順序分別代表第1,2,3種設(shè)定方案.橫坐標(biāo)代表計算進(jìn)程數(shù),所以每一組柱狀圖的第2和第3條使用的總進(jìn)程數(shù)實(shí)為計算進(jìn)程數(shù)加2.從圖2可以看到隨著進(jìn)程數(shù)的增加,輸出占總時間的比會越來越高,即使在超過了性能峰值后仍具有這種情況.原版程序在設(shè)置了I/O進(jìn)程后,在3072進(jìn)程時的性能提升了約19.8%,但還是能明顯看到輸出時間.在對輸出做了優(yōu)化后,峰值性能再次獲得約11.4%的提升,相比無I/O進(jìn)程時則是提升了約33.5%.這證明了我們的輸出優(yōu)化是有效且可行,達(dá)到了預(yù)想的效果.

        我們還能從圖2看到,隨著進(jìn)程數(shù)的增加,暴露的收集通信時間也在增長,尤其是從進(jìn)程3 072提升到6 144時最為明顯.我們進(jìn)一步測試在不同I/O進(jìn)程數(shù)和不同分布值下收集通信時間的變化情況,并將結(jié)果整理成表1.

        Table 1 Effect of Output Tasks and Splits表1 IO進(jìn)程數(shù)和分布值的影響

        Table 1 Effect of Output Tasks and Splits表1 IO進(jìn)程數(shù)和分布值的影響

        ComputationTasksI∕OTasksDistributionValueCommunicationTime∕s6144219036144228666144101646144102396144105416144101039

        從表1我們可以看到,在相同分布值下10個I/O進(jìn)程的通信開銷遠(yuǎn)低于2個,主要原因就是gather通信開銷和進(jìn)程數(shù)直接相關(guān).增加I/O進(jìn)程數(shù)意味著每個I/O進(jìn)程負(fù)擔(dān)的計算進(jìn)程數(shù)變少,自然gather通信開銷也會相應(yīng)地減小.在同I/O進(jìn)程數(shù)不同分布值下,通信開銷也會有一定的下降,這表明我們的修改確實(shí)更有效地利用了帶寬.但因?yàn)楸纠拥耐ㄐ帕坎⒉淮?,所以還是進(jìn)程數(shù)數(shù)量導(dǎo)致的開銷占據(jù)主導(dǎo).

        我們?yōu)橥瓿蓤D1和表1的測試,選擇了在計算進(jìn)程保持一致的基礎(chǔ)上設(shè)置額外I/O進(jìn)程.這樣可以保證計算的穩(wěn)定性,但也帶來總進(jìn)程數(shù)不一致的問題.由此,我們還可以引出另外1個問題:總進(jìn)程數(shù)一致的情況下,如何分配I/O進(jìn)程和計算進(jìn)程是最優(yōu)解?

        在討論這個問題前,我們有必要先解釋為什么會選擇固定計算進(jìn)程數(shù)的做法.這是因?yàn)閃RF的負(fù)載均衡策略是將計算進(jìn)程數(shù)分解為2個盡可能相近的因數(shù),并利用它們完成xy平面的劃分.但如果這2個因數(shù)相差較大時,這個簡單的負(fù)載均衡策略就會極容易引起程序崩潰.假設(shè)現(xiàn)在從6 144個進(jìn)程數(shù)中劃分出10個I/O進(jìn)程,那6 134只能被分解為2×3 067,進(jìn)而導(dǎo)致作業(yè)崩潰.所以當(dāng)總進(jìn)程數(shù)一定時,I/O進(jìn)程數(shù)的設(shè)置還必須考慮負(fù)載均衡策略,不能只考慮通信開銷和計算時間之間的競爭.在此基礎(chǔ)上,我們做出表2.

        從表2可得,計算與I/O進(jìn)程的數(shù)量比在1 000∶1至500∶1間能取得最優(yōu)效果.我們認(rèn)為這是天河二號硬件性能參數(shù)下的特解,不同系統(tǒng)應(yīng)該會有不同的結(jié)果.

        Table 2 Performance of Different IO Processes NumbersUnder Constant Total Processes Number

        表2 總進(jìn)程數(shù)不變下不同IO進(jìn)程數(shù)的表現(xiàn)

        Table 2 Performance of Different IO Processes NumbersUnder Constant Total Processes Number

        ComputationTasksI∕OTasksComputationTime∕sCommunicationTime∕s6141312067.2346.466138612038.490.5761321212161.140.376120241224027.28

        4 對同類軟件的優(yōu)化

        4.1 ROMS_AGRIF

        ROMS是國際上知名的海洋模擬軟件,它具有多個分支.其中的1個分支ROMS_AGRIF由法國研究小組開發(fā),加入了多個生物化學(xué)模塊,側(cè)重于模擬研究海洋與生物之間的關(guān)系.因?yàn)殚_發(fā)者認(rèn)為應(yīng)該盡可能地避開通信引起的消耗,所以其輸出過程被設(shè)計為每個進(jìn)程按順序逐一將其保有的數(shù)據(jù)串行輸出到同一個NetCDF文件.

        這種設(shè)計雖然避開了輸出導(dǎo)致的通信消耗,但在大規(guī)模計算下多個進(jìn)程逐一打開關(guān)閉同一個文件,逐一輸出不連續(xù)數(shù)據(jù)所耗費(fèi)的時間也同樣可觀,在現(xiàn)代超級計算機(jī)硬件性能下不再是1個合理的交換.按第1節(jié)所述的方式,我們優(yōu)化了ROMS_AGRIF的輸出設(shè)計.收集過程分為3步:1)通過gather將各計算進(jìn)程需要傳輸?shù)臄?shù)據(jù)量大小傳送給I/O進(jìn)程;2)I/O進(jìn)程通過接收到的信息計算出接收內(nèi)存的大?。?)用gather完成該變量的數(shù)據(jù)收集.等所有變量的數(shù)據(jù)都收集完畢后,I/O進(jìn)程按順序整理并采用并行庫PNetCDF完成并行輸出.

        我們選擇的算例為南中國海單層網(wǎng)格,網(wǎng)格大小為1 200×1 310×60,模擬129 600步,每720步輸出3個文件,每個文件的每次輸出量約在1.5 GB,條帶數(shù)設(shè)置為4.

        測試結(jié)果如圖3所示,我們在前48,96,192個計算進(jìn)程時僅比較了原版和存在2個I/O進(jìn)程時的情況,從384計算進(jìn)程開始加入對比24個I/O進(jìn)程的情況.在48和96計算進(jìn)程時, 2個額外I/O進(jìn)程不僅抑制了輸出時間,連帶計算速度也出現(xiàn)了加快的情況.這是因?yàn)镽OMS對內(nèi)存很敏感,在加入2個I/O進(jìn)程后,我們必須提交3個結(jié)點(diǎn)才能滿足所需的CPU核數(shù).依照天河二號的作業(yè)管理系統(tǒng)設(shè)定,這種提交方式會導(dǎo)致50個進(jìn)程被3個結(jié)點(diǎn)平分.這意味著減少了內(nèi)存帶寬的競爭,因此出現(xiàn)計算速度加快的現(xiàn)象.這種對內(nèi)存敏感的情況也體現(xiàn)在384進(jìn)程前獲得了超線性加速比.

        Fig. 3 Performance of ROMS_AGRIF after output optimization圖3 輸出優(yōu)化后的ROMS_AGRIF性能圖

        圖3還展示了與計算規(guī)模相匹配的I/O進(jìn)程有利于控制收集通信的開銷.在3 072進(jìn)程時,24個I/O進(jìn)程可以有效保證輸出所占時間不到總時間的5%,充分釋放出原作者對通信優(yōu)化后的計算性能.

        4.2 GRAPES

        GRAPES是我國自主開發(fā)的天氣預(yù)報程序,在天河二號上已經(jīng)實(shí)現(xiàn)1 km模式的業(yè)務(wù)化運(yùn)行,是目前國內(nèi)網(wǎng)絡(luò)精度的最高水平.1 km模式需要每12 min啟動1次.經(jīng)過存儲優(yōu)化后的1 km模式,墻鐘時間從26 min縮短至9 min,減少了對硬件資源的需求,減輕了運(yùn)維壓力,也提升了1 km預(yù)報業(yè)務(wù)的穩(wěn)定性.

        鑒于GRAPES的版本眾多,我們以廣州熱帶所提供的GRAPES業(yè)務(wù)版本為例開展GRAPES的I/O優(yōu)化.原版GRAPES的I/O過程為:所有進(jìn)程通過發(fā)送命令MPI_send將數(shù)據(jù)發(fā)送到根進(jìn)程,而根進(jìn)程先使用多個接收命令MPI_recv完成通信后開始進(jìn)行數(shù)據(jù)整理并串行輸出Fortran非格式化文件.

        在實(shí)際測試中發(fā)現(xiàn),GRAPES的輸出所占時間比會隨著進(jìn)程數(shù)量的增加而急速上升.這是因?yàn)轭l繁的啟動發(fā)送和接收命令消耗了大量的時間.我們對GRAPES的收集通信優(yōu)化手段與ROMS_AGRIF類似,避免了因?yàn)轭l繁啟動通信命令而引起的巨額開銷.

        GRAPES的輸出文件采用Fortran非格式化文件格式,與MPI-IO的格式并不完全一致.為了方便后處理程序,我們編寫的并行輸出過程也仿照了該格式,雖然會對讀寫速度帶來負(fù)面影響,但輸出耗時依然遠(yuǎn)小于1個輸出周期,不會對總時間帶來顯著影響.

        從負(fù)載均衡的考慮出發(fā),幾乎所有地球科學(xué)模擬軟件的負(fù)載均衡策略都是按照進(jìn)程數(shù)將xy平面劃分為大小相近的區(qū)域,而z方向不做劃分,GRAPES也是如此.因?yàn)樗惴ㄉ系囊?,GRAPES的變量數(shù)組存儲按照的是xzy順序,這意味著當(dāng)存在多個I/O進(jìn)程時,I/O進(jìn)程只能在x或y方向中選取1個保證該方向的數(shù)據(jù)連續(xù)性.因?yàn)镚RAPES結(jié)果文件內(nèi)的數(shù)據(jù)是按照xyz順序排列,所以在多個I/O進(jìn)程并行輸出同一個變量的同一個xy平面時必然會引起磁盤資源的爭搶,最終拖慢輸出表現(xiàn).考慮到在日常的業(yè)務(wù)化使用當(dāng)中,GRAPES的每次輸出量均不超過1 GB的情況,我們暫時將所有的I/O進(jìn)程放在同一個結(jié)點(diǎn)內(nèi),這樣做可以直接利用天河二號的層次式存儲加速輸出速度,避開磁盤資源發(fā)生爭搶的情況.我們會在將來采取更成熟的收集式I/O,比如ROMIO,以嘗試解決這個問題.

        對GRAPES的測試結(jié)果如圖4所示,可見在設(shè)置了24個I/O進(jìn)程時,在3072進(jìn)程時依然取得了相當(dāng)好的加速效果.在實(shí)際的業(yè)務(wù)預(yù)報應(yīng)用中規(guī)模已經(jīng)達(dá)到了5300核,而其I/O時間依然可以忽略不計.

        Fig. 4 Performance of GRAPES after output optimization圖4 輸出優(yōu)化后的GRAPES性能圖

        5 總 結(jié)

        因?yàn)橛布系脑?,存儲的速度遠(yuǎn)落后于計算的速度,這使得存儲問題一直是大規(guī)模算法能否實(shí)用化的主要挑戰(zhàn)之一.地球科學(xué)領(lǐng)域內(nèi)常用的軟件幾乎都會碰到這個問題,并且隨著規(guī)模的擴(kuò)大,這個問題會越發(fā)嚴(yán)重.存儲的解決方式和硬件架構(gòu)有關(guān),因此我們針對天河二號的架構(gòu),設(shè)計了一套應(yīng)用級別的重疊存儲優(yōu)化,希望解決大規(guī)模計算時的存儲問題.

        這套重疊存儲優(yōu)化的核心思路是:

        1) 建立專用I/O進(jìn)程;

        2) 設(shè)置多個I/O進(jìn)程以抑制通信開銷,變相增加內(nèi)存容量和通信帶寬;

        3) I/O進(jìn)程收集完所有文件的數(shù)據(jù)后再輸出;

        4) I/O進(jìn)程之間采用并行輸出.

        雖然部分應(yīng)用軟件,比如WRF已經(jīng)有了這方面的探索,但要么不完善,要么不適應(yīng)天河二號的存儲架構(gòu),所以都無法發(fā)揮出天河二號的存儲性能.

        本文對WRF,ROMS_AGRIF,GRAPES做出適合天河二號架構(gòu)的存儲優(yōu)化,均獲得了預(yù)期中的良好效果.測試表明:經(jīng)過優(yōu)化后的WRF峰值性能相比原版有了近11.4%的提升,ROMS_AGRIF的峰值性能提升936%,GRAPES的峰值性能提升140%.因?yàn)槎疾簧婕拔锢砟P?,?yōu)化后的計算結(jié)果在有效精度內(nèi)與原版程序保持一致,這驗(yàn)證了重疊存儲優(yōu)化的正確性和有效性,也證明了該優(yōu)化思路能普遍應(yīng)用于天河二號上的地球科學(xué)類軟件.我們對存儲的優(yōu)化也進(jìn)一步提升了天河二號在華南地區(qū)高精度天氣預(yù)報業(yè)務(wù)和南中國海預(yù)報業(yè)務(wù)中的作用.

        致謝我們在此感謝國家超級計算廣州中心盧宇彤主任的支持,感謝國家超級計算廣州中心高性能部門的同事對研究內(nèi)容的有益討論和指導(dǎo),感謝國家超級計算廣州中心系統(tǒng)部同事對測試所需的硬件和計算資源提供的技術(shù)支持.

        猜你喜歡
        結(jié)點(diǎn)進(jìn)程網(wǎng)格
        用全等三角形破解網(wǎng)格題
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        反射的橢圓隨機(jī)偏微分方程的網(wǎng)格逼近
        Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個數(shù)估計
        重疊網(wǎng)格裝配中的一種改進(jìn)ADT搜索方法
        基于曲面展開的自由曲面網(wǎng)格劃分
        社會進(jìn)程中的新聞學(xué)探尋
        基于Raspberry PI為結(jié)點(diǎn)的天氣云測量網(wǎng)絡(luò)實(shí)現(xiàn)
        我國高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        亚洲国产精品嫩草影院久久av| 亚洲国产韩国欧美在线| 波多野结衣有码| 欧美日韩国产在线人成dvd| 亚洲一区二区三区免费的视频| 国产精品天天看天天狠| 亚洲乱码中文字幕综合| 国产AV国片精品有毛| 国产一区二区av在线观看| 国产亚洲精品综合一区| 五级黄高潮片90分钟视频| 国产女精品| 日韩中文字幕乱码在线| 国产精品国产高清国产专区| 成人午夜福利视频镇东影视| 成人a在线观看| 国产日产免费在线视频| 桃红色精品国产亚洲av| 国产成人无码a区在线观看视频 | 少妇下面好紧好多水真爽播放| 看黄网站在线| 人妻熟女中文字幕在线视频| 久久精品熟女亚洲av麻| 亚洲精品无码久久久久久| 久久久久久一级毛片免费无遮挡| 在线观看亚洲视频一区二区| 国产激情无码视频在线播放性色| 亚洲一本大道无码av天堂| 成人国产精品高清在线观看| 亚洲av高清一区二区三区| 久久久精品一区aaa片| 久久AV中文一区二区三区 | 91九色国产老熟女视频| 免费看av在线网站网址| 欧美a级在线现免费观看| 精品中文字幕久久久人妻| 国产香蕉一区二区三区| 麻神在线观看免费观看| 性色做爰片在线观看ww| 日韩五十路| 国产毛片视频一区二区三区在线 |