• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于多核集群系統(tǒng)的并行編程模型的研究與實現(xiàn)

      2013-12-29 00:00:00李桂君祝永志
      電腦知識與技術(shù) 2013年10期

      摘要:主要對并行計算的編程模型進行了研究,包括 MPI 和 OpenMP 兩種編程模型,同時提出了一種層次化混合編程模型。并以計算 π 的問題為例,用 C 語言設(shè)計了混合編程模型下的程序,在以多核處理器作為節(jié)點的曙光 TC5000 集群上對三種編程模型下的求 π 程序進行了實驗,同時將實驗結(jié)果進行了性能分析和比較。結(jié)果表明該混合并行算法具有更好的擴展性和加速比。

      關(guān)鍵詞:層次化;混合編程;多核集群;性能分析

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2013)10-2349-04

      隨著社會對計算機性能的要求越來越高,對高速并行計算的應(yīng)用越來越廣泛,多核集群系統(tǒng)得到了飛速的發(fā)展?,F(xiàn)在的并行計算機體系結(jié)構(gòu)中絕大部分都是集群體系結(jié)構(gòu),并且大多數(shù)的集群節(jié)點是多核 SMP。因此多核集群系統(tǒng)具有一下特點:每一個節(jié)點都是一個共享存儲的多處理機,而節(jié)點間是分布式的內(nèi)存結(jié)構(gòu),它結(jié)合了基于分布式存儲和基于共享存儲的處理器的優(yōu)點。因此在多核集群系統(tǒng)上可以進行多種并行程序設(shè)計和實現(xiàn),包括可以在節(jié)點間執(zhí)行的基于消息傳遞的純 MPI 編程模型,可以在節(jié)點內(nèi)(多核 SMP)執(zhí)行的基于共享內(nèi)存的OpenMP 編程模型,以及 MPI+OpenMP 的混合編程模型。

      本文將對以上提到的三種并行編程模型進行研究,并對計算 π 的算法分別進行了三種編程模型的程序設(shè)計,最后用以多核處理器作為節(jié)點的曙光 TC5000 作為實驗工具,對所設(shè)計的程序進行實現(xiàn),并進行了性能比較。

      1 MPI編程模型和OpenMP 編程模型

      在并行計算領(lǐng)域內(nèi),主要的并行編程模型有三類模型:數(shù)據(jù)并行、消息傳遞、共享變量。其中基于消息傳遞的 MPI 編程模型和基于共享變量的 OpenMP 編程模型是最為流行的并行編程模型。

      1.1 MPI 編程模型

      消息傳遞界面 MPI (Message Passing Interface) 是一種消息傳遞接口,是目前國內(nèi)外最主流的編程模型之一。并行語言 MPI 庫可以被 FORTRAN77、C、FORTRAN90、C++ 調(diào)用,MPI 允許靜態(tài)任務(wù)調(diào)度,顯示并行提供了良好的性能和移植性,用 MPI 編寫的程序可直接在多核集群上運行[1]。在集群系統(tǒng)中,集群的各節(jié)點之間可以采用 MPI 編程模型進行程序設(shè)計,每個節(jié)點都有自己的內(nèi)存,可以對本地的指令和數(shù)據(jù)直接進行訪問,各節(jié)點之間通過互聯(lián)網(wǎng)絡(luò)進行消息傳遞,這樣設(shè)計具有很好的可移植性,完備的異步通信功能,較強的可擴展性等優(yōu)點。

      MPI 模型存在一些不足,包括:程序的分解、開發(fā)和調(diào)試相對困難,而且通常要求對代碼做大量的改動;通信會造成很大的開銷,為了最小化延遲,通常需要大的代碼粒度[2];細粒度的并行會引發(fā)大量的通信;動態(tài)負載平衡困難;并行化改進需要大量地修改原有的串行代碼,調(diào)試難度比較大[3]。

      1.2 OpenMP 編程模型

      2.2 MPI 和 OpenMP 混合編程的優(yōu)勢

      1)降低通信開銷

      單獨采用 MPI 模型時,節(jié)點間的進程需要消息傳遞,而混合模型中,節(jié)點內(nèi)部采用共享存儲的方式進行訪問,這樣就可以減少所需的進程數(shù)量,即減少了節(jié)點間的通信次數(shù)從而降低通信開銷。

      2)有效的改善 MPI 代碼可擴展性

      因負載均衡的原因 MPI 代碼不易進行擴展,它的一些不規(guī)則的應(yīng)用都存在負載不均衡問題[7],采用混合編程模式,能夠?qū)崿F(xiàn)更好的并行粒度。MPI 僅僅負責結(jié)點間的通信,實行粗粒度并行:OpenMP 實現(xiàn)結(jié)點內(nèi)部的并行,因為 OpenMP 不存在負載均衡問題,從而提高了性能。

      3)實現(xiàn)通信和計算重疊

      大部分 MPI 都是通過單線程來實現(xiàn),然而單個的 MPI 進程不能同時進行通信和計算,這樣大大降低了效率。采用混合模型可以選擇主線程或指定一個線程進行通信,而其它的線程執(zhí)行計算的部分,這樣便實現(xiàn)了通信和計算的重疊。

      4)充分的利用 CPU

      在某些情況下,MPI 應(yīng)用實現(xiàn)的性能并不隨處理器數(shù)量的增加而提高,而是有一個最優(yōu)值。這時使用混合編程模式會比較有益,因為可以用 OpenMP 線程來替代進程這樣就可以減少所需進程數(shù)量,從而運行理想數(shù)目的 MPI進程,再用 OpenMP 進一步分解任務(wù),使得所有處理器高效運行。

      5)提高每個節(jié)點內(nèi)的計算效率

      在節(jié)點內(nèi)使用OpenMP 進行編程使程序在節(jié)點內(nèi)部運行的時候更充分的利用了多核并行計算的優(yōu)勢。同時線程比 MPI 進程耗費更少的資源,比單純使用MPI 的運算效率大為提高[8]。

      在一般情況下,使用混合編程模型具有更好地效率和性能,但是它也存在幾方面需要注意的問題,比如對于純 MPI 編程模型的應(yīng)用,參與通信的 CPU 可以飽和結(jié)點間的帶寬,而混合編程模型中若分出一個線程進行通信很難做到這一點。同時還要注意混合編程模型中 MPI 進程內(nèi)的線程之間進行點對點通訊時的正確發(fā)送與接收、OpenMP 產(chǎn)生的系統(tǒng)開銷等問題。

      3 實驗結(jié)果與分析

      3.1 測試環(huán)境

      3.2 測試程序

      3.3 實驗及結(jié)論

      4 結(jié)束語

      本文通過結(jié)合一個具體的程序案例,詳細描述了適用于多核集群的并行編程模型,并在曙光 TC5000 集群上進行了實驗,實驗表明采用 MPI+OpenMP 混合編程模型比采用純 MPI 編程模型能更充分利用多核集群系統(tǒng)。隨著多核集群系統(tǒng)的飛速發(fā)展,對并行計算模型的研究仍需繼續(xù),在本文的基礎(chǔ)上,我們會對多核集群系統(tǒng)上的并行計算的性能優(yōu)化做更深層的研究,從而使多核集群系統(tǒng)的性能進一步提高。

      參考文獻:

      [1] 祝永志,張丹丹,曹寶香,等.基于 SMP 機群的層次化并行編程技術(shù)的研究[J].電子學(xué)報,2012,40(11):2206-2210.

      [2] 鄭漢垣,劉智翔,封衛(wèi)兵,等.MPI+OpenMP混合編程模型在大規(guī)模三對角線性方程組求解中的應(yīng)用[J].微電子學(xué)與計算機,2011,28(8):158-161.

      [3] 張軍,萬劍怡.多核集群系統(tǒng)上的混合編程模型研究[J].計算機與現(xiàn)代化,2009(5):1-4.

      [4] 陳國良.并行計算—結(jié)構(gòu)·算法·編程[M].北京:高等教育出版社,2003.

      [5] BARBARA CHAPMAN,GABRIELE JOST, RUUD VAN DERPAS.Using OpenMP [M].The MIT Press,2007.

      [6] Bull J M,Enright J P,Ameer N.A microb-enchmark suite for mixed-mode OpenMP/MPI[C]//Müller M S,de Supinski B R,Chapman B M.IWOMP 2009.LNCS, vol. 5568, Springer, Heidelberg, 2009:118-131.

      [7] 魏偉.基于SMP集群的性能優(yōu)化方法的研究[D].蘭州:蘭州大學(xué),2006.

      [8] 胡斌,袁道華.TBB 多核編程及其混合編程模型的研究[J].計算機技術(shù)與發(fā)展,2009,19(2):98-101.

      [9] 楊際祥,譚國真,王榮生.多核軟件的幾個關(guān)鍵問題及其研究進展[J].電子學(xué)報,2010,38(9):2140-2145.

      [10] Rabenseifner R.Hybrid Parallel Programming on HPC Platforms[C]//Proceedings of the Fifth European Workshop on OpenMP.EWOMP 2003, Aachen, Germany, September 22-26, 2003:185-194.

      [11] 王惠春.基于 SMP 集群的 MPI+OpenMP混合并行編程模型研究與應(yīng)用[D].湘潭:湘潭大學(xué),2008.

      [12] 李俊醅,莊子波.WRF 模式在 LINUX 集群系統(tǒng)的并行計算與評測[J].計算機技術(shù)與發(fā)展,2012,22(7):5-8.

      沂水县| 靖安县| 定南县| 大同市| 普兰县| 囊谦县| 房山区| 德庆县| 安溪县| 合肥市| 贵定县| 通江县| 新乡市| 滦南县| 奇台县| 积石山| 庄河市| 大英县| 彝良县| 西宁市| 珲春市| 酒泉市| 报价| 呼伦贝尔市| 广河县| 抚松县| 临朐县| 永吉县| 岳阳市| 昭通市| 连山| 阳新县| 峨眉山市| 普兰县| 康平县| 黔东| 新龙县| 阿拉善右旗| 泰宁县| 河源市| 金平|