PRAM模型
類型
PRAM(Parallel Random Access Machine,
隨機存取並行機器)模型,也稱為共享存儲的SIMD模型,是一種抽象的並行計算模型,它是從串列的RAM模型直接發展起來的。在這種模型中,假定存在一個容量無限大的共享
存儲器,有有限個或無限個功能相同的處理器,且他們都具有簡單的算術運算和邏輯判斷功能,在任何時刻各處理器都可以通過共享
存儲單元相互互動數據。根據處理器對共享存儲單元同時讀、同時寫的限制,PRAM模型可以分為下面幾種:
· 不允許同時讀和同時寫(Exclusive-Read and Exclusive-Write)的
PRAM模型,簡稱為PRAM-EREW;
· 允許同時讀但不允許同時寫(Concurrent-Read and Exclusive-Write)的PRAM模型,簡稱為PRAM-CREW;
· 允許同時讀和同時寫(Concurrent-Read and Concurrent-Write)的PRAM模型,簡稱為PRAM-CRCW。
顯然,允許同時寫是不現實的,於是又對PRAM-CRCW模型做了進一步約定,於是形成了下面幾種模型:
· 只允許所有的處理器同時寫相同的數,此時稱為公共(common)的PRAM-CRCW,簡稱為CPRAM-CRCW;
· 只允許最優先的處理器先寫,此時稱為優先(Priority)的PRAM-CRCW,簡稱為PPRAM-CRCW;
· 允許任意處理器自由寫,此時稱為任意(Arbitrary)的PRAM-CRCW,簡稱為APRAM-CRCW。
· 往
存儲器中寫的實際內容是所有處理器寫的數的和,此時稱為求和(Sum)的PRAM-CRCE,將稱為SPRAM-CRCW。
上面的模型中,PRAM-EREW是功能最弱的計算模型,而PRAM-CRCW則是最強的計算模型,令TM表示某一
並行算法在並行計算模型M上的運行時間,則有
其中,p為處理器的數目,它的含義是,一個具有
時間複雜度為TCREW或者TCRCW的算法,在PRAM-EREW模型上要花費logp倍的時間去模擬實現。
PRAM模型的優點
PRAM模型特別適合於
並行算法的表達、分析和比較,使用簡單,很多關於並行計算機的底層細節,比如處理器間通信、存儲系統管理和
進程同步都被隱含在模型中;易於設計算法和稍加修改便可以運行在不同的並行計算機系統上;根據需要,可以在PRAM模型中加入一些諸如同步和通信等需要考慮的內容。
PRAM模型的缺點
(1)模型中使用了一個全局共享
存儲器,且局存容量較小,不足以描述分布主存
多處理機的性能瓶頸,而且共享單一存儲器的假定,顯然不適合於分布
存儲結構的MIMD機器;
(2)
PRAM模型是同步的,這就意味著所有的指令都按照鎖步的方式操作,用戶雖然感覺不到同步的存在,但同步的存在的確很耗費時間,而且不能反映現實中很多系統的
異步性;
(3)PRAM模型假設了每個處理器可在單位時間訪問共享存儲器的任一單元,因此要求
處理機間通信無延遲、無限
頻寬和無開銷,假定每個處理器均可以在單位時間內訪問任何存儲單元而略去了實際存在的,合理的細節,比如資源競爭和有限頻寬,這是不現實的;
(4)
PRAM模型假設處理機有限或無限,對並行任務的增大無開銷;
(5)未能描述所執行緒技術和流水線預取技術,而這兩種技術又是當今並行體系結構用的最普遍的技術。
BSP模型
BSP模型的特點
BSP模型是個分布存儲的MIMD計算模型,其特點是:
· 它將處理器和
路由器分開,強調了計算任務和通信任務的分開,而路由器僅僅完成點到點的訊息傳遞,不提供組合、複製和廣播等功能,這樣做既掩蓋具體的互連網路拓撲,又簡化了
通信協定;
· 採用障礙同步的方式以硬體實現的全局同步是在可控的粗粒度級,從而提供了執行緊耦契約步式
並行算法的有效方式,而程式設計師並無過分的負擔;
· 在分析
BSP模型的性能時,假定局部操作可以在一個時間步內完成,而在每一個
超級步中,一個處理器至多傳送或接收h條訊息(稱為h-relation)。假定s是傳輸建立時間,所以傳送h條訊息的時間為gh+s,如果 ,則L至少應該大於等於gh。很清楚,硬體可以將L設定儘量小(例如使用流水線或大的通信頻寬使g儘量小),而軟體可以設定L的上限(因為L越大,並行粒度越大)。在實際使用中,g可以定義為每秒處理器所能完成的局部計算數目與每秒路由器所能傳輸的數據量之比。如果能夠合適的平衡計算和通信,則
BSP模型在可程式性方面具有主要的優點,而直接在BSP模型上執行算法(不是自動的編譯它們),這個優點將隨著g的增加而更加明顯;
· 為
PRAM模型所設計的算法,都可以採用在每個BSP處理器上模擬一些PRAM處理器的方法來實現。理論分析證明,這種模擬在常數因子範圍內是最佳的,只要
並行寬鬆度(Parallel Slackness),即每個BSP處理器所能模擬的PRAM處理器的數目足夠大。在並發情況下,多個處理器同時訪問分散式的
存儲器會引起一些問題,但使用散列方法可以使程式均勻的訪問分散式存儲器。在PRAM-EREW情況下,如果所選用的散列函式足夠有效,則L至少是對數的,於是模擬可以達到最佳,這是因為我們想在p個物理處理器的
BSP模型上,模擬個虛擬處理器,可將個虛擬處理器分配個每個物理處理器。在一個
超級步內,v次存取請求可以均勻分布,每個處理器大約v/p次,因此計算機執行本次超級步的最佳時間為O(v/p),且機率是高的。同樣,在v個處理器的PRAM-CRCW模型中,能夠在p個處理器(如果 ),和的BSP模型上用O(v/p)的時間也可以達到最佳模擬。
對BSP模型的評價
· 在並行計算時,Valiant試圖也為軟體和硬體之間架起一座類似於馮·諾伊曼機的橋樑,它論證了
BSP模型可以起到這樣的作用,正是因為如此,BSP模型也常叫做橋模型;
· 一般而言,分布存儲的MIMD模型的可程式性比較差,但在BSP模型中,如果計算和通信可以合適的平衡(例如g=1),則它在可程式方面呈現出主要的優點;
· 在BSP模型上,曾直接實現了一些重要的算法(如矩陣乘、並行前序運算、FFT和排序等),他們均避免了
自動存儲管理的額外開銷;
· BSP模型可以有效的在超立方體網路和光
交叉開關互連技術上實現,顯示出,該模型與特定的技術實現無關,只要
路由器有一定的通信
吞吐率;
· 在BSP模型中,
超級步的長度必須能夠充分的適應任意的h-relation,這一點是人們最不喜歡的;
· 在
BSP模型中,在超級步開始傳送的訊息,即使網路延遲時間比超級步的長度短,它也只能在下一個超級步才能使用;
· BSP模型中的全局障礙同步假定是用特殊的硬體支持的,這在很多並行機中可能沒有相應的硬體;
· Valiant所提出的編程模擬環境,在算法模擬時的常數可能不是很小的,如果考慮到進程間的切換(可能不僅要設定
暫存器,而且可能還有部分高速快取),則這個常數可能很大。
LogP模型
描述
根據技術發展的趨勢,20世紀90年代末和未來的並行計算機發展的主流之一是巨量並行機,即MPC(Massively Parallel Computers),它由成千個功能強大的處理器/
存儲器節點,通過具有有限頻寬的和相當大的延遲的
互連網路構成。所以我們建立並行計算模型應該充分考慮到這個情況,這樣基於模型的
並行算法才能在現有和將來的並行計算機上有效的運行。根據已有的編程經驗,現有的共享存儲、訊息傳遞和數據並行等編程方式都很流行,但還沒有一個公認的和占支配地位的編程方式,因此應該尋求一種與上面的編程方式無關的計算模型。而根據現有的理論模型,共享存儲
PRAM模型和互連網路的SIMD模型對開發並行算法還不夠合適,因為它們既沒有包含分布存儲的情況,也沒有考慮通信和同步等實際因素,從而也不能精確的反映運行在真實的並行計算機上的算法的行為,所以,1993年D.Culer等人在分析了分散式存儲計算機特點的基礎上,提出了
點對點通信的多計算機模型,它充分說明了網際網路的性能特性,而不涉及到具體的網路結構,也不假定算法一定要用現實的訊息傳遞操作進行描述。
LogP模型是一種分布存儲的、點到點通信的
多處理機模型,其中通信網路由4個主要參數來描述:
(1)L(Latency) 表示源
處理機與目的處理機進行訊息(一個或幾個字)通信所需要的等待或延遲時間的上限,表示網路中訊息的延遲。
(2)o(overhead)表示處理機準備傳送或接收每個訊息的時間開銷(包括作業系統核心開銷和
網路軟體開銷),在這段時間裡處理不能執行其它操作。
(3)g(gap)表示一台處理機連續兩次傳送或接收訊息時的最小時間間隔,其倒數即微處理機的通信頻寬。
(4)P(Processor)
處理機/存儲器模組個數
假定一個周期完成一次局部操作,並定義為一個時間單位,那么,L,o和g都可以表示成處理器周期的整數倍。
LogP模型的特點
(1)抓住了網路與
處理機之間的性能瓶頸。g反映了通信
頻寬,單位時間內最多有L/g個訊息能進行處理機間傳送。
(2)處理機之間異步工作,並通過處理機間的
訊息傳送來完成同步。
(3)對
多執行緒技術有一定反映。每個物理處理機可以模擬多個虛擬處理機(VP),當某個VP有訪問請求時,計算不會終止,但VP的個數受限於通信頻寬和上下文交換的開銷。VP受限於
網路容量,至多有L/g個VP。
(4)訊息延遲不確定,但延遲不大於L。訊息經歷的等待時間是不可預測的,但在沒有阻塞的情況下,最大不超過L。
(5)
LogP模型鼓勵編程人員採用一些好的策略,如作業分配,計算與通信
重疊以及平衡的通信模式等。
(6)可以預估算法的實際運行時間。
LogP模型的不足之處
(1)對網路中的通信模式描述的不夠深入。如重發訊息可能占滿頻寬、中間路由器快取飽和等未加描述。
(2)
LogP模型主要適用於訊息傳遞算法設計,對於共享存儲模式,則簡單地認為遠地讀操作相當於兩次訊息傳遞,未考慮流水線預取技術、Cache引起的
數據不一致性以及Cache命中率對計算的影響。
(4)LogP模型假設用
點對點訊息
路由器進行通信,這增加了編程者考慮路由器上相關通信操作的負擔。
C3模型
C3模型假定
處理機不能同時傳送和接收訊息,它對超步的
性能分析分為兩部分:計算單元CU,依賴於本地計算量;通信單元COU,依賴與處理機傳送和接收數據的多少、訊息的延遲及通信引起的擁擠量。該模型考慮了兩種路由(
存儲轉發路由和
蟲蝕尋徑路由)和兩種傳送/接收原語(阻塞和無阻塞)對COU的影響。
C3 模型的特點
(1)用Cl和Cp來度量網路的擁擠對算法性能的影響;
(2)考慮了不同路由和不同傳送或接收原語對通信的影響;
(3)不需要用戶指定調度細節,就可以評估超步的
時間複雜性;
(4)類似於H-PRAM模型的
層次結構,C3模型給編程者提供了K級
路由算法的思路,即系統被分為K級子系統,各級子系統的操作相互獨立,用超步代替了H-PRAM中的Sub PRAM進行分割。
C3 模型的不足之處
(1)Cl度量的前題假設為同一通信對中的2個處理機要分別位於網路對分後的不同子網路內;
(2)模型假設了網路頻寬等於
處理機頻寬,這影響了正確描述可擴展系統;
(3)在K級算法中,處理機間順序可以由多種排列,但C3模型不能區分不同排列的難易程度。
BDM模型
1996年J.F.JaJa等人提出了一種塊分布存儲模型(BDM, Block Distributed Model)。它是共享存儲編程模式與基於訊息傳遞的分布
存儲系統之間的橋樑模型。主要的4個參數為:
(1) P 處理器個數;
(2)τ
處理機從發出訪問請求到得到遠程數據的最大延遲時間(包括準備請求時間、請求包在網路中路由的時間、目的處理機接收請求的時間以及將包中M個連續字返回給原處理機的時間);
(3)M 局部存儲器中連續的M個字;
(4)σ 處理機傳送數據到網路或從網路接收數據的時間。
BDM模型的特點
(1)用M反映出空間局部性特點,提供了一種評價共享主存算法的性能方法,度量了因
遠程訪問引起的處理間的通信;
(3)可程式型好;
(4)考慮了共享主存中的存儲競爭問題;
(5)可以用來分析網路路由情況。
BDM模型的不足
(1)認為初始數據置於局存中,對於共享主存程式的編程者來說,需要額外增加數據移動操作;