正在加载图片...
if(maxcolumn #ali, vl) then nnerexchangerow()/*处理器内部换行 (6. 2)if(maxrank))then outerexchangerow()/处理器之间换行 d if (7)if( my rank=/)then/主行所在的处理器* a[4=q[,a[i,可 end for (7.2)b0=b[Ga[i, v], ai, vF (7.3)fork=y+1ton-1do/*将主行元素赋予数组∫* ]=a, end for 4)n]=b[ (7.5)广播主行到所有处理器 (7.6fork=0tom-1do/*处理存于该处理器中的非主行元素* if(k≠n)the (ifor w=1+I to n-l do akk, wI=alk, wl w]* alk, v (iib(k]=b[] An]* alk, vl end for lse/非主行所在的处理器* (7.7)接收广播来的主行元素存于数组f中 (7.8fork=0 to m do/*处理非主行元素* a[, wl=ak, w]-fw]* akk, vI (ib[k]=b[k-An]*a[k, vl end fo en end for 上述算法的计算过程中,参与计算的行向量数为n,行向量长度为(n),其中=p+p2 若取一次乘法和加法运算时间或一次除法运算时间为一个单位时间,则其所需的计算时间为 n+(n=∑mnp2)=m2rn2-n2(m-1)2:另外,由于其间共有n行数据依次if (maxcolumn ≠ a[i,v]) then (6.1)if ((maxrank=j) and (i≠maxrow)) then innerexchangerow( ) /*处理器内部换行*/ end if (6.2)if (maxrank≠j) then outerexchangerow( ) /*处理器之间换行*/ end if end if end if (7)if (my_rank=j) then /*主行所在的处理器*/ (7.1)for k=v+1 to n-1 do a[i,k]= a[i,k]/a[i,v] end for (7.2) b[i]=b[i]/a[i,v],a[i,v]=1 (7.3)for k=v+1 to n-1 do /*将主行元素赋予数组 f */ f[k]= a[i,k] end for (7.4) f[n]=b[i] (7.5)广播主行到所有处理器 (7.6)for k=0 to m-1 do /*处理存于该处理器中的非主行元素*/ if (k ≠ i) then (i)for w=v+1 to n-1 do a[k,w]= a[k,w]-f[w]* a[k,v] end for (ii)b[k]=b[k]-f[n]* a[k,v] end if end for else /*非主行所在的处理器*/ (7.7)接收广播来的主行元素存于数组 f 中 (7.8)for k=0 to m do /*处理非主行元素*/ (i)for w=v+1 to n do a[k,w]= a[k,w]-f[w]* a[k,v] end for (ii)b[k]=b[k]-f[n]* a[k,v] end for end if end for end for End 上述算法的计算过程中,参与计算的行向量数为 n,行向量长度为(n-v),其中 v=ip+p/2。 若取一次乘法和加法运算时间或一次除法运算时间为一个单位时间,则其所需的计算时间为 T1=  − = 1 0 m i n*(n-v)=  − = 1 0 m i n(n-ip-p/2)= mn2 -n 2 /2- n 2 (m -1)/2;另外,由于其间共有 n 行数据依次
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有