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!