正在加载图片...
MULTI LEN index[2i-1]=n, MPI COMM index[2*k]=0 index[*k+1=0 MPI L MULTI LEN+ MPI COMM WORLD c2=(nt(cl+c3)2) MPI Barrier(MPI COMM WORLD MPI Barrier( MPI COMM WORLD); for(F0; i<SumID; 1++) *每个处理器送它的第计+1段给处理器 MPI Barrier( Pi,从而使得第i个处理器含有所 MPI COMM WORLD) 有处理器的第i段数据 if(F =My ID) (F=0…,P-1),,对应于算法135步 骤(6)*/ arrl[k++]=arr[n]; MPI Barrier( temp= index2计+1] MPI COMM WORLD index[2*i: if(-=MyID) [2*n] MPI CHAR, (index[2* n+18 c2++; if (c2==n) { index[2*i-1] = n; for (k=i;k<SumID;k++) { index[2*k] = 0; index[2*k+1] = 0; } i = SumID; } else { index[2*i] = c2; index[2*i-1] = c2; } c1 = c2; c2 = (int)((c1+c3)/2); i++; } if (i==SumID) index[2*i-1] = n; MPI_Barrier( MPI_COMM_WORLD); /*每个处理器送它的第 i+1 段给处理器 Pi,从而使得第 i 个处理器含有所 有处理器的第 i 段数据 (i=0,…,P-1),,对应于算法 13.5 步 骤(6)*/ j = 0; for (i=0;i<SumID;i++) { if (i==MyID) { temp1[i] = index[2*i+1]- index[2*i]; for (n=0;n<SumID;n++) if (n!=MyID) { k = index[2*n+1]- index[2*n]; MPI_Send(&k, sizeof(int), MPI_CHAR, n, MULTI_LEN +MyID, MPI_COMM _WORLD); } } else { MPI_Recv(&temp1[i], sizeof(int), MPI_CHAR, i,MULTI_LEN+i, MPI_COMM_WORLD, &status[j++]); } } MPI_Barrier(MPI_COMM_WORLD); j = 0; k = 0; l = 0; for (i=0;i<SumID;i++) { MPI_Barrier( MPI_COMM_WORLD); if (i==MyID) { for (n=index[2*i]; n<index[2*i+1]; n++) arr1[k++] = arr[n]; } MPI_Barrier( MPI_COMM_WORLD); if (i==MyID) { for (n=0;n<SumID;n++) if (n!=MyID) { MPI_Send(&arr[ index[2*n]], sizeof(int)* (index[2*n+1
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有