並行算法設計基礎

並行算法的通常概念

並行算法的定義

  • 並行算法是適合於在各類並行計算機上求解問題和處理數據的算法。它是一些可同時執行的諸進程的集合,這些進程相互做用和協調動做從而達到對給定問題的求解。

並行算法分類

  • 數值計算:基於關係的一類運算。如矩陣運算,多項式求解。
  • 非數值計算:基於比較關係的一類運算。如排序、選擇、搜索、匹配、圖論。
  • 同步運算:某些進程必須等待別的進程(結果)的一類運算。
  • 異步運算:某些進程的執行沒必要等待別的進程(結果)的一類運算。
  • 有效並行算法:並行算法相對串行算法在性能(效率)方面,器時間關係具備對數特徵,則這種並行算法是有效並行算法。

算法表達

  • 通常採用形式化描述的方法,不提倡使用具體語言描述。
  • 使用的關係詞要配對,具備層次感。

算法分析

  • 通常考慮的是算法的時空複雜度呈現最壞狀況下的算法複雜度(即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)好
  • 易於進行程序複雜性分析

缺點

  • 不適於具備分佈式存儲器的MIMD計算機

計算模式圖示

模型圖示

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

相關文章
相關標籤/搜索