正在加载图片...
回代过程的并行是按xn,xn1,…,x1的顺序由各处理器依次计算x(ip+ my rank),一旦 x(itp+ my rank)被计算出来就立即广播给所有处理器,用于与对应项相乘并做求和计算。具 体算法框架描述如下 算法192全主元高斯消去法过程的并行算法 输入:系数矩阵An×n,常数向量bn×1 输出:解向量xnx1 Begin 对所有处理器 my rank( my rank=0…p-1)同时执行如下的算法 /*消去过程* (I)for i=0 to m-I do for产=0 to p-l do if( my rank<)then/*对于主行前面的块* ()y=p+/*v为主元素的行号* /*确定本处理器所存未消元部分的最大元及其位置存于数组lmax中* (ii)Imax(o=ali+l, v (infor k=i+l to m-I do for t=y to n-l do if( a[k,>Imax[0])then Imax[0]=a[k, n), Imax[l=k, Imax[2]=t, Imax[ 3]=my rank end if end for (1.2f( my rank≥then/*对于主行前面的块* (1)y=p/*y为主元素的行号* *确定本处理器所存未消元部分的最大元及其位置存于数组lmax中* (ii)Imax=a[i, vI infor k=i to m-I do for y to n-l do f(alk.n]I>ImaxO)then Imax[O=a[k, n), max[l=k end fo (1.3)用A! gather操作将每一个处理器中的lmax元素广播到其它所有处理器中 (1.4)/确定最大元及其位置* maxvalue=getpivort(max), maxrow=getrow(max maxcolumn=getcolumn(max), maxrank-getrank(max) (1.5)/*列交换* if( maxcolun≠v)the (ifor t=0 to m de回代过程的并行是按 xn,xn-1,…,x1 的顺序由各处理器依次计算 x(i*p+my_rank),一旦 x(i*p+my_rank)被计算出来就立即广播给所有处理器,用于与对应项相乘并做求和计算。具 体算法框架描述如下: 算法 19.2 全主元高斯消去法过程的并行算法 输入:系数矩阵 An×n,常数向量 bn×1 输出:解向量 xn×1 Begin 对所有处理器 my_rank(my_rank=0,…,p-1)同时执行如下的算法: /*消去过程*/ (1)for i=0 to m-1 do for j=0 to p-1 do (1.1)if (my_rank<j) then /*对于主行前面的块*/ (i)v=i*p+j /* v 为主元素的行号*/ /*确定本处理器所存未消元部分的最大元及其位置存于数组 lmax 中*/ (ii)lmax(0)=a[i+1,v] (iii)for k=i+1 to m-1 do for t=v to n-1 do if (│a[k,t]│>lmax[0]) then lmax[0]= a[k,t],lmax[1]=k, lmax[2]=t,lmax[3]=my_rank end if end for end for end if (1.2)if (my_rank ≥ j) then /*对于主行前面的块*/ (i)v=i*p+j /* v 为主元素的行号*/ /*确定本处理器所存未消元部分的最大元及其位置存于数组 lmax 中*/ (ii)lmax[0]=a[i,v] (iii)for k=i to m-1 do for t=v to n-1 do if (│a[k,t]│>lmax[0]) then lmax[0]= a[k,t],lmax[1]=k , lmax[2]=t,lmax[3]=my_rank end if end for end for end if (1.3)用 Allgather 操作将每一个处理器中的 lmax 元素广播到其它所有处理器中 (1.4) /*确定最大元及其位置*/ maxvalue=getpivort(max),maxrow=getrow(max) maxcolumn=getcolumn(max),maxrank=getrank(max) (1.5) /*列交换*/ if (maxcolumn≠v) then (i)for t=0 to m do
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有