异步通信模型的并行算法.doc

异步通信模型的并行算法.doc

ID:59246889

大小:131.00 KB

页数:11页

时间:2020-09-08

异步通信模型的并行算法.doc_第1页
异步通信模型的并行算法.doc_第2页
异步通信模型的并行算法.doc_第3页
异步通信模型的并行算法.doc_第4页
异步通信模型的并行算法.doc_第5页
资源描述:

《异步通信模型的并行算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、9.5MIMD异步通信模型的并行算法(一)快速排序并行算法快速排序(QuickSort)是一种最基本的排序算法,它的基本思想是,在当前无序序列R[1,n]中取一个记录作为比较的基准,用此基准将当前的无序序列R[1,n]划分成两个无序序列R[1,i-1]和R[i,n](1≤i≤n),且R[1,i-1]中记录的所有关键字均小于等于基准的关键字,R[i,n]中记录的所有关键字均大于等于基准的关键字;当R[1,i-1]和R[i,n]非空时,分别对他们重复上述的划分过程。对每次划分过后所得到的两个序列分别使用两个处理器完成递归排序。例如对一个长为n的序列,首先划分得到两个长为n/2的序列,将

2、其交给两个处理器分别处理;而后进一步划分得到4个长为n/4的序列,在分别交给4个处理器处理;如此递归下去最终得到排序号的序列[1001]。该并行算法的描述如下:1234567891011121314151617算法9.5.1快速排序并行算法输入:无序数组data[1,n],使用的处理器个数2m输出:有序数组data[1,n]SORT{para_quicksort(data,1,n,m,0);}para_quicksort(data,i,j,m,id){if((j-i)≤k

3、

4、m==0){Pid:quicksort(data,i,j);}else{Pid:r=partition(da

5、ta,i,j);Pidsenddata[r+q,m-1]toPid+2m-1;para_quicksort(data,I,r-1,m-1,id);para_quicksort(data,r+1,j,m-1,id+2m-1);Pid+2m-1senddata[r+1,m-1]toPid;}}在最优的情况下该并行算法形成一个高度为logn的排序树,其计算复杂度为O(n),通信复杂度为O(n);在最坏情况下其计算复杂度降为O(n2);正常情况下该算法的计算复杂度为O(n)。(二)二维网孔上的矩阵转置并行算法网孔上的矩阵转置并行算法思路是,实现矩阵转置时,若处理器个数为p,且它们的编号依次

6、是0,1,…,p-1,则将n阶矩阵A分成p个大小为m×m的子块,m=。p个字块组成一个×的子块阵列。记其中第i行第j列的子块为Aij,它含有A的第(i-1)m+1至第im行中的第(j-1)m+1至第jm列的所有元素。对每一处理器按行主方式赋以二维下标,记编号为i的处理器的而为下标为(v,u),其中v=,u=imod,将A的子块存入下标为(v,u)表示的对应处理器中。这样,转置过程分两步进行:第一步,子块转置,具体过程如图9_22所示;第二步,处理器内部局部转置。图9_22子块转置为了避免对应子块交换数据时处理器发生死锁,可令下三角子块先向与之对应的上三角子块发送数据,然后从上三角子

7、块接收数据;上三角子块先将数据存放在缓冲区buffer中,然后从与之对应的下三角子块接收数据;最后再将缓冲区中的数据发送给下三角子块[1001]。该并行算法的描述如下:1234567891011121314151617181920212223算法9.5.2矩阵转置并行算法输入:矩阵An×n输出:矩阵An×n的转置矩阵ATn×nTRANSPOSEDMATRIX{/*对所有处理器my_rank(my_rank=0,…,p-1)*/vßmy_rank/sqrt(p);/*计算子块的行号*/ußmy_rankmodsqrt(p);/*计算子块的列号*/if(u

8、器*/{send所存的子块to其对角块所在的处理器;receive其对角块所在的处理器中发来的子块;}else/*对存放上三角块的处理器*/{将所存的子块在缓冲区buffer中做备份;receive其对角块所在的处理器中发来的子块;sendbuffer中所存子块to其对角块所在的处理器;}for(i=1;i<=m;i++)/*处理器内部局部转置*/{for(j=1;j<=i;j++){交换a[i,j]和a[j,i];}}}若记ts为发送启动时间,tw为单位数据传输时间,th为处理器间的延迟时间,则第一步由于每个子块有n2/p个元素,又由于通信过程中为了避免死锁,错开下三角子块与上三

9、角子块的发送顺序,因此子块的交换时间为;第二步,假定一对数据的交换时间为一个单位时间,则局部转置时间为n2/2p。因此所需的并行计算时间。(三)矩阵并行分块乘法算法矩阵并行分块乘法的基本思想:将矩阵A按行划分为p块(p为处理器个数),设u=,每块含有连续的u行向量,这些行块依次记为A0,A1,…,Ap-1,分别存放在标号为0,1,…,p-1的处理器中。对矩阵B按列划分为p块,记v=,每块含有连续的v列向量,这些列块依次记为B0,B1,…,Bp-1,分别存放在标号为0,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。