https://bugzilla.redhat.com/show_bug.cgi?id=1382755
--- Comment #21 from Antonio Trande anto.trande@gmail.com --- (In reply to Christoph Junghans from comment #20)
(In reply to Antonio Trande from comment #19)
(In reply to Christoph Junghans from comment #18)
(In reply to Antonio Trande from comment #17)
- MPI builds are not using MPI compilers:
OpenMPI build must use mpic++ that's located in '/usr/lib64/openmpi/bin'. MPICH build must use mpic++ that's located in '/usr/lib64/mpich/bin'.
Force CXX flags after %{_mpich_load} and %{_openmpi_load} with:
export CXX=mpic++
Legion doesn't actually depends on MPI and hence using mpic++ as a compiler might lead to overlinking. Legion only depends on Gasnet, which comes in two mpi variants. The reason that legion looks for mpi can be found here: https://github.com/StanfordLegion/legion/pull/205 And doesn't really apply on Fedora as we are using shared libs for gasnet.
Let me understand, please: Legion does not depend on MPI but neither Gasnet looks linked to mpi, in fact Legion is inheriting all undefined-non-weak-symbol from Gasnet (https://bugzilla.redhat.com/show_bug.cgi?id=1375744#c9). I'm asking to myself why Legion-MPI libraries are compiled.
Yes, legion is using gasnet to do its communication, it doesn't use mpi directly. (mpi-devel is still a build requirement as otherwise the mpi module cannot be loaded and $MPI_LIB is needed to find the right gasnet libraries.) The gasnet libraries get linked against mpi here: http://pkgs.fedoraproject.org/cgit/rpms/gasnet.git/tree/gasnet.spec#n141 and hence $ module load mpi/openmpi-x86_64 $ ldd /usr/lib64/openmpi/lib/libgasnet-mpi-par.so | grep libmpi.so libmpi.so.12 => /usr/lib64/openmpi/lib/libmpi.so.12 (0x00007fe0bdbd9000) Does that make sense?
More or less. Legion uses MPI through gasnet.