MPI中的关键部分?

ale*_*dan 12 parallel-processing distributed mpi critical-section

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

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

我正在使用OpenMPI.

jma*_*man 18

使用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 ();
}
Run Code Online (Sandbox Code Playgroud)