並行算法的通常概念
並行算法的定義
- 並行算法是適合於在各類並行計算機上求解問題和處理數據的算法。它是一些可同時執行的諸進程的集合,這些進程相互做用和協調動做從而達到對給定問題的求解。
並行算法分類
- 數值計算:基於關係的一類運算。如矩陣運算,多項式求解。
- 非數值計算:基於比較關係的一類運算。如排序、選擇、搜索、匹配、圖論。
- 同步運算:某些進程必須等待別的進程(結果)的一類運算。
- 異步運算:某些進程的執行沒必要等待別的進程(結果)的一類運算。
- 有效並行算法:並行算法相對串行算法在性能(效率)方面,器時間關係具備對數特徵,則這種並行算法是有效並行算法。
算法表達
- 通常採用形式化描述的方法,不提倡使用具體語言描述。
- 使用的關係詞要配對,具備層次感。
算法分析
- 通常考慮的是算法的時空複雜度呈現最壞狀況下的算法複雜度(即worst-case-complexity)
- 在MIMD計算模型上的並行算法的參量有:運行時間t(n):在給定的模型上求解問題規模爲n的給定問題所需時間,包括:①計算時間tc在某一處理器執行算/邏運算所需時間。②選路時間tr數據從原處理機到目的處理機所需時間。 處理機數p(n):求解給定問題所需的處理機數。
- 在MIMD計算模型上的並行算法的參量有:通訊複雜度:算法在整個執行期間能傳送的報文總數。時間複雜度:算法以第一臺處理機開始執行到最後一臺處理機執行停止所需時間。
- 界:①上界:令f(n)和g(n)是定義在天然數集合N上的兩個函數,若是存在兩個正的常數c和n0,使得對於全部n≥n0,均有f(n)≤c*g(n),則稱g(n)是f(n)的一個上界,記爲f(n)=O(g(n))。②下界:令f(n)和g(n)是定義在天然數集合N上的兩個函數,若是存在兩個正的常數c和n0,使得對於全部n≥n0,均有f(n)≥c*g(n),則稱g(n)是f(n)的一個下界,記爲f(n)=Ω(g(n))。③精確界::令f(n)和g(n)是定義在天然數集合N上的兩個函數,若是存在正的常數c1,c2和n0,使得對於全部n≥n0,均有c1*g(n)≤f(n)≤c2*g(n),則稱g(n)是f(n)的一個精確界,記爲f(n)=Θ(g(n))。
算法指標
算法開銷
- 並行算法運行時間tp(n)與其所需處理器數量p(n)的乘積,即tp(n)*p(n)
- 若是ts(n)=tp(n)*p(n)=串行計算的步數(節拍數)則算法稱爲最優
加速比
- Sp(n)=(最快的串行算法最壞的運行時間)/(並行算法最壞的運行時間)=ts(n)/tp(n)
- 通常有:ts(n)≤p(n)*tp(n)(通訊、同步開銷);1≤Sp(n)≤p(n)
效率
- Ep(n)=Sp(n)/p(n)(加速比/處理機數)
- 通常有:0<Ep(n)≤1
並行計算模型
PRAM:SIMD-SM
基本概念
- PRAM(並行隨機訪問機器)模型也稱爲SIMD-SM模型,用於細粒度並行計算
- 採用集中式共享存儲器模式,單一的編程訪問空間
- 隱式同步機制
優勢
- 適於表示和分析並行計算的複雜性
- 隱匿了並行計算機的大部底層細節(如通訊、同步),從而易於使用
缺點
- 不適於MIMD計算機,存在存儲器競爭和通訊延遲問題
模型圖示
APRAM:MIMD-SM
基本概念
- APRAM模型也稱爲分段(phase)PRAM模型;
- 用於中粒度的並行計算
- 採用集中式共享存儲器,單一的訪問地址空間
- (進程間)異步操做,但讀/寫共享變量操做採用顯示同步方式
計算模式
- 計算由若干個用同步點(barrier)劃分的段組成
- 每一段異步運行局部程序
- 讀/寫操做在同步點進行同步
優勢
- 保存了PRAM的簡單性
- 可編程性和可調試性(correctness)好
- 易於進行程序複雜性分析
缺點
計算模式圖示
模型圖示
BSP:MIMD-DM
基本概念
- BSP模型是一種分佈式存儲器的多處理機模型,又稱大同步模型
- 用於中大粒度並行計算
- (進程間)異步操做
- 採用報文發送和接收的通訊方式進行顯示同步
參數和計算模式
- BSP把並行計算機抽象爲3個參數:P(處理機),g(寬帶因子)和l(同步間隔)
- 計算由同步點(barrier)劃分爲若干個Supersteps
- 每一個Superstep中實現異步的局部計算
- 在同步點經過發送和接收h-message進行同步
優勢
- 把計算和通訊分割開來
- 使用hashing自動進行存儲器和通訊管理
- 提供了一個編程環境
缺點
- 顯式的同步機制限制並行計算機數據的增長
- 在一個Superstep中最多隻能傳遞h個報文
BSP編程模式
BSP的開銷
- Csuperstep=maxWi+maxHig+L
- process最大延遲時間
- Wi-進程pi的局部計算時間
- Hi-進程pi發送和接收的最大包數
- g-1/帶寬(timestep/packet)(吞吐量 帶寬因子)
- L-同步點同步時間間隔(同步點個數)
- 這裏若是g=l=1,則BSP=PRAM-SIMD
- S=1-›帶寬因子,吞吐率100%
- L=1-›若1個時間間隔爲1個時間單位,則爲1個同步點
LogP:MIMD-DM
基本概念
- LogP模型是技術趨勢,編程經驗和現行理論的綜合產物
- 用於大粒度並行計算
- 使用分佈式存儲器的單一的和多重訪問地址空間
- 進程間異步操做
- 採用報文通訊方式隱式實現同步操做,即子集同步
參數和計算
- LogP模式把通訊網絡抽象爲3個參數:L(網絡延時),O(通訊開銷),g(網絡帶寬)
- 計算過程有若干Superstep組成
- 在每一個Superstep中異步地實現局部計算並經過發送/接收L/g報文進行同步
優勢
- 可捕捉並行計算機的(同步)通訊瓶頸(經過發送或接收L/g個報文)
- 可隱匿拓撲結構,路由算法和網絡協議的細節
- 可用於共享變量,報文傳遞和數據並行處理等方案
缺點
參考文獻
https://wenku.baidu.com/view/382879f2561252d381eb6e5f.html?sxts=1542528770069html