关于在Ubuntu中安装mpi.h for C的问题

时间:2014-02-27 19:41:56

标签: c mpi

我想从MPI / C开始,我想编译/执行标准程序mpi_hello。 关于mpicc,我成功了但是在编译文件时收到了错误信息。 这是程序:

#include <mpi.h>
#include <stdio.h>

int main (int argc, char* argv[])

{

int mynode, totalnodes;

  MPI_Init(&argc,&argv);
  MPI_Comm_size(MPI_COMM_WORLD, &totalnodes);
  MPI_Comm_rank(MPI_COMM_WORLD, &mynode);

  printf( "\nHello world from process %d of %d\n", mynode, totalnodes );
  if(totalnodes==1) printf("You have just one processor!\n");
  MPI_Finalize();
  return 0;

}

我得到了以下内容:

turb@turb-LIFEBOOK-AH531:~/Desktop/Prog$ mpicc mpi_hello.c
turb@turb-LIFEBOOK-AH531:~/Desktop/Prog$ cc -O3 mpi_hello.c
mpi_hello.c:6:17: fatal error: mpi.h: No such file or directory
 #include <mpi.h>
                 ^
compilation terminated.

感谢您的帮助。谢谢! 一个

3 个答案:

答案 0 :(得分:2)

你可以尝试:

module add gcc mpich2
mpicc mpi_hello.c

编辑:哦,哇,我完全误读了你的帖子。你用它的外观成功地编译了它     mpicc hello_world.c

现在你应该可以用

执行a.out了
mpirun -np 2 ./a.out

其中2 =处理器数量。 使用您的代码和全新安装:

beaty@korriban:~$ mpicc test.c
beaty@korriban:~$ mpirun ./a.out

Hello world from process 0 of 1
You have just one processor!

beaty@korriban:~$ mpirun -np 2 ./a.out

Hello world from process 0 of 2

Hello world from process 1 of 2

答案 1 :(得分:1)

您需要确保更新包含路径,以便编译器可以找到mpi.h(如果它未安装在标准位置。

答案 2 :(得分:0)

使用MPI时,您也不能使用cc -O3 name.c来编译程序。正确的编译命令是:mpicc -O3 name.c.命令mpicc name.c在这里无关。 这就是你只得到一个过程:

turb@turb-LIFEBOOK-AH531:~/Desktop/Prog$ mpicc -O3 mpi_hello.c
turb@turb-LIFEBOOK-AH531:~/Desktop/Prog$ ./a.out

Hello world from process 0 of 1
You have just one processor!

如上所述,您还可以使用多个处理器(例如2)mpirun -np 2 ./a.out。我希望这有点帮助!