1. 劃分設計技術1.1均勻劃分技術
n個元素A[1..n]分成p組,每組A[(i-1)n/p+1..in/p],i=1~p
樣本:MIMD-SM模型上的PSRS排序
begin
(1)均勻劃分:將n個元素A[1..n]均勻劃分成p段,每個pi處理
A[(i-1)n/p+1..in/p]
(2)局部排序:pi調用串列排序演算法對A[(i-1)n/p+1..in/p]排序
(3)選取樣本:pi從其有序子序列A[(i-1)n/p+1..in/p]中選取p個樣本元素
(4)樣本排序:用一台處理器對p2個樣本元素進行串列排序
(5)選擇主元:用一台處理器從排好序的樣本序列中選取p-1個主元,並
播送給其他pi
(6)主元劃分:pi按主元將有序段A[(i-1)n/p+1..in/p]劃分成p段
(7)全域交換:各處理器將其有序段按段號交換到對應的處理器中
(8)歸併排序:各處理器對接收到的元素進行歸併排序
end.
PSRS排序過程。N=27,p=3,PSRS排序如下:
1.2方根劃分技術
n個元素A[1..n]分成A[(i-1)n^(1/2)+1..in^(1/2)],i=1~n^(1/2)
1.3對數劃分技術
n個元素A[1..n]分成A[(i-1)logn+1..ilogn],i=1~n/logn
1.4功能劃分技術
n個元素A[1..n]分成等長的p組,每組滿足某種特性。
2. 分治設計技術
並行分治設計步驟:
§ 將輸入劃分成若干個規模相等的子問題;
§ 同時(並行地)遞迴求解這些子問題;
§ 並行地歸併子問題的解,直至得到原問題的解。
3. 平衡樹設計技術
以樹的葉結點為輸入,中間結點為處理結點,由葉向根或由根向葉逐層進行平行處理。
4. 倍增設計技術
Ø 又稱指標跳躍(pointerjumping)技術,特別適合於處理鏈表或有向樹之類的資料結構;
Ø 當遞迴調用時,所要處理資料之間的距離逐步加倍,經過k步後即可完成距離為2k的所有資料的計算。
5. 流水線設計技術
Ø 將演算法流程劃分成p個前後銜接的任務片斷,每個任務片斷的輸出作為下一個任務片斷的輸入;
Ø 所有任務片斷按同樣的速率產生出結果。