MPI中的关键部分?

时间:2012-01-12 19:26:01

标签: parallel-processing distributed mpi critical-section

我有一些代码可以将2D数组打印到标准输出。 问题是,当我运行它时,每个进程都会写入输出并且数据重叠,使其无法使用。

如何在MPI中构建一个关键部分,以便一次只有一个进程进入我显示输出的部分?

我正在使用OpenMPI。

1 个答案:

答案 0 :(得分:17)

使用MPI_Barriers将其分开。

rank = 0;
while (rank < total_processes) {
   if (myrank == rank) {
       printf ("Array printed by rank: %d\n", myrank);
       print_array();
       fflush (stdout);
   }
   rank ++;
   MPI_Barrier ();
}