Я пытаюсь использовать MPI, чтобы переписать процедуру паралеллизации для пакета моделирования, который я использую.Я пытаюсь реализовать определенную функцию, и у меня возникли проблемы.Я собираюсь проиллюстрировать мою проблему, используя другой более простой пример, который показывает, что я пытаюсь сделать.
Я в основном пытаюсь получить счетчик, который будет использоваться всеми потоками MPI.Каждый раз, когда этот счетчик увеличивается, конкретный поток затем передает его всем остальным, чтобы каждый поток имел актуальную версию счетчика, когда он хочет увеличить его.Я понимаю, что это было бы легко сделать, используя OpenMP с общей памятью, но мне интересно, есть ли способ заставить эту работу работать с MPI на более чем одном процессоре (например, выполнить 500-ядерное моделирование на суперкомпьютере).
Я пробовал почти все комбинации MPI_Bcast, MPI_Send и MPI_Recv, о которых я мог подумать, но я думаю, что есть кое-что, что я не могу правильно понять.