Независимость и отсутствие синхронизации - это два совершенно разных сценария работы с MPI, благодаря неблокируемой связи .
Мне кажется, что то, что вы хотите, может быть реализовано следующим образом: когда происходит ошибка, процесс передает сообщение с назначенным тегом «error», и каждый процесс периодически публикует неблокирующие сообщения для получения сообщения с этим тегом. , Если они получают такое сообщение, это означает, что недавно произошла ошибка, и они могут реагировать соответствующим образом, в противном случае они продолжают свое обычное выполнение.
(Обратите внимание, что «широковещание» в данном случае не относится к MPI_Bcast
, поскольку это коллективная операция связи и как такие блоки. Вместо этого это просто означает отправку одного и того же сообщения всем, кого это касается. Если вы если вы не хотите синхронизировать процессы, то эта отправка также должна быть неблокируемой.)