在C中使用MPI Reduce进行查询

时间:2013-10-11 16:17:09

标签: c parallel-processing mpi

我正在尝试在C中使用MPI_Reduce()来计算带有npts元素的名为phi的向量。为此,我已经为每个进程分配了一个长向量块longvec,分别对这些块进行求和,然后在进程0的末尾对每个处理器的部分结果求和,以获得每个元素的估计值。

我的结果非常愚蠢......有谁能告诉我我在下面的代码中犯了什么错误?

double phie[npts];
phitemp = (double*) malloc (nprocs * sizeof(double));    

for (i = 0; i < npts; i++) {
   phitemp[rank] = 0; 
   for (x = rank * 10 + 1; x <= (rank + 1) * 10; x++) {                     
      phitemp[rank] = phitemp[rank] + longvec[x] * vector[i];                             }
   }
   MPI_Reduce(phitemp, & (((double *) phivec)[i]), 1,  MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); 
} 

0 个答案:

没有答案