У меня есть следующий блок кода, который запускает MPI_Bcat. Странно, иногда этот процесс иногда зависает, когда я запускаю его, но не другие. Отладочная информация показывает, что все процессы достигли строки 129 (все процессы с 0 по n-1 напечатаны в bcast). Но они так и не достигли строки 132.
128 if (n_procs > 1) {
129 debug("[%d] bcast start\n", dgrid->rank);
130 // broadcast to other workers to stop their process
131 MPI_Bcast(finished, 1, MPI_INT, root, MPI_COMM_WORLD);
132 debug("[%d] bcast end\n", dgrid->rank);
133 }
Что может быть причиной этой проблемы? Я пытался найти решение, но все кажется другим. Может ли это быть проблемой системного уровня или это просто мой код?
Процесс root (0) часто является последним процессом, который достигает строки 129, судя по выводу терминала.
Спасибо заранее.