首頁 > 新聞係統 > 電子技術 > 技術 > 嵌入式係統 正文 > 論壇 返回 打印

並行編程模型的研究

  是並行計算,尤其是並行軟件的基礎,也是並行硬件係統的導向,在麵臨多核新挑戰的情況下,什麼樣的並行編程模型在未來能成為主流,還很難說。至少到目前,還處於百家爭鳴的時代,很多模型提出,很多在應用,下麵我們簡單介紹一下當前的並行編程模型現狀。

  並行編程模型一直是並行計算研究領域中的重點內容,它和並行計算機體係結構緊密相關。共享存儲體係結構下的並行編程模型主要是共享變量編程模型,它具有單地址空間、編程容易、可移植性差等特點,其實現有OpenMP和Pthreads等。分布式存儲體係結構下的並行編程模型主要有消息傳遞編程模型和分布式共享編程模型兩種:消息傳遞編程模型的特點是多地址空間、編程困難、可移植性好,其實現有 , 等;分布式共享編程模型是指有硬件或軟件的支持,在分布式體係結構下實現的具有共享變量編程模型特點的編程模型。後者可以分別按照硬件或軟件的實現分為 DSM和SVM,其實現有TreadMark和JiaJia等,目前研究熱點的分割全局地址空間(PGAS)模型的研究有UPC等代表,具有很強的發展潛力。

  多層次的SMP集群是由共享內存的SMP作為超節點,而超節點間采用消息傳遞,內存不能直接訪問。SMP集群同時具備了共享存儲和分布式存儲體係結構的特點,因而傳統並行體係結構下的編程模型己經不再完全適用於它。根據SMP集群多級並行結構的特點,很自然地考慮到將共享存儲編程模型與分布式存儲編程模型相結合。目前國內外學術界對於 SMP集群體係結構上編程模型的選擇仍然存在著分歧,為此已經提出了多種方案,有的側重性能有的側重可移植性和易用性,孰優孰劣,尚無定論。但從編程模型的評價標準― 計算性能和易用性綜合的角度考慮,Openw 優於Thread,使得MPI+OpenMP的混合編程模型得到了廣泛的應用。

  混合編程模型提供了節點間和節點內的兩級並行機製,它的優勢在於結合了進程級的粗粒度並行(例如區域分解)和線程級的細粒度並行(如循環並行)。實踐證明,在很多情況下,其執行效率高於純MPI或OpenMP程序,解決了一些它們無法解決的問題,

  主要有:

  1、負載平衡問題

  在MPI並行程序中可能出現負載不平衡的問題,使程序的性能受損。而在混合編程模型中,OpenMP能夠很好地解決該問題,彌補了MPI的不足,從而提高並行程序的性能。

  2、 MPI進程數目受限的問題

  一些應用問題存在所需進程數目與處理機數目不匹配的問題。若前者太小,則不能充分發揮機器的效率:太大,又無法執行。使用混合編程模型,首先執行MPI分解策略,啟動理想數目的進程,再用OpenMP進一步分解子任務,則可以使所有處理機得到高效利用。

  3、通信帶寬和延遲問題

  MPI並行程序進程間的通信帶寬和延遲問題可能會嚴重影響程序的執行性能。混合模型的程序將減少通信的次數,並且OpenMP的線程級並行具有較小的延遲,可緩解純MPI程序的問題。

  4、細粒度並行問題

  在用OpenMP來編寫並行程序時,雖然粒度太小也會增加係統的開銷,但相對而言遠沒有MPI那樣嚴重。當應用問題的並行粒度比較小時,混合編程模型對於SMP集群這樣的機器來說是個很好的選擇。

  在並行編程模型的多級並行,混合編程方麵國際國內都做了一些有益的探索,主要有加州伯克利分校,伊利諾伊大學,美國航天局,美國能源部的幾個國家實驗室,英國愛丁堡大學,德國亞琛大學以及SGI,Sun,Intel,IBM等大公司;國內則主要是中科院計算所,國防科大,北京大學,國家氣象中心等單位。



http://www.autooo.net/autooo/Electronic/Tech/Embeded/2007-10-23/38315.html