正在加载图片...
Turnningtransform()/*旋转变换* i)将旋转变换后的A和Q子块中的第j行传送到右邻处理器 (3.2)for j=0 to m-2 do Turnningtransform()/*旋转变换* end for (i)将旋转变换后的A和Q子块中的第j行传送到右邻处理器 (3.3)将旋转变换后的A和Q子块中的第m1行传送到右邻处理器 end if (4if( my rank=(P-1)then/p-1号处理器* (4. 1)for j=0 to my rank m-l do ()接收左邻处理器传送来的A和Q子块中的第j行 (iifor i=0 to m-I do Turnningtransform()/*旋转变换* end for 4.2)fe for i=j+l to m-I do f Turnningtransform()/*旋转变换* d end fo nd if p-1号处理器对矩阵Q进行转置 (6)-1号处理器分别将矩阵R和矩阵Q划分为大小为m*M和Mm的p 块子阵,依次发送给0至p2号处理器 7)使用算法186对矩阵RQ进行并行相乘得到新的A矩阵 (8)for1 to n do/*求出A中元素的最大绝对值赋予p* if(a[i>p)then p a[ii]end if end fo end while (b)fe end for 在上述算法的一轮迭代中,实际上是使用算法18.12、18.1、186并行地进行矩阵的QR 分解、矩阵的转置、矩阵的相乘各一次,因此,一轮迭代的计算时间为上述算法的时间复杂 度之和 MPI源程序请参见所附光盘Turnningtransform( ) /*旋转变换*/ end for (iii)将旋转变换后的 A 和 Q 子块中的第 j 行传送到右邻处理器 end for (3.2)for j=0 to m-2 do (i)z=my_rank*m (ii)for i=j+1 to m-1 do Turnningtransform( ) /*旋转变换*/ end for (iii)将旋转变换后的 A 和 Q 子块中的第 j 行传送到右邻处理器 end for (3.3)将旋转变换后的 A 和 Q 子块中的第 m-1 行传送到右邻处理器 end if (4)if (my_rank= (p-1)) then /*p-1 号处理器*/ (4.1)for j=0 to my_rank*m-1 do (i)接收左邻处理器传送来的 A 和 Q 子块中的第 j 行 (ii)for i=0 to m-1 do Turnningtransform( ) /*旋转变换*/ end for end for (4.2)for j=0 to m-2 do for i=j+1 to m-1 do f Turnningtransform( ) /*旋转变换*/ end for end for end if (5)p-1 号处理器对矩阵 Q 进行转置 (6)p-1 号处理器分别将矩阵 R 和矩阵 Q 划分为大小为 m*M 和 M*m 的 p 块子阵,依次发送给 0 至 p-2 号处理器 (7)使用算法 18.6 对矩阵 RQ 进行并行相乘得到新的 A 矩阵 (8)for i=1 to n do /* 求出 A 中元素的最大绝对值赋予 p*/ for j=1 to i-1do if (│a[i,j]│> p) then p=│a[i,j]│ end if end for end for end while (b)for i=1 to n do Eigenvalue[i] =a[i,i] end for End 在上述算法的一轮迭代中,实际上是使用算法 18.12、18.1、18.6 并行地进行矩阵的 QR 分解﹑矩阵的转置﹑矩阵的相乘各一次,因此, 一轮迭代的计算时间为上述算法的时间复杂 度之和。 MPI 源程序请参见所附光盘
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有