这是我的代码:
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int tmpv = 10, tmpvsum;
MPI_INIT(&argc, &argv);
printf("begin allreduce.");
MPI_REDUCE(&tmpv,&tmpvsum,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD);
printf("tmpv : %4d",tmpvsum);
MPI_FINALIZE();
return 0;
}
我使用以下命令成功编译了它:
mpiicc -o test_reduce test_reduce.c
但是当我运行它时,我不断得到分段错误。 我无法看到代码的任何问题。
答案 0 :(得分:1)
问题是:
功能&#34; MPI_REDUCE&#34;应写成&#34; MPI_Reduce&#34; 。
然而,&#39; mpicc&#39;也不是&#39; mpiicc&#39;在汇编中报告此问题。