Я пытаюсь использовать MPI для повторной записи процедуры паралеллизации для пакета моделирования, который я использую. Я пытаюсь реализовать определенную функцию и испытываю проблемы. Я собираюсь проиллюстрировать свою проблему, используя другой более простой пример, который показывает, что я пытаюсь сделать.Воспроизведение какой-то «общей памяти» в MPI
Я в основном стараюсь иметь счетчик, который будет использоваться всеми потоками MPI. Каждый раз, когда этот счетчик будет увеличиваться, конкретный поток будет транслировать его всем остальным, чтобы каждый поток имел обновленную версию счетчика, когда он хочет увеличить его. Я понимаю, что это легко выполнимо с использованием OpenMP с общей памятью, но мне интересно, есть ли способ сделать эту работу с MPI более чем одним процессором (например, с помощью 500-ядерного моделирования на суперкомпьютере).
Я пробовал практически любую комбинацию MPI_Bcast, MPI_Send и MPI_Recv, о которых я мог думать, но я думаю, что есть что-то, что я, возможно, не понимаю.
Возможный дубликат: http://stackoverflow.com/questions/4948788/creating-a-counter-that-stays-synchronized-across-mpi-processes – suszterpatt