並行程式設計模型的研究

2021-06-15 22:06:09 字數 1565 閱讀 3931

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

並行程式設計模型一直是平行計算研究領域中的重點內容,它和並行計算機體系結構緊密相關。共享儲存體系結構下的並行程式設計模型主要是共享變數程式設計模型,它具有單位址空間、程式設計容易、可移植性差等特點,其實現有openmp和pthreads等。分布式儲存體系結構下的並行程式設計模型主要有訊息傳遞程式設計模型和分布式共享程式設計模型兩種:訊息

傳遞程式設計模型的特點是多位址空間、程式設計困難、可移植性好,其實現有mpi, pvm等;分布式共享程式設計模型是指有硬體或軟體的支援,在分布式體系結構下實現的具有共享變數程式設計模型特點的程式設計模型。後者可以分別按照硬體或軟體的實現分為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等大公司;國內則主要是中科院計算所,國防科大,北京大學,國家氣象中心等單位。

併發模型和並行程式設計模型

併發性考慮的是同時發生的兩個或者兩個以上的活動。2 併發處理有佇列等候 喚醒 執行至少三個這樣的步驟。併發是巨集觀概念,在微觀上它們都是序列被處理的,只不過資源不會在某乙個上面被阻塞,一般都是通過時間進行輪轉,所以在巨集觀上看多個幾乎同時到達的請求同時被處理。同乙個時刻到達的請求也會根據優先順序的不...

debug並行模型

乙個bug找了一天,在matlab中有乙個並行模型,兩個分支同時對乙個變數進行操作。而變數需要和外界 互動,這樣就導致了變數變化十分複雜。在stateflow模型中,輸入狀態,輸出狀態,模型本身的計算時序一定要分清楚。毫無疑問,外部動作肯定筆內部動作慢。所以內部在輸出前一定要保證輸出狀態是正確的。在...

《平行計算的程式設計模型》一1 11 總結

mpi第乙個版本發布距今已逾20多年了,在並行開發應用領域取得了巨大的成功,在大規模並行軟體開發應用中佔主導地位。mpi成功的原因在於mpi為並行軟體開發提供了健壯和完善的解決方案,並允許使用者高效地實現大規模並行軟體開發目標。mpi成功的具體原因可參考文獻 129 mpi定義的開放程序和避免了其他...