Hi all,

I am not really sure whether this is an intel or ompi bug?

I have now tried with all 1.10.* versions (including 1.10.1rc[23]) to test
whether this could be circumvented.

I use the intel 2016.1.0.423501 compiler.

I can successfully compile OpenMPI and use the C-compiler. But as soon as I
compile the most simple fortran (ping-pong) program with mpif90 (no compile
flags) I get symbol lookup errors.

$> mpirun -np <> <exec>
intel: symbol lookup error:
*/XeonX5550/openmpi/1.10.1/intel-16.0.0/lib/libmpi_mpifh.so.12: undefined
symbol: mpi_fortran_argvs_null__

So I thought that it was really a missing symbol, hence I grepped for the
routine in the libraries:
for m in *.a *.so
do
  echo $m
  nm $m | grep mpi_fortran_argv
done

And came up with:

libopen-trace-format.a
libotfaux.a
libvt.a
libvt-hyb.a
libvt-mpi.a
libvt-mpi-unify.a
libvt-mt.a
libvt-pomp.a
libmca_common_sm.so
libmca_common_verbs.so
libmpi_cxx.so
libmpi_mpifh.so
                 U mpi_fortran_argv_null
                 U mpi_fortran_argv_null_
                 U mpi_fortran_argv_null__
                 U mpi_fortran_argvs_null
                 U mpi_fortran_argvs_null_
                 U mpi_fortran_argvs_null__
                 U ompi_fortran_argv_f2c
libmpi.so
00000000002fb160 B mpi_fortran_argv_null
00000000002fb080 B mpi_fortran_argv_null_
00000000002fb028 B mpi_fortran_argv_null__
00000000002fb1d8 B mpi_fortran_argvs_null
00000000002fb220 B mpi_fortran_argvs_null_
00000000002fb060 B mpi_fortran_argvs_null__
0000000000086d60 T ompi_fortran_argv_f2c
libmpi_usempif08.so
00000000002ce2c0 B mpi_fortran_argv_null
00000000002ce2a0 B mpi_fortran_argvs_null
libmpi_usempi_ignore_tkr.so
00000000002a8500 B mpi_fortran_argv_null_
00000000002a8560 B mpi_fortran_argvs_null_
libompitrace.so
libopen-pal.so
libopen-rte.so
libopen-trace-format.so
liboshmem.so
0000000000356e60 B mpi_fortran_argv_null
0000000000356d00 B mpi_fortran_argv_null_
0000000000356bc0 B mpi_fortran_argv_null__
0000000000356f00 B mpi_fortran_argvs_null
0000000000356f20 B mpi_fortran_argvs_null_
0000000000356ca0 B mpi_fortran_argvs_null__
libotfaux.so
libvt-hyb.so
libvt-mpi.so
libvt-mpi-unify.so
libvt-mt.so
libvt.so

So they are uninitialized in the common section of mpi.so, but undefined in
mpi_mpifh.so.

Note:
I have also tried with intel 15 and ompi 1.8.X and the symbol tables are
identical yet the program executes fine.

Note:
I then tried with gcc (5.2.0) and found the exact same nm listings, i.e.
the mpi_fortran_argvs_null routine are all B/U defined in the libraries.
Yet, the program runs fine.

I have tried manually setting the -l order to
-lmpi_mpifh -lmpi
to no avail.

Should this be reported to intel? Or?

-- 
Kind regards Nick

Reply via email to