並行算法:均勻劃分(PSRS)和方根劃分(SIMD-CREW)

例子:均勻劃分技術進行數據的並行排序(N=27,p=3)

(a)均勻劃分(p1,p2,p3)
22,21,9,87,3,5,18,34,68|70,12,24,7,23,65,89,1,3|43,15,6,16,17,45,67,98,66
(b)局部排序
3,5,9,18,21,22,34,68,87|1,3,7,12,23,24,65,70,89|6,15,16,17,43,45,66,67,98
(c)正則採樣
3    18    34        1    12    65        6    17    66
(d)採樣排序
1,3,6,12,17,18,34,65,66
(e)選擇主元(p-1個)
12,34
(f)主元劃分
P1: 3,5,9|18,21,22,34|68,87
P2: 1,3,7,12|23,24|65,70,89
P3: 6|15,16,17|43,45,66,67,98
(g)全局交換
3,5,9,1,3,7,12,15,16,17|18,21,22,34,23,24,15,16,17|68,87,65,70,89,43,45,66,67,98
(h)歸併排序
1,3,3,5,7,9,12,15,16,17|15,16,17,18,21,22,23,24,34|43,45,65,66,67,68,70,87,89,98

例子:請使用劃分設計技術中的方根劃分技術進行數據的並行排序。數據自擬
A={1,3,8,14,16,26,37,45},n=8
B={2,4,7,9,12,19,25,34,42,44,49,50} m=12
(1)、方根劃分
A劃分1~2段,B劃分1~3段
A:1,3,8*,14,16,26*,37,45
B:2,4,7*,9,12,19*,25,34,42*,44,49,50
(2)、段間比較
A1主元8*落在B1段,A2主元26*落在B3段
(3)、段內比較
A1主元8*插入到B1:2,4,7,8*
A2的主元26*插入到B3:25,26*,34,42
(4)、遞歸歸併
此時:
A1{1,3},A2{14,16},A3{37,45}
B1{2,4,7,8},B2{9,12,19},B3{25,26,34,42},B3{44,49,50}
對A1和B1重複(1)-(3)步驟:
a、方根劃分:
A1:1,3*->A11:{1,3*}
B1:2,4*,7,8*->B11:{2,4*},B12:{7,8*}
b、段間比較
A11主元3*落在B11
c 、段內比較
A11插入B11中  B11:2,3,4
最後,同理把A1都併入B1中  B1:{1,2,3,4}
自此完成A1到B1的歸併。
其他段同理。最終歸併後:
B:1,2,3,4,7,8,9,12,14,16,19,25,26,34,37,42,44,45,49,50

 

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