Критический раздел в MPI?
У меня есть код для печати 2D-массива на стандартный вывод.
Проблема в том, что когда я запускаю его, каждый процесс записывает на выходе и перекрывает данные, делая его непригодным.
Как создать критический раздел в MPI, чтобы только один процесс заходил в раздел, где я показываю вывод?
Я использую OpenMPI.
Ответы
Ответ 1
Отделите его, используя 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 ();
}