- 留學生輔導網(wǎng)
- 關于我們 網(wǎng)站地圖 免責聲明
碩士課程輔導
并行編程模型是硬件和內存架構的抽象。實際上,這些模型并不涉及特定的機器類型或內存架構;至少在理論上,它們可以在任何類型的機器上實現(xiàn)。與前一種區(qū)別相比,這些編程模型是在更高層次上創(chuàng)建的,代表了軟件應如何實現(xiàn)并行計算。 每種模型都有自己訪問內存和與其他處理器共享信息以分配工作的方式。
沒有哪種編程模型絕對更好,最佳的實施模型在很大程度上取決于程序員需要解決的問題。最常用的并行編程模型有共享內存模型、多線程模式、消息傳遞模型、并行數(shù)據(jù)模型。

在這種模型中,任務共享一個共同的內存區(qū)域,對共享資源(讀寫數(shù)據(jù))的訪問是異步的。程序員可以通過鎖和 Semaphores 等機制來控制對共享內存的訪問。這種模式的優(yōu)點是,程序員不必對任務間的通信作出明確規(guī)定。性能方面的一個主要缺點是很難理解和管理數(shù)據(jù)局部性。將數(shù)據(jù)保持在執(zhí)行該數(shù)據(jù)的處理器本地,可以節(jié)省內存訪問、緩存更新和總線流量,否則多個處理器使用相同數(shù)據(jù)時就會出現(xiàn)這些問題。
在這種模式下,一個進程可以有多個執(zhí)行線程。例如,先創(chuàng)建一個順序部分,然后創(chuàng)建一系列可并行執(zhí)行的任務。這種模式通常用于共享內存架構。因此,管理在共享內存中運行的線程之間的同步非常重要,程序員必須確保多個線程不會同時更新同一位置。目前的處理器既有基于軟件的多線程,也有基于硬件的多線程;Posix 線程是基于軟件實現(xiàn)多線程的典型例子;英特爾的超線程技術允許兩個線程在一個線程崩潰或等待 I/O 時進行切換。該模型通過在硬件中實現(xiàn)多線程,當一個線程停滯或等待 I/O 時,在兩個線程之間進行切換。有了這種模型,即使數(shù)據(jù)放置是非線性的,也能實現(xiàn)并行性。
當每個處理器都有自己的內存(分布式內存系統(tǒng))時,通常會使用消息傳遞模型。多個任務可能存在于同一臺物理機器上,也可能存在于任意數(shù)量的機器上。程序員負責定義并行性和通過消息進行的數(shù)據(jù)交換。實現(xiàn)這種模式的并行編程需要在代碼中使用(特別的)軟件庫。盡管自 20 世紀 80 年代以來,已經(jīng)有許多消息傳遞模型的實現(xiàn)方法,也有一些實例,但直到 20 世紀 90 年代中期才創(chuàng)建了一個標準化模型,并以消息傳遞接口(MPI)的名稱成為事實上的標準。MPI 模型顯然是為分布式內存而設計的,但與并行編程模型一樣,它也可以在具有共享內存的機器上使用。
在這種模式下,我們有多個任務處理相同的數(shù)據(jù)結構,但每個任務處理數(shù)據(jù)的不同部分。在共享內存架構中,所有任務都通過共享內存架構訪問數(shù)據(jù),而在分布式內存架構中,數(shù)據(jù)結構是分布式的,位于每個任務的本地內存中。要實現(xiàn)這種模式,開發(fā)人員必須開發(fā)一個應用程序來決定數(shù)據(jù)的分配和對齊。目前新一代的 GPU 在對齊數(shù)據(jù)的情況下可連續(xù)高速運行。
海馬課堂專業(yè)課程輔導,2300+嚴選碩博學霸師資,針對學生的薄弱科目和學校教學進度,匹配背景相符的導師,根據(jù)學生情況進行1V1專屬備課,上課時間靈活安排,中英雙語詳細講解課程中的考點、 難點問題,并提供多方位的課后輔導,輔助學生掌握全部課程知識,補足短板。如果你對此還有疑問,或者有更多關于學業(yè)輔導方面需求的話,可以添加微信號:hmkt131聯(lián)系海馬課堂的Joye老師哦。
相關熱詞搜索:

