【发布时间】:2018-01-28 05:21:43
【问题描述】:
我正在尝试使用 MPI 进行编码,但是当我使用 gcc 编译时,我得到了这些 errors,我不知道如何解决。代码如下:
#include < stdio.h >
int main(int argc, char * argv[]) {
int pid, pnr;
int A[100000];
int B[100000];
int v0, v1, v2;
MPI_Init( & argc, & argv);
MPI_Comm_rank(MPI_COMM_WORD, & pid);
MPI_COMM_size(MPI_COMM_WORD, & pnr);
MPI_Status status;
for (int i = 1; i < (100000 - 1); i++) {
v1 = A[i - 1];
MPI_Send( & v0, 1, MPI_INT, 0, 0, MPI_COMM_WORD);
v2 = A[i + 1];
MPI_Send( & v1, 2, MPI_INT, 0, 0, MPI_COMM_WORD);
v3 = 2 * A[i];
MPI_Send( & v0, 3, MPI_INT, 0, 0, MPI_COMM_WORD);
if (pid == 0) {
int v;
for (int j = 1; j != pnr; i++) {
MPI_Recv( & v, j, MPI_INT, MPI_ANY_SOURCE, 0,
MPI_COMM_WORD, & status);
if (MPI_SUCCESS) {
B[i] = v;
} else {
MPI_Abort(MPI_COMM_WORD, 1);
}
}
}
}
MPI_Finalize();
}
我尝试过遵循这个 MPI send / recv tutorial 的结构,但显然做错了什么。
【问题讨论】:
-
需要包含mpi头文件,需要用mpi编译器编译。
-
你应该edit你的问题在问题本身中包含相关错误。
-
@Chiel:当我包含 mpi 标头时,它会显示
No such file or directory -
@JonnyHenly:我做到了,我上传了我遇到的错误的屏幕截图
-
可能您没有安装 MPI 库。安装 MPICH 或 OpenMPI。