[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