Я распараллеливаю код для численного решения пятимерной модели баланса населения. В настоящее время у меня есть очень хороший параллельный код MPICH2 в FORTRAN, но когда мы увеличиваем значения параметров, массивы становятся слишком большими, чтобы работать в режиме распределенной памяти.
У меня есть доступ к кластеру с 15 узлами, где каждый узел имеет два 8-ядерных процессора и 128 ГБ оперативной памяти. Я хочу написать запустить программу с MPI-3.0 в режиме общей памяти, чтобы каждый процесс не генерировал свою собственную копию каждого массива.
Прежде чем я смогу запустить что-либо в кластере, я должен проверить это на рабочем столе под управлением Ubuntu. По сути, это один из блейдов кластера, который имеет два 8-ядерных процессора и 128 ГБ оперативной памяти. Я буду писать и тестировать свой код на нем, поэтому, пожалуйста, направьте ваши ответы на запуск программ на компьютере с Ubuntu.
Я читал, что есть способ запустить MPI-3.0 в режиме с общей памятью, например OpenMP, вместо режима по умолчанию с распределенной памятью.
Вопросов:
Как мне придется изменить свой код? Нужно ли добавлять вызовы в другие функции MPI, как
MPI_WIN_ALLOCATE
?Как мне скомпилировать мой код для запуска MPI-3.0 в режиме совместной памяти? Будет ли это по-другому, если это более чем на нескольких узлах?
Пожалуйста, дайте примеры сценариев компиляции, если можете. У меня также есть только компиляторы GNU. Кластер, который я использую, не поддерживает компиляторы Intel.
mpiexec -n 8 /path/to/application
чтобы подделать ваш компьютер, думая, что он имеет 8 различных узлов.