Я аспирант (магистр) и использую внутренний код для запуска моих симуляций, использующих MPI. Ранее я использовал OpenMPI на суперкомпьютере, к которому мы обращались, и с момента его закрытия я пытался переключиться на другой суперкомпьютер, на котором установлен Intel MPI. Проблема в том, что тот же код, который раньше работал прекрасно, теперь дает утечки памяти после заданного количества итераций (временных шагов). Поскольку код относительно большой, и мои знания MPI очень просты c, его отладка оказывается очень сложной. Поэтому я установил OpenMPI на этот новый суперкомпьютер, который я использую, но при выполнении выдает следующее сообщение об ошибке, а затем завершает работу:
Неверное количество PE. Проверьте шаблон разбиения или номер PE
ПРИМЕЧАНИЕ. Сообщение об ошибке повторяется столько раз, сколько узлов я использовал для запуска дела (здесь, 8). Скомпилировано с использованием mpif90 с параметром -fopenmp для распараллеливания потоков.
На самом деле нет никакой гарантии, что запуск его на OpenMPI не приведет к утечке памяти, но я чувствую, что стоит попробовать, так как он работал отлично. ранее.
PS: В Intel MPI это ошибка, с которой я столкнулся (скомпилирован с помощью mpiifort с -qopenmp)
Прервать (941211497) на узле 16 (ранг 16 в комм 0 ): Фатальная ошибка в PMPI_Isend:> Неизвестный класс ошибок, стек ошибок: PMPI_Isend (152) ...........: MPI_Isend (buf = 0x2aba1cbc8060, count = 4900, dtype = 0x4c000829, dest = 20, tag = 0, MPI_COMM_WORLD, запрос = 0x7ffec8586e5 c) сбой MPID_Isend (662) ...........: MPID_isend_unsafe (282) ....: MPIDI_OFI_send_normal (305): произошла ошибка при выделении памяти для объект запроса Прервать (203013993) на узле 17 (ранг 17 в комм. 0): фатальная ошибка в PMPI_Isend:> неизвестный класс ошибок, стек ошибок: PMPI_Isend (152) ...........: MPI_Isend (buf = 0x2b38c479c060, count = 4900, dtype = 0x4c000829, dest = 21, tag = 0, MPI_COMM_WORLD, запрос = 0x 7fffc20097d c) сбой MPID_Isend (662) ...........: MPID_isend_unsafe (282) ....: MPIDI_OFI_send_normal (305): произошла ошибка при выделении памяти для объекта запроса [mpiexec@cx0321.obcx] HYD_sock_write (../../../../../src/pm/i_hydra/libhydra/sock/hydra_sock_intel.c:357): ошибка записи (неверный дескриптор файла) [mpiexec@cx0321.obcx] cmd_bcast_ root (../../../../../src/pm/i_hydra/mpiexec/mpiexec.c:164): ошибка при отправке cmd 15 на прокси [mpiexec@cx0321.obcx] send_abort_rank_downstream (../../../../../src/pm/i_hydra/mpiexec/intel/i_mpiexec.c:557): невозможно отправить ответ в нисходящем направлении [mpiexec@cx0321.obcx] control_cb ( ../../../../../src/pm/i_hydra/mpiexec/mpiexec.c:1576): невозможно отправить рейтинг прерывания в нисходящие потоки [mpiexec@cx0321.obcx] HYDI_dmx_poll_wait_for_event (. ./../../../../src/pm/i_hydra/libhydra/demux/hydra_demux_poll.c:79): обратный вызов вернул состояние ошибки [mpiexec@cx0321.obcx] main (../../ ../../../src/pm/i_hydra/mpiexec/mpiexec.c:1962): ошибка ожидания события "
Я буду рад предоставить код на случай, если кто-то захочет взглянуть на это. Он написан на Fortran с некоторыми функциями, написанными в C. Мои исследования были полностью остановлены из-за этой проблемы, и никто в моей лаборатории не имел достаточного опыта работы с MPI, чтобы решить эту проблему.