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

海洋物質輸運模擬中并行計算的應用比較研究

2013-09-11 03:21:32黃偉建蔡忠亞
計算機工程與設計 2013年8期
關鍵詞:進程方法

黃偉建,周 偉,蔡忠亞

(1.河北工程大學 信息與電氣工程學院,河北 邯鄲056038;2.中國海洋大學 海洋環境與生態教育部重點實驗室,山東 青島266100)

0 引 言

為了提高運算速度,并行計算技術已應用到海洋數值模擬領域;MPI[1]和 OpenMP[2]是目前此領域相關研究中最常用的兩種并行計算方法。近幾年,隨著處理器技術的發展,采用多核心處理器的集群計算機得到了普及,由于多核心集群計算機具有節點間分布式和節點內共享式兩種存儲結構,因此多核心集群計算機用戶在進行海洋數值模擬研究時,不僅可以采用MPI這種適合分布式存儲結構的并行計算方法[3],而且也可以采用以OpenMP為代表的適合共享存儲結構的并行計算方法[4]。通過將 MPI和OpenMP兩種并行計算技術應用于同一問題并在多核集群平臺上進行對比研究,能夠找到一種更合適的方法,以求更有效的在多核集群平臺上解決這種問題。

對物質輸運方程[5]進行求解以模擬物質輸運過程是各類海洋數值模擬相關研究的重要組成部分之一,為了找到一種更適合在多核集群計算機平臺上對物質輸運方程進行求解的并行計算方法,本文以普林斯頓海洋模型 (princeton ocean model,POM)[6]為例,分別使用 MPI和 OpenMP兩種不同類型的并行計算技術對其物質輸運方程的串行算法進行并行化改造,并在多核心集群計算機平臺上進行了對比實驗。

1 并行程序設計

1.1 物質輸運方程

本論文使用的物質輸運方程為C(x,y,z,t):

1.2 串行模擬方法

本論文使用的物質輸運方程求解的串行方法[7]在POM模式基礎上使用Fortran語言進行開發,POM是一種三維斜壓原始海洋模式,由美國普林斯頓大學研制。該算法首先計算由平流和水平擴散引起的濃度變化,這一部分為顯示格式計算。之后對由垂向擴散引起的濃度變化進行計算,這一部分為隱式格式。以下為串行模擬方法流程描述,設t為時間變量,T為模擬時間長度:

(1)初始化模擬參數,如模擬時長、計算區域等。

(2)時間循環for(t=0;t<T;t++)。

(3)調用POM模式水動力過程。

(4)調用物質輸運模塊對模擬區域t時刻的每一網格點求解物質輸運方程C(x,y,z,t)(式 (1)),該模塊依次計算平流項、擴散項以及開邊界條件。

(5)輸出物質輸運方程的計算結果,即時刻t的示蹤物質濃度數據。

(6)執行步驟 (2)至步驟 (6)到t循環結束為止。

(7)模擬結束。

1.3 并行模擬方法

串行的物質輸運模擬方法在對每一個網格點求解物質輸運方程時,各網格點的計算相對獨立,因此可以將模擬區域適當劃分成多個子區域,將各個子區域的計算放在不同的處理器核心上進行,以此實現計算的并行化處理。圖1為按照橫向劃分子區域的并行模擬方法流程圖。

并行的物質輸運模擬方法在串行方法的基礎上,將物質輸運的模擬區域劃分為多個子區域,從而將方程C(x,y,z,t)的求解劃分為多個子求解 (式 (2)),并分別放置在多個不同的處理器上進行運算。在并行求解過程中,相鄰子求解之間需要交換后續求解需要的分區邊界數據

圖1 物質輸運模擬并行方法流程

根據物質輸運模擬的計算區域可以分塊進行求解的特點,本文采用單指令流多數據流 (single instruction streammultiple data stream,SIMD)方 式并 分 別 使用 MPI和OpenMP兩種并行計算技術對物質輸運方程求解的串行方法進行并行化改造。由于MPI和OpenMP具有不同的特點,下面對這兩種技術應用于物質輸運方程求解的方法進行對比說明。

1.3.1 MPI并行方式

消息傳遞是在分布式存儲系統上進行并行計算的有效方法,MPI作為一種基于消息傳遞模型的程序庫,提供了在多個進程之間發送接收消息以及同步等功能。由于MPI易用性強且性能穩定,因此其被廣泛應用于集群系統當中[8]。消息傳遞要經過數據打包、傳送、消息拆包3個過程,時間開銷較大,所以在使用MPI設計并行程序時,避免大量的消息傳遞是一個普遍原則[9]。使用MPI對物質輸運模塊進行并行,關鍵在于如何有效的傳遞分區邊界處的數據。對計算區域進行分塊后,各分區可以互相獨立的進行計算,但分區邊界處數據的計算需要用到相鄰分區的計算結果,因此相鄰進程需要通過消息對分區邊界處的數據進行交換。假設有以下代碼:

按照i對計算區域進行分塊后,多個進程針對各自分塊的數據執行以上代碼進行并行計算。非邊界處的計算各進程可以獨立完成,但在邊界處,由于計算array2(i)需要使用array1(i-1)的值,而array1 (i-1)的值位于上一個分區,因此各進程在計算完成array1數組以后需要將邊界處的數值通過MPI消息發送給相鄰的進程。如圖2(a)所示,MPI版本的物質輸運模塊由多個位于不同節點計算機上的MPI進程運行,各進程根據分配的子區域進行求解。在計算的某些時刻,進程i需要使用前面進程i-1的邊界數據,由于兩個進程無法共享內存空間,此時進程i-1與進程i需要分別使用MPI的消息發送和消息接收方法完成分區邊界數據的傳遞工作。

圖2 MPI(a)和OpenMP(b)并行方式對比

1.3.2 OpenMP并行方式

OpenMP是一種被廣泛使用的在共享存儲系統上進行并行編程的標準,它能夠通過在代碼中加入指令來控制程序在特定的位置進行多線程的并行執行。由于共享存儲體系結構所具有的存儲共享這一特點,使用OpenMP進行并行程序設計時需要利用同步和鎖操作來保證內存訪問的正確性[10]。同時,避免開銷較大的同步和鎖操作的大量使用能夠提高系統的效率[11]。與MPI采用多進程并行的方式不同,OpenMP采用多線程并行,各并行線程共享相同的一塊內存,每個線程均可以對內存中的每一個位置進行讀寫操作,因此使用這種方法對物質輸運模塊進行并行化時,線程之間不需要對分區邊界數據進行交換。物質輸運模塊內部由多個循環構成,OpenMP提供了相應并行指令用于這種情景。假設有以下OpenMP并行代碼:

如以上代碼所示, “!$omp parallel do”指令告知編譯器此處代碼需要多線程并行工作完成,當主線程執行代碼到此處時,會自動生成多個并行的子線程,每個子線程執行循環區間的一部分。由于多個并行線程共享相同的內存空間,在分區邊界處計算array2(i)時,線程可以直接訪問位于相鄰分區的array1(i-1),而不需要進行邊界數據的交換。每個循環結束處的 “!$omp end parallel do”命令會進行一次同步操作,因此會帶來一些時間開銷。如圖2(b)所示,OpenMP版本的物質輸運模塊與MPI版本相似,多個位于同一節點計算機上的OpenMP線程對不同分區的數據進行處理。因為多個并行線程共享相同的內存空間,線程i可以直接訪問前面線程i-1的邊界數據,而不需要如MPI那樣通過消息傳遞進行數據交換。

1.4 實驗方法

本論文分別將MPI版本并行程序和OpenMP版本并行程序放置于中國海洋大學環境科學與工程學院的多核集群計算機上運行,并對實驗結果進行對比分析。該集群計算機由20臺IBM HS21計算機組成,節點之間使用高速千兆網絡連接,集群具體配置信息見表1。為了便于更好的對實驗結果進行分析,只選取應用了并行計算的物質輸運模塊進行研究,每種測試情景運行5次,將最短的時間 (不計文件讀寫所用時間)作為最終結果。在對計算時間進行分析的基礎上,同時對并行程序的加速比和效率進行分析。并行程序的加速比由串行程序的計算時間與并行程序的計算時間這兩者的比值求得;在串行時間一定的情況下,加速比與并行時間成反比。并行效率等于加速比與核心數的比值,能夠反映核心的運算能力是否被充分使用。本實驗采用的計算區域為適用于膠州灣模擬的312×213×5規模的網格,為了進行并行計算,我們將計算區域均勻劃分成1-8個子區,每個區域分塊對應一個計算核心,時間積分60000步。

2 結果與討論

表1 并行計算機配置概要

實驗結果表明,本論文采用的物質輸運并行模擬方法產生的物質濃度數據結果與串行方法的結果一致,據此可以證明并行方法的可靠性,圖3為以濃度圖形式對膠州灣物質輸運模擬結果進行的對比。

圖4為MPI與OpenMP所用的計算時間對比圖,橫軸為使用的CPU核心個數,縱軸為計算時間。從該圖中可以觀察到,隨著核心數目增加,MPI與OpenMP的計算速度逐漸加快,運算時間逐漸減少。在使用8個核心進行計算時,MPI和OpenMP均達到計算速度的最高值,相對于串行分別減少83%和76%的計算時間。通過觀察MPI和OpenMP時間折線的后段,可以發現二者的計算速度增幅明顯放緩,對于MPI來說,這主要是由于增加的MPI進程帶來的通信開銷造成的[12,13];對于OpenMP,主要原因是增加的線程數量帶來的同步開銷較大[14],對運算效率造成了負面影響。

圖3 膠州灣物質輸運模擬結果濃度圖對比

圖4 MPI和OpenMP計算時間對比

圖5 MPI和OpenMP加速比對比

圖5、圖6反映的是MPI和OpenMP的并行加速比以及并行效率的情況。從圖5中可以觀察到,MPI和OpenMP在使用12個核心時加速比達到最高值5.95和4.19。隨著核心數目增加,MPI通信開銷和OpenMP線程間同步開銷使二者的加速比增長幅度呈現明顯下降趨勢。從圖6中可以觀察到,MPI和OpenMP在使用2個核心時的并行效率達到最高值,分別為0.95和0.87。之后隨著核心數目的增加,二者的并行效率呈現明顯下降趨勢。雖然MPI和OpenMP在使用8個核心時的計算速度最高,計算用時最短,但此時的并行效率卻處于最底值位置,這說明MPI和OpenMP在使用更多的核心進行計算時,計算之外的開銷比重也隨之增加,從而導致了核心利用效率的降低[15]。

圖6 MPI和OpenMP并行效率對比

通過以上分析可以得出,在計算區域為312×213×5這種規模的實驗條件下,MPI的加速效果明顯優于OpenMP,當MPI使用8個核心時運算速度達到最高值,相較于串行速度提高6倍。

3 結束語

本論文分別將MPI和OpenMP兩種類型的并行計算方法應用于模擬海洋物質輸運的過程,并在多核心集群計算機系統上進行了對比實驗。實驗結果表明,MPI的加速效果明顯優于OpenMP,且最高運算速度接近串行的6倍。由此看來,在這種計算規模下MPI更適合用來在多核心集群平臺上對海洋物質輸運的模擬過程進行并行化。根據本研究的成果,今后將把MPI并行的物質輸運模擬方法應用到有關海洋研究當中,使其發揮更大的作用。

[1]LI Dong,LIU Jing,HAN Guijun,et al.Parallel algorithms for princeton ocean model[J].Marine Science Bulletin,2010,29 (3):229-333(in Chinese). [李冬,劉璟,韓桂軍,等.POM海洋模式的并行算法 [J].海洋通報,2010,29 (3):229-333.]

[2]Gonzalez M,Ayguade E,Martorell X,et al.Dual-level parallelism exploitation with OpenMP in coastal ocean circulation modeling [G].Lecture Notes in Computer Science 2327:Proceedings of the 4th International Symposium on High Performance Computing.Berlin:Springer,2006:469-478.

[3]MPI:A message-passing interface standard [EB/OL].[2012-07-11].https://computing.llnl.gov/tutorials/mpi/.

[4]OpenMP:An application program interface [EB/OL].[2012-07-18].https://computing.llnl.gov/tutorials/openMP/.

[5]SHEN Xia,HONG Dalin,WANG Peng.Study on numerical scheme of mass transport equation based on POM [J].Advances in Marine Science,2009,27 (4):452-459 (in Chinese).[申霞,洪大林,王鵬.基于POM的物質輸運方程數值格式研究 [J].海洋科學進展,2009,27 (4):452-459.]

[6]Zhang W G,Wilkin J L,Schofield O M E.Simulation of water age and residence time in New York Bight [J].Journal of Physical Oceanography,2010 (40):965-982.

[7]CHEN Bingrui,ZHU Jianrong,QI Dingman.Improvement in numerical scheme on the advection term of mass transport equation using particle-tracing method [J].Oceanologia Et Limnologia Sinica,2008,39 (5):439-445 (in Chinese).[陳昞睿,朱建榮,戚定滿.采用質點跟蹤方法對物質輸運方程平流項數值格式的改進 [J].海洋與湖沼,2008,39 (5):439-445.]

[8]Lusk E,Chan A.Early experiments with the OpenMP/MPI hybrid programming model [C]//West Lafayette:Proceedings of the Fourth International Workshop on OpenMP,2008:36-47.

[9]WANG Zhiyuan,YANG Xuejun,ZHOU Yun.Scalable triple modular redundancy fault tolerance mechanism for MPI-oriented large scale parallel computing [J].Journal of Software,2012(4):1022-1035 (in Chinese).[王之元,楊學軍,周云.大規模MPI并行計算的可擴展冗余容錯機制 [J].軟件學報,2012 (4):1022-1035.]

[10]PAN Wei,LI Zhanhuai,WU Sai,et al.Evaluating large graph processing in MapReduce based on message passing [J].Chinese Journal of Computers,2011 (10):1768-1784 (in Chinese).[潘巍,李戰懷,伍賽,等.基于消息傳遞機制的MapReduce圖算法研究 [J].計算機學報,2011 (10):1768-1784.]

[11]WU Huabei,SUN Jizhou,WANG Wenyi.Research and implementation of parallel programming environment for hybrid parallel computing system [J].Computer Science,2010,37(4):143-178 (in Chinese). [武華北,孫繼洲,王文義.面向混合并行計算系統編程環境的研究與實現 [J].計算機科學,2010,37 (4):143-178.]

[12]Rabenseifner R,Hager G,Jost G.Hybrid MPI/OpenMP parallel programming on clusters of multi-core smp nodes[C]//Proceedings of the 17th Euromicro International Conference on Parallel,Distributed,and Network-Based Processing,2009:427-236.

[13]Thakur R,Gropp W.Test suite for evaluating performance of multi-threaded MPI communication [J].Parallel Computing,2009,35 (12):608-617.

[14]Rabenseifner R,Hager G,Jost G.Tutorial on hybrid MPI and OpenMP parallel programing [C]//Portland,OR:Supercomputing Conference,2009.

[15]Martin J Chorley,David W Walker.Performance analysis of a Hybrid MPI/OpenMP application on muti-core clusters [J].Journal of Computational Science,2010,1 (3):168-174.

猜你喜歡
進程方法
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
俄羅斯現代化進程的阻礙
主站蜘蛛池模板: 亚洲国产成人自拍| 色婷婷狠狠干| 亚洲成人高清在线观看| 国产成人1024精品下载| 久久精品国产999大香线焦| 久久婷婷六月| 国产精品无码影视久久久久久久| 久久亚洲国产一区二区| 婷婷六月在线| 麻豆精品久久久久久久99蜜桃| 亚洲成网777777国产精品| 国产区人妖精品人妖精品视频| 日本成人福利视频| 国产9191精品免费观看| 国产精品免费久久久久影院无码| 日本精品一在线观看视频| 亚洲最大福利网站| 性色生活片在线观看| 国内毛片视频| 丰满人妻久久中文字幕| 三级毛片在线播放| 丰满的熟女一区二区三区l| 亚洲成aⅴ人片在线影院八| 欧美性猛交一区二区三区| 国产成人亚洲无码淙合青草| 色天天综合久久久久综合片| 亚洲色大成网站www国产| 国产丝袜无码精品| 亚洲精品在线91| 国产成人综合日韩精品无码首页| 91午夜福利在线观看精品| 国产亚洲美日韩AV中文字幕无码成人| 国产视频只有无码精品| 一级黄色欧美| 色综合五月婷婷| 日韩欧美中文| 无码电影在线观看| 国产精品 欧美激情 在线播放| 91欧美亚洲国产五月天| 国产免费久久精品44| 2020精品极品国产色在线观看 | 最新国产午夜精品视频成人| 久久国产精品麻豆系列| 国产区福利小视频在线观看尤物| 99国产在线视频| 一本无码在线观看| 中美日韩在线网免费毛片视频| 伊人成色综合网| 国产成人无码综合亚洲日韩不卡| 日韩精品一区二区三区swag| 91亚瑟视频| 国产视频自拍一区| 超碰aⅴ人人做人人爽欧美| 强奷白丝美女在线观看| 午夜丁香婷婷| 久久夜色撩人精品国产| 99精品欧美一区| 日本爱爱精品一区二区| 在线网站18禁| a色毛片免费视频| 中文字幕欧美日韩高清| 亚洲av无码片一区二区三区| 国产精品久久久久无码网站| 日韩欧美国产成人| 午夜日b视频| 日韩成人在线一区二区| 日韩精品久久久久久久电影蜜臀| 99热线精品大全在线观看| 激情在线网| 亚洲综合经典在线一区二区| 区国产精品搜索视频| 依依成人精品无v国产| 精品一区二区三区四区五区| 日本a级免费| 亚洲人成亚洲精品| 91九色最新地址| 精品亚洲国产成人AV| 国产精品美女自慰喷水| 天天摸夜夜操| 香蕉色综合| 真人高潮娇喘嗯啊在线观看| 91啪在线|