Hello all,
We have successfully compiled and linked telemac2d V6P0 on linux, except for the default parallel executables (ex. telemac2dv6p0_MP.exe).
Errors such as this one are produced during the linking step of
makepar90:
~/telemac/V6P0/parallel/parallel_v6p0/linux/parallelv6p0.a(p_dmax.o): In function `p_dmax_':
p_dmax.f:(.text+0x37): undefined reference to `mpi_allreduce_'
This error message is printed for every function inside parallelv6p0.a. It looks as if the impi lib is not seen by the linker. It is however clearly indicated in the systel.ini file as follows:
FC_MPI="ifort "
LK_MPI="mpiifort -o <EXE> <OBJS> <LIBS>"
LIBS_MPI=" -L/opt/intel/impi/3.2.2/lib64/libmpi.a"
and variable LD_LIBRARY_PATH as outlined in the installation guide is set to:
/opt/intel/impi/3.2.2/lib64
The weird part, is that we can still workaround this by running telemac2d in parallel without the *_MP.exe as long as a user fortran file is provided. In that case, an exe is successfully generated at runtime using the right impi library that was provided in the systel.ini. Sample output looks like this:
- FICHIER FORTRAN : princi.f
______________________________________________________________________________
*** COMPILATION ***
ifort -c -O3 -convert big_endian -I /home/jeremie/telemac/V6P0/telemac2d/tel2d_v6p0/linux -I /home/jeremie/telemac/V6P0/sisyphe/sisyphe_v6p0/linux -I /home/jeremie/telemac/V6P0/special/special_v6p0/linux -I /home/jeremie/telemac/V6P0/bief/bief_v6p0/linux -I /home/jeremie/telemac/V6P0/damocles/damo_v6p0/linux -I /home/jeremie/telemac/V6P0/paravoid/paravoid_v6p0/linux -I /home/jeremie/telemac/V6P0/mpi/linux/include t2dfort.f
______________________________________________________________________________
*** BIBLIOTHEQUES ***
- /home/jeremie/telemac/V6P0/telemac2d/tel2d_v6p0/linux/telemac2dv6p0.a
- /home/jeremie/telemac/V6P0/sisyphe/sisyphe_v6p0/linux/sisyphev6p0.a
- /home/jeremie/telemac/V6P0/special/special_v6p0/linux/specialv6p0.a
- /home/jeremie/telemac/V6P0/bief/bief_v6p0/linux/biefv6p0.a
- /home/jeremie/telemac/V6P0/damocles/damo_v6p0/linux/damov6p0.a
- /home/jeremie/telemac/V6P0/parallel/parallel_v6p0/linux/parallelv6p0.a
- -L/opt/intel/impi/3.2.2/lib64/libmpi.a
- /home/jeremie/telemac/V6P0/mumpsvoid/mumpsvoid_v6p0/linux/mumpsvoidv6p0.a
It would however be nice to have that spare *_MP.exe for those users that want to run simple cases in parllel without custom fortran.
Any help appreciated!
As some might know, this is the default executable file that is copied to a project