我正在尝试将此代码段转换为OpenMP版本和MPI版本
int A[100000];
int B[100000];
int C=0;
for int(i=0; i < 100000; i++)
C += A[i] * B[i];
为了制作OpenMP,我需要并行化for循环:
int A[100000];
int B[100000];
int C=0;
#pragma omp parallel for
for int(i=0; i < 100000; i++)
C += A[i] * B[i];
我不确定MPI版本,但我会试一试。首先,我需要分散矩阵A,然后广播矩阵B,最后我需要使用聚集C作为:
int A[100000];
int B[100000];
int C=0;
MPI_Scatter(A,count...);
MPI_Scatter(B,count...);
MPI_Gather(C,count...);
它们是否正确?