[mephi-hpc] Fortran MPI
anikeev
anikeev at ut.mephi.ru
Mon Sep 27 16:07:21 MSK 2021
On Mon, 2021-09-27 at 12:27 +0000, Леонов Алексей Анатольевич wrote:
> Добрый день.
Здравствуйте!
> После некоторого перерыва попытался скомпилировать новую версию
> своего кода, написанную на Fortran с использованием MPI и столкнулся
> со следующей проблемой:
>
> При использовании mpif90 начала вылезать следующая ошибка (одна из
> многих аналогичных):
>
> av_rms.f:94:22:
>
> 92 | call MPI_BCAST( KeyDstatRestart,1,MPI_INTEGER,0,
> MPI_COMM_WORLD,ierr)
> | 2
> 93 | call MPI_BCAST( DiscrDStat, 1,MPI_INTEGER,0,
> MPI_COMM_WORLD,ierr)
> 94 | call MPI_BCAST( StartTimeDStat, 1,MPI_REAL8, 0,
> MPI_COMM_WORLD,ierr)
> | 1
> Error: Type mismatch between actual argument at (1) and actual
> argument at (2) (REAL(8)/INTEGER(4)).
>
> Путем добавления флага -fallow-argument-mismatch мне удалось
> перевести errors в warnings и получить исполняемый файл.
Здесь недвусмысленно перепутаны типы переменных, нужно исправлять.
> Однако при запуске кода появились проблемы с выводом в файлы. В
> процессе расчетов я с некоторой периодичностью вывожу в файл значения
> основных переменных в трехмерной расчетной области. Вывод
> производится при помощи MPIIO. И в процессе работы при очередном
> выводе в файл (в произвольный момент) программа зависает: создается
> файл с именем типа restart.lnv-2126839809-4361.lock, где restart.lnv
> имя выходного файла программы, и ничего больше не происходит.
> Программа не выходит и продолжает отражаться в запущенных процессах.
> Ранее таких проблем при запуске не было. Вывод в новой версии не
> отличается от предыдущих версий программы. Запуск задачи производился
> на unicluster.
Сначала нужно исправить warning и error на этапе компиляции. Если
проблема останется, нужно собрать приложение с отладочной информацией
(-ggdb3 -O0) и отладить с использованием GDB. Руководство по GDB есть
здесь:
https://sourceware.org/gdb/current/onlinedocs/gdb/
и попробовать понять, что именно происходит. Возможно, выявилась какая-
то ошибка и происходит зависание. Возможно, на новой версии упала
производительность реализации MPIIO и файл просто не успевает
записаться за время выполнения задачи. Например, OMPIO (реализация
MPIIO из состава OpenMPI) не оптимизируется под использование с
файловой системой NFS и для неё могут потребоваться настройки
параметров запуска задачи.
Документацию по OpenMPI можно найти здесь:
https://www.open-mpi.org/doc/current/
https://www.open-mpi.org/faq/?category=ompio
Есть много других вариантов.
Обращайтесь при появлении сложностей.
> С уважением,
>
> снс каф. 7,
> Алексей Леонов.
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
--
С уважением,
инженер отдела Unix-технологий МИФИ,
Аникеев Артём.
Тел.: 8 (495) 788-56-99, доб. 8998
More information about the hpc
mailing list