廣義上講,并行可以分為幾類,1. 共享內存并行(明確的線程,比如Pthreads和Java threads);2.共享內存并行(任務/數據的并行,比如OpenMP); 2. 分布式并行(明確的通信,比如MPI, SHMEM, 和Global Arrays); 3. 分布式并行(特殊的全局訪問,比如Co-Array Fortran, UPC)。
具體說來,
Pthreads 是一個共享內存的編程模型,并行化通過并行調用函數來實現。一個并行函數體被多個線程同步的執行,這些線程都可以訪問共享的全局數據。Pthreads是許多并行模型的底層實現。
Java是一個通用的編程語言,它通過線程的形式來支持并行化。并行Java程序運行在共享內存處理器上,它非常類似于Pthreads程序。Pthreads和Java僅僅在共享內存處理器上存在。
OpenMP也是共享內存模型,它的并行化是通過為循環和函數定義并行注釋(parallel directives)來實現。OpenMP注釋可以指出哪些循環部分可以并行執行,以及可以并行起來的函數。其它的一些注釋用于指出針對某一進程的共享或私有的數據。編譯器可以將OpenMP程序翻譯成像Pthreads一樣的程序,其中并行的循環體都會被翻譯成并行函數的形式。OpenMP是一個工業標準的并行化庫,被多種語言和平臺所支持。OpenMP目前僅僅應用于共享內存處理器。
MPI是分布式內存模型,其線程需要明確的進行通信,這些通信基于MPI運行時庫來發送和接受數據。MPI被廣泛采納,任何并行平臺都能找到它。它的性能也已經被調優。盡管需要一定的編程才能實現,MPI由于其可移植性和性能表現,是目前最受歡迎的并行模式。
許多科學應用具有非常規則的內存訪問模式,因此可以很容易的并行起來。三種典型的應用是,1. 不規則的表訪問,涉及到許多并行數據庫操作;2.不規則的動態訪問,涉及到稀疏的數據結構,比如共軛梯度法求n階稀疏矩陣的主特征值;3. 內存排序 in-memory sorting。
來源:
Evaluating the Imapct of Programming Language Features on the Performance of Parallel Applications on Cluster Architectures (by Konstantin Berlin, et al.)
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享標題:幾種并行模型比較-創新互聯
URL分享:http://m.kartarina.com/article4/cdcdoe.html
成都網站建設公司_創新互聯,為您提供建站公司、全網營銷推廣、靜態網站、企業建站、營銷型網站建設、品牌網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯