【並行算法】問題的基本求解過程和並行計算機模型

問題的基本求解過程

1)建立實際應用問題的理論模型(物理模型或數學模型);

2)理論模型的並行算法設計(在並行機上爲該模型設計高效算法);

3)算法程序的實現

並行算法研究的目的:探索在並行計算機上解決應用問題的高效算法。


並行計算機模型

馮-諾依曼計算機是一個理想的通用串行計算機模型,但是對並行計算來說,到目前爲止,沒有一個類似的通用並行計算模型。在過去幾十年中,人們針對不同類型的並行計算機提出了多種並行計算模型: 1) PRAM模型;2 )異步APRAM模型;3) BSP模型;4) logP模型。

並行計算模型:從並行算法的設計和分析出發,將各種並行計算機(至少是某一類)的基本特徵抽象出來,形成一個抽象的並行計算模型。

並行計算模型爲並行計算提供了硬件和軟件系統的設計界面,在該界面的約定下,並行系統的硬件和軟件設計者可以開發硬件結構和軟件(算法、操作系統、語音等)。並行計算模型只是並行計算的理論模型,無須估計實現細節和物理約束條件;並行計算模型不同於某一類並行機。

並行計算模型的作用

1)是並行算法實現的基礎

2)給並行算法設計與分析提供了一個簡單方便的框架

3)使並行算法的設計具有一定的生命力

我們知道,並行算法的設計依賴於並行計算模型,由於並行計算模型與具體並行系統的差異性,一個並行算法在不同計算系統上運行的效率是不同的。因此,研究並行計算模型在具體並行計算系統上實現的規律對開發高性能的並行計算軟件具有重要意義。

一、PRAM模型

(Parallel Random Access Machine並行隨機存取機器)

基本概念

由Fortune和Wyllie1978年提出,又稱SIMD-SM模型。有一個集中的共享存儲器和一個指令控制器,通過SM的R/W交換數據,隱式同步計算。(SIMD——單指令流,多數據流;SM——共享內存)

結構圖

(p表示處理器,LM表示局地內存)

PRAM(Parallel Random Access Machine)模型是單指令流多數據流(SIMD)並行機中的一種具有共享存儲的模型。它假設有一個無限大容量的共享存儲器,並且有多個功能相同的處理器,在任意時刻處理器可以訪問共享存儲單元。

根據是否可以同時讀寫,它又分爲以下三類:

PRAM-EREW,PRAM-CREW,PRAM-CRCW(其中C代表Cuncurrent,意爲允許併發操作,E-代表Exclusive,意味排斥併發操作)。在PRAM中有一個同步時鐘,所有的操作都是同步進行的。

PRAM模型優缺點

優點

適合並行算法表示和複雜性分析,易於使用,隱藏了並行機的通訊、同步等細節。

缺點

不適合MIMD(多指令流,多數據流)並行機,忽略了SM的競爭、通訊延遲等因素

不現實,首先容量無限大的存儲器是不存在的,而且由於各方面的原因,全局訪存通常要比預想的慢。其次,他忽略了通信帶寬的影響。

共享存儲模型-SM模型

共享存儲模型特別適合於並行算法的表達、分析和比較;使用簡單,很多諸如處理器間通信、存儲管理和進程同步等並行機的低級細節均隱含於模型中;易於設計算法和稍加修改便可運行於不同的並行機上。由於本模型是一個同步模型,意味着指令按照鎖步方式執行,共享單一存儲器的假定,顯然不適合於分佈存儲的異步 MIMD機器。

二、異步APRAM(Asynchrinize)模型

基本概念

又稱分相(Phase)PRAM或MIMD-SM。每個處理器有其局部存儲器、局部時鐘、局部程序;無全局時鐘,各處理器異步執行;處理器通過SM進行通訊;處理器間依賴關係,需在並行程序中顯式地加入同步(路)障(Synchronization Barrier)。

指令類型

(1)全局讀                       (3)全局寫

(2)局部操作                   (4)同步

APRAM模型中的指令類型:

全局讀:將全局存儲單元中的內容讀入局存單元中。

局部操作:對局存中的數執行操作,其結果存入局存中。

全局寫:將局存單元中的內容寫入全局存儲單元中。

同步:是計算中的一個邏輯點,在該點各處理器均需等待別的處理器到達後才能繼續執行其局部程序。

計算過程

由同步障分開的全局相組成

(處理器1到處理器p通過分項來實現各個操作,在每一個分項中以讀(read)開始,以寫(write)結束;*表示局部操作,局部操作可以是不同的,也就是異步實現;當分項中完成最後一個寫的操作,把該寫操作當成一個同步障;然後執行下一個分項中的內容.)

APRAM模型中的計算:

計算由一系列用同步障分開的全局項所組成。

如上圖,在各全局相內,每個處理器異步地運行其局部程序。

每個局部程序中最後一條指令是一條同步障指令。

各處理器均可異步地讀取和寫入全局存儲器,但在同一相內不允許兩個處理器訪問同一單元。

優缺點    

易編程和分析算法的複雜度,但與現實相差較遠,其上並行算法非常有限,也不適合MIMD-DM模型。

三、LogP模型

基本概念

由Culler(1993)年提出的,是一種分佈存儲的、點到點通訊的多處理機模型,其中通訊由一組參數描述,實行隱式同步。

該計算模型能夠作爲設計和分析快速、可移植並行算法的基礎,並使得這樣設計出的並行算法在現在和未來大部分並行計算機上能高效實現。

【發送信息的照片,來源於網絡】

(如果一個用戶A給一個用戶B發送信息,A編輯完之後將信息發送給B,B在接受的時候,實際上信息傳遞有一個延遲,並不是A發送的時候,B就能夠立刻接受到;另外當A編輯的信息比較長的時候,會把信息合成多段去發送,在B接受信息的時候,每段信息都有一段很短的時間間隔。)

LogP模型中的參數

L(Latency):源處理機與目標處理機之間進行消息通信(一個或幾個字)所需等待的延遲時間的上限。

o(overhead):處理機用於發送或者接受每個消息的時間開銷。

g(gap):一臺處理機連續進行消息發送或接收時的最小時間間隔。  

P(Processor):處理機或處理模塊的數量

 LogP模型是異步的,假設所有消息都很短。

優缺點    

捕捉了MPC的通訊瓶頸,隱藏了並行機的網絡拓撲、路由、協議,可以應用到共享存儲、消息傳遞、數據並行的編程模型中;但難以進行算法描述、設計和分析。

四、BSP模型

BSP模型以三個參數描述分佈式存儲的多計算模型。

三個參數:  

處理機(P)  

處理機之間的點對點通信的選路器(g)  

執行以時間間隔L爲週期的路障同步器(L)

在BSP模型中,計算由一系列用全局同步器分開的週期爲L的超級步組成。  

LogP模型和BSP模型在效率上是等效的。

BSP vs LogP

BSP\rightarrowLogP:BSP塊同步\rightarrowBSP子集同步\rightarrowBSP進程對同步=LogP

BSP可以常數因子模擬LogP,LogP可以對數因子模擬BSP

BSP=LogP+Barriers-Overhead

BSP提供了更方便的程設環境,LogP更好地利用了機器資源

BSP似乎更簡單、方便和符合結構化編程

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章