Hello World
在开始学习使用 MPI 时,通常有三件事情很重要。首先,你必须在准备好使用它时初始化库(你还需要在完成后完成它)。其次,你需要知道通信器的大小(用于将消息发送到其他进程的事物)。第三,你会想知道你在那个沟通者中的等级(你在那个沟通者中的进程号)。
#include <mpi.h>
#include <stdio.h>
int main(int argc, char **argv) {
int size, rank;
int res;
res = MPI_Init(&argc, &argv);
if (res != MPI_SUCCESS)
{
fprintf (stderr, "MPI_Init failed\n");
exit (0);
}
res = MPI_Comm_size(MPI_COMM_WORLD, &size);
if (res != MPI_SUCCESS)
{
fprintf (stderr, "MPI_Comm_size failed\n");
exit (0);
}
res = MPI_Comm_rank(MPI_COMM_WORLD, &rank);
if (res != MPI_SUCCESS)
{
fprintf (stderr, "MPI_Comm_rank failed\n");
exit (0);
}
fprintf(stdout, "Hello World from rank %d of %d~\n", rank, size);
res = MPI_Finalize();
if (res != MPI_SUCCESS)
{
fprintf (stderr, "MPI_Finalize failed\n");
exit (0);
}
}
如果你像这样运行这个程序:
mpiexec -n 2 ./hello
你可能希望获得如下输出:
Hello World from rank 0 of 2!
Hello World from rank 1 of 2!
你也可以向后获取该输出(请参阅 http://stackoverflow.com/a/17571699/491687 )以获取更多有关此内容的讨论:
Hello World from rank 1 of 2!
Hello World from rank 0 of 2!