Не удалось (скомпилировать и) связать несколько программ f90, содержащих openMPI - PullRequest
0 голосов
/ 29 января 2019

У меня проблема с компиляцией нескольких .f90-программ, содержащих openmpi.При попытке скомпилировать программы, используя mpifort, создание .o -файлов, похоже, не составляет проблем, но создание исполняемого файла завершается неудачно.«Предупреждения» - это неопределенные ссылки на »mpi_address_« и »mpi_type_struct_« (только эти два).Используемый мной make-файл выглядит следующим образом:

all:$(EXE)

%.o:%.f90 input_parameters.h
    $(FC) $(DFLAGS) $(FCFLAGS) -c  $< $(MPILNFLAGS) -o $@

$(EXE):$(OBJ) 
    $(FC) $(DFLAGS) $(FCFLAGS) $(MPILNFLAGS) -o  $(EXE) $(OBJ)

и

MPICFLAGS = $(shell mpifort --showme:compile)
MPILNFLAGS = $(shell mpifort --showme:link)

Кто-то знает, что делать?

PS: например, одна строка mpifortвыглядит так:

mpifort -D_MPI_ -I/usr/local/include -pthread -O3 -w  -g -c  file_name.f90 -pthread -Wl,-rpath -Wl,/usr/local/lib -Wl,--enable-new-dtags -L/usr/local/lib -lmpi -o file_name.o

1 Ответ

0 голосов
/ 02 февраля 2019

Эти символы были удалены из стандарта и (случайно) удалены из Open MPI 4 по умолчанию.Вы можете перестроить Open MPI с помощью --enable-mpi1compatibility, дождаться версии 4.0.1 или модернизировать свой код (например, MPI_Get_address()).В долгосрочной перспективе последний вариант является лучшим (и, вероятно, единственным).

...