并行计算课件_第1页
并行计算课件_第2页
并行计算课件_第3页
并行计算课件_第4页
并行计算课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

并行计算——结构•算法•编程主讲:雷向东中南大学信息科学与工程学院Central

South

UniversityCollege

of

Information

Science

and

Engineering第二篇并行算法的设计第四章并行算法的设计基础第五章并行算法的一般设计方法第六章并行算法的基本设计技术第七章并行算法的一般设计过程第六章并行算法的基本设计技术划分设计技术分治设计技术平衡树设计技术倍增设计技术流水线设计技术6.1

划分设计技术均匀划分技术方根划分技术对数划分技术功能划分技术均匀划分技术划分方法n个元素A[1..n]分成p组,每组A[(i-1)n/p+1..in/p],i=1~p

示例:MIMD-SM模型上的PSRS排序

begin均匀划分:将n个元素A[1..n]均匀划分成p段,每个pi处理

A[(i-1)n/p+1..in/p]局部排序: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.56均匀划分技术1546489339672911436694089619712215453978458322733722014

15

39

46

48

72

91

93

12

21

36

40

54

61

69

89

97

20

27

32

33

53

58

72

84

97639721240692033726122033394069727233

6914

15

39

46

48

72

91

93

12

21

36

40

54

61

69

89

97

20

27

32

33

53

58

72

84

97141539464872919312213640546169899720273233535872849761214152021273233363940464853545861697272848991939797图6.1例6.1

PSRS排序过程。N=27,p=3,PSRS排序如下:(a)均匀划分:(b)局部排序:6(c)正则采样:(d)采样排序:(e)选择主元:(f)主元划分:6(h)归并排序:(g)全局交换:66.1

划分设计技术均匀划分技术方根划分技术对数划分技术功能划分技术方根划分技术划分方法n个元素A[1..n]分成A[(i-1)n^(1/2)+1..in^(1/2)],i=1~n^(1/2)示例:SIMD-CREW模型上的Valiant归并(1975年发表);(2)段间比较:

A划分元与B划分元比较(至多 对),//有序组A[1..p]、B[1..q],(假设p<=q),处k理=器

数pq

begin(1)方根划分:A,B分别按k

=

pq

确定A划分元应插入iB中p的和区段j;q

分成若干段(i

=1

~

p

、j

=1

~

q

)段内比较:A划分元与B相应段内元素进行比较,并插

入p适

当q的

位置;递归归并:B按插入的A划分元重新分段,与A相应段(A除去原划分元)构成了成对的段组,对每对段组递归执行(1)~(3),直至A组为0时,递归结束;

各组仍按 分配处理器;end.k

=

pq

8方根划分技术示例:A={1,3,8,9,11,13,15,16},p=8;B={2,4,5,6,7,10,12,14,17},q=9A:

1

38*

9

11

13*

15

16B:

2

45*

6

7

10*

12

14p

=

2)q

=

3)p

=

3,

q

=

3,

(p

=

8,

17*

q

=

9,

(1)(2){A:

1

38*

9

11

13*

15

16B:

2

412

14

17*{(3)5*

6(p1=2)7

10*A2:

9

11(p2=2)A2:

15

167

8(q1=6)

B2:

10

12

13(q2=3)B3:

14

17(p1=2)............A1:

1

3B1:

2

4

5

6A1:

1

3*B1:

2

4

5*

67

8*(q1=6)........................A11:

1*

A11:B11:

2

3*

B12:

45

6

78............A:B:

1

23

4

5

6

7

8

9

10

11

12

13

14

15

16

179方根划分技术算法分析pq

(1)算法在并行递归过程中所需的处理器数≤k

=段间比较:

p

q

比较对数≤

pq

=k

;段内比较:

p

q

-1)£

pq

=k递归调用:

A,B

分成若干子段对为(p1,q1),

(p2,q2),……则∑pi≤p,

∑qi≤q,

Cauchy

不等式=>pq

=

kpiqi

£

piqi

£

pi

qi

£

pq

完成。综上,整个过程可用处理器数k

=(2)时间分析l

=

p记λi

是第

i

次递归后的

A

组最大长度,=>

0

,

i10i-1l

£

l

£

£

p2-i

l

=常数C算法在

i

时终止递归,即

p

‡常数C-i2=>1i

£

log

log

p

+常数C由(1)知算法中其他各步的时间为

O(1),

所以

Valiant

归并算法时间tk

(

p,

q)

=

O(log

log

p)

p

£

q6.1

划分设计技术均匀划分技术方根划分技术对数划分技术功能划分技术12对数划分技术划分方法n个元素A[1..n]分成A[(i-1)logn+1..ilogn],i=1~n/logn示例:PRAM-CREW上的对数划分并行归并排序(1)归并过程: 设有序组A[1..n]和B[1..m]j[i]=rank(bilogm:A)为bilogm在A中的位序,即A中小于等于bilogm的元素个数

(2)例:A=(4,6,7,10,12,15,18,20),B=(3,9,16,21)

n=8,m=4=>logm=log4=2=>

j[1]=rank(blogm:A)=rank(b2:A)=rank(9:A)=3,j[2]=…=8B0:

3,

9

B1:

16,

21A0:

4,

6,

7

A1: 10,

12,

15,

18,

20A和B归并化为(A0,B0)和(A1,B1)的归并6.1

划分设计技术均匀划分技术方根划分技术对数划分技术功能划分技术功能划分技术14划分方法n个元素A[1..n]分成等长的p组,每组满足某种特性。示例:(m,n)选择问题(求出n个元素中前m个最小者)功能划分:要求每组元素个数必须大于m;算法:p148算法6.4输入:A=(a1,…,an); 输出:前m个最小者;Begin功能划分:将A划分成g=n/m组,每组含m个元素;局部排序:使用Batcher排序网络将各组并行进行排序;两两比较:将所排序的各组两两进行比较,从而形成MIN序列;排序-比较:对各个MIN序列,重复执行第(2)和第(3)步,直至选出m个最小者。End功能划分技术15第六章并行算法的基本设计技术划分设计技术分治设计技术平衡树设计技术倍增设计技术流水线设计技术6.2

分治设计技术并行分治设计步骤双调归并网络18并行分治设计步骤将输入划分成若干个规模相等的子问题;同时(并行地)递归求解这些子问题;并行地归并子问题的解,直至得到原问题的解。6.2

分治设计技术并行分治设计步骤双调归并网络双调归并网络20双调序列(p149定义6.2)(1,3,5,7,8,6,4,2,0)(8,7,6,4,2,0,1,3,5)(1,2,3,4,5,6,7,8)以上都是双调序列Batcher定理给定双调序列(x0,x1,…,xn-1),对于si=min{xi,xi+n/2}和li=max{xi,xi+n/2},则小序列(s0,s1,…,sn-1)和大序列(l0,l1,…,ln-1)仍是双调序列双调归并网络(4,4)双调归并网络21双调归并网络22Batcher双调归并算法输入:双调序列X=(x0,x1,…,xn-1)输出:非降有序序列Y=(y0,y1,…,yn-1)Procedure

BITONIC_MERG(x)Beginfor

i=0

to

n/2-1

par-do(1.1)

si=min{xi,xi+n/2}(1.2)

li=max{xi,xi+n/2}end

for(2)Recursive

Call:(2.1)BITONIC_MERG(MIN=(s0,…,sn/2-1))(2.2)BITONIC_MERG(MIN=(l0,…,

ln/2-1))(3)output

sequence

MIN

followed

by

sequence

MAXEnd第六章并行算法的基本设计技术划分设计技术分治设计技术平衡树设计技术倍增设计技术流水线设计技术6.3

平衡树设计技术设计思想求最大值计算前缀和25平衡树设计技术设计思想以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。示例求最大值计算前缀和6.3

平衡树设计技术设计思想求最大值计算前缀和27求最大值算法6.8:

SIMD-TC(SM)上求最大值算法Beginfor

k=m-1

to

0

dofor

j=2k

to

2k+1-1

par-doA[j]=max{A[2j],

A[2j+1]}end

forend

forend图示时间分析t(n)=m×O(1)=O(logn)p(n)=n/2An/4An/2-1An-2An-1AnAn+1An+2

An+3A2n-4A2n-3A2n-2A2n-1K=m-1K=m-2K=0P

A111P

An/2

P

An/2+12Pn/2-1Pn/2P1Pn/2-16.3

平衡树设计技术设计思想求最大值计算前缀和计算前缀和29问题定义

n个元素{x1,x2,…,xn},前缀和是n个部分和: Si=x1*x2*…*xi,

1≤i≤n

这里*可以是+或×串行算法:Si=Si-1*xi计算时间为O(n)并行算法:p154算法6.9SIMD-TC上非递归算法令A[i]=xi,i=1~n,

B[h,j]和C[h,j]为辅助数组(h=0~logn,

j=1~n/2h)数组B记录由叶到根正向遍历树中各结点的信息(求和)数组C记录由根到叶反向遍历树中各结点的信息(播送前缀和)计算前缀和例:n=8,

p=8,

C01~C08为前缀和30第六章并行算法的基本设计技术划分设计技术分治设计技术平衡树设计技术倍增设计技术流水线设计技术6.4

倍增设计技术设计思想表序问题求森林的根33倍增设计技术设计思想又称指针跳跃(pointerjumping)技术,特别适合于处理链表或有向树之类的数据结构;当递归调用时,所要处理数据之间的距离逐步加倍,经过k步后即可完成距离为2k的所有数据的计算。示例表序问题求森林的根6.4

倍增设计技术设计思想表序问题求森林的根表序问题问题描述n个元素的列表L,求出每个元素在L中的次第号(秩或位序或rank(k)),rank(k)可视为元素k至表尾的距离;示例:n=7p[a]=b,

p[b]=c,

p[c]=d,

p[d]=e,p[e]=f,

p[f]=g,

p[g]=gr[a]=r[b]=r[c]=r[d]=r[e]=r[f]=1,r[g]=0p[a]=c,

p[b]=d,

p[c]=e,

p[d]=f,p[e]=p[f]=p[g]=gr[a]=r[b]=r[c]=r[d]=r[e]=2,

r[f]=1,

r[g]=0p[a]=e,

p[b]=f,

p[c]=p[d]=p[e]=p[f]=p[g]=gr[a]=4,

r[b]=4,

r[c]=4,

r[d]=3,

r[e]=2,

r[f]=1,

r[g]=0(4)p[a]=p[b]=p[c]=p[d]=p[e]=p[f]=p[g]=gr[a]=6,

r[b]=5,

r[c]=4,

r[d]=3,

r[e]=2,

r[f]=1,

r[g]=035表序问题36算法:P155算法6.10(1)并行做:初始化p[k]和distance[k]//O(1)//O(logn)//O(1)//O(1)(2)执行

次(2.1)对k并lo行g

n地做如果k的后继不等于k的后继之后继,则distance[k]=

distance[k]+

distance[p[k]]p[k]=p[p[k]](2.2)对k并行地做rank[k]=distance[k]运行时间:t(n)=O(logn)

p(n)=n6.4

倍增设计技术设计思想表序问题求森林的根求森林的根问题描述一组有向树F中,如果<i,j>是F中的一条弧,则p[i]=j(即j是i的双亲);若i为根,则p[i]=i。求每个结点j(j=1~n)的树根s[j].示例初始时P[1]=p[2]=5

p[3]=p[4]=p[5]=6P[6]=p[7]=8 p[8]=8

P[9]=10p[10]=11

p[11]=12

p[12]=13

p[13]=13s[i]=p[i]38求森林的根示例第一次迭代后第二次迭代后W(n)=O(nlogn)836457121311101

2算法:P157算法6.11981234567139101112运行时间:t(n()=b)O(logn)39(c)第六章并行算法的基本设计技术划分设计技术分治设计技术平衡树设计技术倍增设计技术流水线设计技术6.5

流水线设计技术设计思想5-point

DFT的计算42流水线设计技术设计思想将算法流程划分成p个前后衔接的任务片断,每个任务片断的输出作为下一个任务片断的输入;所有任务片断按同样的速率产生出结果。评注流水线技术是一种广泛应用在并行处理中的技术;脉动算法(Systolic

algorithm)是其中一种流水线技术;6.5

流水线设计技术设计思想5-point

DFT的计算5-point

DFT的计算44问题描述5-point

DFT的计算。应用秦九韶(Horner)法则,0414243440313233343021222324201234100102000

4

30

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论