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