并行編程模型的研究
并行編程模型一直是并行計算研究領(lǐng)域中的重點(diǎn)內容,它和并行計算機體系結構緊密相關(guān)。共享存儲體系結構下的并行編程模型主要是共享變量編程模型,它具有單地址空間、編程容易、可移植性差等特點(diǎn),其實(shí)現有OpenMP和Pthreads等。分布式存儲體系結構下的并行編程模型主要有消息傳遞編程模型和分布式共享編程模型兩種:消息傳遞編程模型的特點(diǎn)是多地址空間、編程困難、可移植性好,其實(shí)現有 MPI, PVM等;分布式共享編程模型是指有硬件或軟件的支持,在分布式體系結構下實(shí)現的具有共享變量編程模型特點(diǎn)的編程模型。后者可以分別按照硬件或軟件的實(shí)現分為 DSM和SVM,其實(shí)現有TreadMark和JiaJia等,目前研究熱點(diǎn)的分割全局地址空間(PGAS)模型的研究有UPC等代表,具有很強的發(fā)展潛力。
多層次的SMP集群是由共享內存的SMP作為超節 點(diǎn),而超節點(diǎn)間采用消息傳遞,內存不能直接訪(fǎng)問(wèn)。SMP集群同時(shí)具備了共享存儲和分布式存儲體系結構的特點(diǎn),因而傳統并行體系結構下的編程模型己經(jīng)不再完全適用于它。根據SMP集群多級并行結構的特點(diǎn),很自然地考慮到將共享存儲編程模型與分布式存儲編程模型相結合。目前國內外學(xué)術(shù)界對于 SMP集群體系結構上編程模型的選擇仍然存在著(zhù)分歧,為此已經(jīng)提出了多種方案,有的側重性能有的側重可移植性和易用性,孰優(yōu)孰劣,尚無(wú)定論。但從編程模型的評價(jià)標準— 計算性能和易用性綜合的角度考慮,Openw 優(yōu)于Thread,使得MPI+OpenMP的混合編程模型得到了廣泛的應用。
混合編程模型提供了節點(diǎn)間和節點(diǎn)內的兩級并行機制,它的優(yōu)勢在于結合了進(jìn)程級的粗粒度并行(例如區域分解)和線(xiàn)程級的細粒度并行(如循環(huán)并行)。實(shí)踐證明,在很多情況下,其執行效率高于純MPI或OpenMP程序,解決了一些它們無(wú)法解決的問(wèn)題,
主要有:
1、負載平衡問(wèn)題
在MPI并行程序中可能出現負載不平衡的問(wèn)題,使程序的性能受損。而在混合編程模型中,OpenMP能夠很好地解決該問(wèn)題,彌補了MPI的不足,從而提高并行程序的性能。
2、 MPI進(jìn)程數目受限的問(wèn)題
一些應用問(wèn)題存在所需進(jìn)程數目與處理機數目不匹配的問(wèn)題。若前者太小,則不能充分發(fā)揮機器的效率:太大,又無(wú)法執行。使用混合編程模型,首先執行MPI分解策略,啟動(dòng)理想數目的進(jìn)程,再用OpenMP進(jìn)一步分解子任務(wù),則可以使所有處理機得到高效利用。
3、通信帶寬和延遲問(wèn)題
MPI并行程序進(jìn)程間的通信帶寬和延遲問(wèn)題可能會(huì )嚴重影響程序的執行性能?;旌夏P偷某绦驅p少通信的次數,并且OpenMP的線(xiàn)程級并行具有較小的延遲,可緩解純MPI程序的問(wèn)題。
4、細粒度并行問(wèn)題
在用OpenMP來(lái)編寫(xiě)并行程序時(shí),雖然粒度太小也會(huì )增加系統的開(kāi)銷(xiāo),但相對而言遠沒(méi)有MPI那樣嚴重。當應用問(wèn)題的并行粒度比較小時(shí),混合編程模型對于SMP集群這樣的機器來(lái)說(shuō)是個(gè)很好的選擇。
在并行編程模型的多級并行,混合編程方面國際國內都做了一些有益的探索,主要有加州伯克利分校,伊利諾伊大學(xué),美國航天局,美國能源部的幾個(gè)國家實(shí)驗室,英國愛(ài)丁堡大學(xué),德國亞琛大學(xué)以及SGI,Sun,Intel,IBM等大公司;國內則主要是中科院計算所,國防科大,北京大學(xué),國家氣象中心等單位。
評論