999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

并行I/O技術在海洋數值模式中的應用研究

2016-05-11 07:30:43黃偉建韓院彬

黃偉建,王 鑫,韓院彬

(河北工程大學 信息與電氣工程學院,河北 邯鄲056038)

?

并行I/O技術在海洋數值模式中的應用研究

黃偉建,王 鑫,韓院彬

(河北工程大學 信息與電氣工程學院,河北 邯鄲056038)

摘要:在海洋數值模擬過程中,隨著計算區域的擴大以及計算精度的提升,大量數據輸出使得I/O效率成為系統整體性能提升的一個瓶頸。針對這一問題,使用并行I/O技術對系統的輸出模塊進行優化,并與傳統的幾種串行I/O方式在不同節點,以及不同計算規模下進行性能比較。通過實驗研究數據,對不同I/O方式的不同特點和不同適用場景進行分析,證明在海洋數值模式中使用并行I/O技術切實可行,并且I/O速率得到大幅度提升。

關鍵詞:并行I/O;海洋數值模式;并行計算;消息傳遞接口;I/O

氣候變化引起的異常大風、降水事件頻發對我國近海生態系統和沿海經濟、社會可持續發展帶來了多重壓力和嚴峻考驗。由于海洋運動受到一定的物理化學定律支配,因此可以通過方程組予以定量表示,給定邊界條件并通過數值模式可以準確客觀地由當前狀態模擬、預測出未來時刻的狀態[1]。海洋數值模式由于其龐大的計算區域以及復雜的求解過程,因此具有浩大的計算規模[2-3]。采用并行計算方能有效提升計算效率,并在預期時間內完成計算任務。現階段,海洋數值模式中的計算部分已實現了多節點并行計算,但是在I/O模塊依然采用串行方式。因此,基于高性能并行計算技術對當前海洋數值模式中的I/O方式進行優化,提高模式數據存儲效率,便成為提升系統整體性能的一個關鍵所在[4-6]。美國地球物理流體力學實驗室采用的并行I/O方法為:N個進程并行運行,最終生成N個結果文件,在后續的程序運行過程中將N個文件進行合并;美國國家自然科學基金會以及美國國家海洋大氣局共同資助的WRF數值模式系統,通過設置專用I/O進程的方法實現并行計算的數據訪問。我國在海洋數值模式中應用并行I/O技術還較為罕見,多數仍采用傳統的串行I/O方式或主從模式。并且,在同一個硬件和實際應用環境中針對不同I/O方式進行詳細比較的例子也較為少見。本文針對海洋數值模式中的海洋水質模塊,在課題組前期已完成計算模塊并行化[7]的基礎上,對I/O模塊的算法進行優化,以提升數據的訪問效率,從而進一步提升系統整體運行效率。

1 I/O技術應用分析

1.1 系統中I/O模塊的算法分析

由于MPI并行方式屬于分布式計算的一種,其計算結果分布式存儲在各個計算節點中。傳統的并行環境下的輸出方式主要有以下幾種:一是參與計算的通信域內的各個進程在計算完成后直接輸出計算結果到文件,這樣N個進程將會輸出N個獨立的文件,在后期需要對這些獨立的文件進行進一步合并處理,顯然效率將會大大降低;二是采取等待同步(Call MPI_Barrier)的方式,各個進程以追加寫入的方式依次將文件串行寫入到同一個文件中;三是采用收集(Gather)的方式將所有進程的數據通過消息傳遞收集到根進程,最后由根進程進行輸出[8-10]。

上述三種I/O方式均使用編程環境提供的相應I/O函數。第一種方法的并行度是最高的,但是由于需要后期的合并處理,不但容易在文件合并過程中產生錯誤,而且也會消耗大量的時間;第二種方法雖然輸出的為完整的文件,但由于采用了等待同步的方式來強制每一時刻只有一個進程對文件進行I/O操作,并行度被大大降低,在等待同步(Call MPI_Barrier)時因為頻繁阻塞通信域內所有進程,也會消耗掉大量時間;第三種方法多用于采用主從模式的并行程序,但會產生較大的通信量,并且根進程會有較大的I/O負擔。當數據量較為巨大時,通信速率會成為其系統整體性能提升的一個瓶頸,并且在本質上依然是串行I/O方式。

1.2 技術方法

(1)系統模式結構及I/O特點

近海生態環境預評估系統采用SPMD并行編程模型,現階段為基于MPI的并行方法進行實現,采用Fortran語言進行編寫。系統的主要結構如圖1所示,本研究工作主要從應用層角度針對系統的數據輸出模塊進行優化操作。

在本系統中,一個階段的計算結束后會產生密集的I/O請求將計算結果輸出到文件。以膠州灣實驗區域的模擬計算為例,進行48 h的生態環境數值模擬,每完成3 600次的迭代計算進行一次輸出。在當前實驗區的計算規模下(159×185個網格)每個文件約為5 MB大小,共計約為240 MB。如果計算區域擴大200倍,則每個文件大小約為1 GB,48 h的數值模擬將產生約48 GB的數據量。若進行兩個月的數值模擬計算,總數據量將達到1.4 TB。未來在投放使用后,隨著計算精度和生態過程的復雜度的提升,以及計算區域的擴大,都將導致模式中輸出數據量的進一步激增。由于模式中目前采用串行I/O方式,提高數據輸出效率成為系統整體效率提升的一個關鍵。

(2)模式中數據格式分析

模式的最終輸出文件以DAT格式保存,在文件內部每行有33列,每個文件的首行為標題行,第一至四列為該數據點在整體計算網格內的坐標以及其經緯度坐標值。后面29列則為不同檢測元素的參數值。在數據輸出時,根據潮汐變換模擬出當前時刻該數據點的干濕情況(是否因海水漲落露出漫灘)來決定是否輸出該數據點。在當前實驗區域每模擬1 h的輸出量包含約13 000左右個數據點。由于采取并行計算技術對計算區域進行了網格劃分,這些數據點的數據分布式存儲在各個進程中。

(3)系統開發環境

本系統運行環境配置如表1所示。

表1 集群配置概要

(4)應用并行I/O需要解決的主要問題

由于輸出數據場中數據的分布式存儲,導致數據在內存中存放順序和最終文件需要的順序存在一些差異。在輸出數據時需要確保各個進程中數據在最終文件中的順序與計算網格之間正確對應,以保證最終輸出數據場的正確性。

使用并行I/O方式輸出會將內存中的數值類型數據以二進制碼格式直接輸出到文件,最終輸出文件為二進制文件,在不進行格式轉化或者使用專用的數據查看工具的情況下,并不能直接讀取或查看數據的值。這將給之后的部分工作帶來一些麻煩,這與我們所追求的高效運行便有些背道而馳了。因此需要解決系統輸出數據格式與并行I/O之間的兼容問題,保證輸出文件與原文件格式上的一致性。

2 實驗設計與算法實現

實驗區域膠州灣位于黃海中部、山東半島南岸,介于東經120°04′~120°23′、北緯35°58′~36°18′之間。其整體形狀類似橢圓,東西之間寬約27.78 km,南北之間長約33.336 km(低潮位),總的面積達446 km2,劃分為159×185個計算網格,垂直5層,積分步長1 s,積分48 h(172 800步)。當前輸出頻率為每完成3 600步積分輸出一次。

2.1 三種串行I/O模式的實現

阻塞(Barrier)模式在每個進程的輸出模塊后加入Call MPI_Barrier語句進行強制同步等待,阻止調用直到通信域內所有進程完成調用,控制各個進程按照計算網格劃分的順序依次輸出數據,并保證每個時刻只有一個進程對文件進行操作,從而避免寫入的混亂。收集(Gather)模式則在輸出之前通過調用MPI的MPI_Gather函數將所有進程需要輸出的數據按順序通過進程之間的通信收集到root進程,最后由root進程進行輸出。分開輸出模式則不進行任何控制操作,由各個進程直接將結果輸出到彼此獨立的文件中。

2.2 并行I/O模式的實現

并行I/O模式使用設置視口(Set_View)的方式,通過定義每一個進程在文件中的視口,使得各個進程可以通過視口對文件并行操作。首先通過分析每個文件的內部數據排列,計算出了每輸出一行數據需要的文件指針的偏移量(410 byte);然后通過判定數據點干濕狀況確定每個進程需要輸出的數據點個數,并通過MPI的組收集(Gatherv)方式將每一個進程內的統計數據傳遞到其余進程的專用數組中,以控制每個進程在文件中視口的偏移量,既要保證不與其它進程產生文件地址上的沖突,同時也不能占用多余的空間,在各視口中,每個進程輸出采用指定偏移方式控制數據在文件中的位置,保證數據正確的同時,也提高了尋址效率;接著將所有數值數據進行數據類型轉換,并保存到字符數組中,以最小的時間代價實現數據格式的兼容性;最后通過通信域內的所有進程并發操作,將數據輸出到各自的文件視口中,完成數據的輸出,并且保證輸出結果的正確性。

2.3 數據正確性驗證

將最后輸出的文件用驗證程序讀入內存,并與原始程序的輸出結果進行逐個單元數據的數值對比,保證輸出結果的正確性以及數據格式的一致性。

3 效率測試及分析

上述四種I/O方式分別在2、4、8、16個計算節點的規模下運行3次,統計時間為整個輸出模塊的運行時間,取中間值結果為最終結果(見圖2~圖5)。為了測試較大規模數據下不同I/O方式的效率,將計算區域擴大200倍并使用8個節點運行,并記錄各模式的時間消耗(見圖6)。其中,并行I/O模式的時間取參與運算進程中時間最長者為有效時間,收集模式和分開輸出模式I/O方式則將各進程時間相加作為有效時間。阻塞模式由于阻塞同步,最終有效時間綜合了串行輸出與阻塞等待兩部分時間。

對比圖2~圖5可以發現,盡管參與計算的節點數不同,并行I/O模式的輸出時間非常穩定,并且進程數越多越具有效率上的優勢。阻塞模式和收集模式相對于并行I/O模式的總輸出時間倍數如表2所示:

通過數據可以發現,阻塞模式正如所預計一樣,由于阻塞等待以及串行I/O,消耗時間是最多的,并且隨著進程數的增加效率呈遞減趨勢。收集模式則在進程數較少時具有一定的優勢,隨著進程數的增加,通信開銷逐步增大,導致效率逐漸降低。分開輸出模式在此只起到一定的參照作用(可以作為串行I/O最理想的狀況),因為其輸出結果仍需要后期的合并處理,所以一般不采用這種方式進行I/O操作。

從圖6的數據可以看出在大量數據輸出的情況下,阻塞模式已經完全不能滿足高性能的需求,阻塞模式完成每段積分輸出時間約450 s左右;收集模式約55 s左右,I/O消耗已經成為降低系統的整體性能的一個嚴重瓶頸。收集模式則由于需要大量的數據傳遞,通信開銷巨大,且由于只由一個進程進行I/O操作,又進一步加劇了時間消耗;而并行I/O模式則由于由多個進程同時進行I/O操作,速率得到大幅提升,并且在本系統中并行I/O采取了指定地址偏移寫入,而不用每次寫入前都進行尋址操作,也減少了時間開銷。而在其余三種I/O中,由于使用編程語言中的語句輸出函數進行逐行循環輸出,每次調用輸出函數時都需要進行尋址操作。

表2 不同I/O模式的總輸出時間比

節點數量阻塞模式收集模式2節點3.5倍1.06倍4節點14.43倍3.33倍8節點39.6倍6.45倍16節點80.34倍11.51倍8節點(200倍計算量)77.14倍6.93倍

4 結論

文章提出的并行I/O模式,時間消耗最少,且效率穩定,隨著節點的遞增可以保持良好的加速比。但在編寫并行I/O程序時比較復雜,需要對文件系統有詳細的了解方能在保證數據正確的前提下成功應用。

參考文獻:

[1]穆望舒.海洋數值預報產品綜合處理平臺開發研究[D].上海:華東師范大學,2014.

[2]GUO CHENG,LU LIU,NING JING,et al.General purpose optimization method for parallelization of digital terrain analysis based on cellular automata [J].Computers & Sciences,2012,45(8):57-67.

[3]李 亮,聶瑞華.高性能計算平臺的I/O性能測試與分析[J].計算機與現代化,2011,29(5):160-164 .

[4]董文睿,劉光明,劉 欣.高強度I/O的應用對并行存儲系統的挑戰和解決方法研究[J].計算機研究與發展,2012,49(Z1):47-52.

[5]晏益慧,張 輝.高性能計算機性能評測基準HPCC 應用研究[J].計算機工程與科學,2009,31(1):279-282.

[6]于忠亮.并行計算中的I/O問題研究[D].呼和浩特:內蒙古大學,2010.

[7]HUANG WEIJIAN,NIU PEI,DU WEI.Technology to water quality forecasting model of Jiao Zhou Bay [J].World Journal of Engineering,2011,12(4):395-399.

[8]DENNIS J M,EDWARDS J,LOY R,et al.An application-level parallel I/O Library for Earth system models [J].International Journal of High Performance Computing Applications,2012,26(1):43-53.

[9]張武生,薛 巍,李建江,等.MPI并行程序設計實例教程[M].北京:清華大學出版社,2009.

[10]周建鑫,陳 犖,熊 偉,等.地理柵格數據并行I/O的研究與實現[J].地理信息世界,2013,20(6):62-65.

(責任編輯王利君)

Study and application of parallel I/O technology in numerical ocean model

HUANG Wei-jian, WANG Xin, HAN Yuan-bin

(School of Information Science and Electrical Engineering, Hebei University of Engineering, Hebei Handan 056038, China)

Abstract:In the processes of ocean numerical simulation, with the increase in the calculation domain as well as the requirement of higher accuracy, a dramatic amount of data output make the I/O efficiency become a bottleneck of the whole system performance. To solve this problem, the parallel I/O technology was used in this study to optimize the output module, and the comparison with the traditional serial I/O methods under various numbers of computing nodes and various computing scales was conducted. Experimental results demonstrate that the proposed method significantly reduces the execution time of output module.

Key words:parallel I/O; ocean numerical models; parallel computing; MPI;I/O

中圖分類號:TP391.9

文獻標識碼:A

文章編號:1673-9469(2016)01-0086-05

doi:10.3969/j.issn.1673-9469.2016.01.019

作者簡介:黃偉建(1964-),男,山西交口人,博士,教授,CCF會員(E200038566M),研究方向為計算機應用。

基金項目:海洋公益性行業科研專項經費資助項目(201205018);河北省自然科學基金資助項目(F2015402077)

收稿日期:2015-11-02

主站蜘蛛池模板: 亚洲va精品中文字幕| 亚洲第一中文字幕| 精品视频一区二区三区在线播| 久久黄色毛片| 国产91精品久久| 久久人妻xunleige无码| 亚洲欧美日韩中文字幕一区二区三区 | 欧美精品二区| 亚洲天堂成人在线观看| 欧美一级99在线观看国产| 一级片一区| 欧美日韩中文字幕在线| 日韩欧美国产综合| 制服丝袜亚洲| 婷婷激情五月网| 午夜啪啪网| 亚洲无码熟妇人妻AV在线| 国产精品永久不卡免费视频 | 中文字幕免费在线视频| 亚洲一区无码在线| 97se亚洲综合| 国产人人乐人人爱| 欧美国产日产一区二区| 亚洲天堂伊人| 亚洲第一成网站| 热伊人99re久久精品最新地| 一区二区在线视频免费观看| 真人高潮娇喘嗯啊在线观看| 免费看美女自慰的网站| 中文字幕日韩久久综合影院| YW尤物AV无码国产在线观看| 亚洲精品国产自在现线最新| 原味小视频在线www国产| 99视频在线免费| 毛片在线播放a| 激情国产精品一区| 99热这里只有精品国产99| 香蕉久久国产精品免| 婷婷色狠狠干| www.亚洲色图.com| 亚洲—日韩aV在线| 精品视频在线一区| 欧美无专区| 国内精自线i品一区202| 国产成人91精品免费网址在线| 18禁黄无遮挡网站| 亚洲国产第一区二区香蕉| 最新国产网站| a天堂视频| 国产69囗曝护士吞精在线视频| www欧美在线观看| www.国产福利| 成人看片欧美一区二区| 亚洲成aⅴ人片在线影院八| 亚洲人成网7777777国产| 国产无码制服丝袜| 国产成人亚洲综合a∨婷婷| 91色国产在线| 在线观看无码a∨| 国产黄色视频综合| 欧美a网站| 精品国产欧美精品v| 亚洲一区二区日韩欧美gif| 国产成人精品优优av| 中文字幕在线永久在线视频2020| 凹凸国产熟女精品视频| 中文字幕在线观看日本| 亚洲黄色激情网站| 免费毛片网站在线观看| 国产精品福利在线观看无码卡| 欧美色综合网站| 久久香蕉欧美精品| 国产特级毛片| 亚洲天堂网在线观看视频| 2020国产精品视频| 亚洲综合色在线| 久久永久视频| 欧美精品在线观看视频| 最新日韩AV网址在线观看| 成人午夜视频网站| 精品无码专区亚洲| 日韩国产欧美精品在线|