Допустим, у меня есть 5 подчиненных процессов и 1 главный процесс.
5 подчиненных процессов работают параллельно.
Каждый из 5 подчиненных процессов имеет одинаковую вероятность возникновения ошибки.
Когда один из подчиненных процессов сталкивается с ошибкой, им необходимо сообщить все другие подчиненные процессы и главный процесс. тоже.
Какую функцию MPI лучше всего здесь использовать? Я думал о том, чтобы получить целую кучу MPI_RECEIVE
звонков, но это кажется немного нелепым.
См. Пример ниже:
int main(int argc, char **argv) {
// setup
MPI_Init (&argc, &argv);
MPI_Comm_size (MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank (MPI_COMM_WORLD, &myid);
if (myid == 0) {
// send some data to each slave process to get them started
MPI_SEND(...)
} else {
// receive some data from the master
MPI_RECEIVE(...)
// work on the data
// inform all other processes if there is an error
// do more work on the data
// inform all other processes if there is an error
// etc
}
}