I am trying to compile a program using the MKL (11.3, 2016.0.109) libraries with the gfortran (5.1.0) compiler and OpenMPI (1.8.5, compiled against gfortran 5.1.0).
I can successfully compile the program without any errors.
However, when executing my program I end up with this error:
Intel MKL FATAL ERROR: Cannot load symbol MKLMPI_Get_wrappers.
I have searched the Intel site for references regarding this issue to no avail (https://software.intel.com/en-us/mkl-reference-manual-for-fortran) does not supply this kind of information.
For your information my compilation flags are these:
-Wl,--no-as-needed -L/opt/intel/mkl/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_lapack95_lp64 -lmkl_blas95_lp64 -lmkl_gf_lp64 -lmkl_core -lmkl_sequential
Which (as said) compiles fine. I have also tried the explicit https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor which behaves similarly.
In addition I have tried adding start-group and end-group passed to the linker, to no avail.
I have also tried linking the generic library
-lmkl_blacs_openmpi_lp64 -lmkl_blacs_lp64
which did not change anything.
To my knowledge I should be able to link MKL against gfortran, no?
And I suspect some compatibility issues as it is a run-time error.
Note, that I can easily use the same flags for compiling against OpenMPI and Intel compiler.