程介紹:
MPI(Message Passing Interface)是目前最重要的一種並行編程工具和環境,幾乎所有重要的並行電腦廠商都提供對它的支援,MPI將功能、高效和移植性三個重要而又有一定矛盾的方面很好地融為一體,這是MPI能夠取得成功的重要原因。
SIMD/MIMD並行電腦:
指令和資料是電腦解決問題所涉及到的兩個基本方面,即讓電腦"執行什麼"樣的操作和對"什麼對象"執行相應的操作,雖然現在電腦有了很大的發展,但他們仍然有重要的地位和作用,這也是為什麼指令資料的劃分方式至今仍在使用的重要原因。不管是同時執行多條指令,還是同時處理多個資料,具有這樣功能的電腦都可以稱為並行電腦。
根據一個並行電腦能夠同時執行的指令與處理資料的多少,可以把並行電腦分為SIMD(Single-Instruction Multiple-Data)單指令多資料並行電腦和MIMD(Multiple-Instruction Multiple-Data)多指令多資料並行電腦。
舉例說明SIMD電腦的功能
SIMD電腦同時用相同的指令對不同的資料進行操作,比如對於數組賦值運算
A=A+1
在SIMD並行機上可以用加法指令同時對數組A的所有元素實現加1。即數組(或向量)運算特別適合在SIMD並行電腦上執行,SIMD並行機可以對這種運算形式進行直接地支援,高效地實現。
舉例說明MIMD電腦的功能
MIMD電腦同時有多條指令對不同的資料進行操作,比如對於算術運算式
A=B+C+D-E+F*G
可以轉換為
A=(B+C)+(D-E)+(F*G)
加法(B+C),減法(D-E),乘法(F*G)如果有相應的直接執行組件,則這三個不同的計算可以同時進行。
SPMD/MPMD並行電腦
SIMD和MIMD這種表達方法雖然至今還在廣泛使用,但是,隨著新的並行電腦群組織方式的產生,比照上面的劃分方法,人們按同時執行的程式和資料的不同,又提出了SPMD(Single-Program Multuple-Data)單程式多資料並行電腦和MPMD(Multiple-Program Multiple-Data)多程式多資料並行電腦的概念。
並行電腦的分類:
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
共用記憶體的並行電腦
對於共用記憶體的並行電腦,各個處理單元通過對共用記憶體的訪問來交換資訊、協調各處理器對並行任務的處理。對這種共用記憶體的編程,實現起來相對簡單,但共用記憶體往往成為效能特別是擴充性的重要瓶頸。
分布式記憶體的並行電腦
對於分布式記憶體的並行電腦,各個處理單元都擁有自己獨立的局部儲存空間,由於不存在公用可用的儲存單元,因此各個處理器之間通過訊息傳遞來交換資訊,協調和控制各個處理器的執行。這是本書介紹的訊息傳遞並行編程模型所面對的並行電腦的儲存方式。不難看出,通訊對分布式記憶體並行電腦的效能有重要的影響,複雜的訊息即時通行陳述式的編寫成為在這種並行電腦上進行並行程式設計的痛點所在,但是,對於這種類型的並行電腦,由於它有很好的擴充性和很高的效能,因此,它的應用非常廣泛。
分布式共用記憶體的並行電腦
分布式共用記憶體的並行電腦結合了前兩者的特點,是當今新一代並行電腦的一種重要發展方向。對於目前越來越流行的機群計算(Cluster Computing),大多採用這種形式的結構。通過提高一個局部結點內的計算能力,使它成為所謂的"超結點",不僅提高了整個系統的計算能力,而且可以提高系統的模組性和擴充性,有利於快速構造超大型的計算系統。以下是圖表示:
<!--[if !vml]--><!--[endif]-->
物理問題在並行電腦上的求解步驟是怎樣的?
多級映射
沒學過並行電腦,哎,還是要去找一些資料來看看,要不學不明白