bsc-performance-tools / extrae

Instrumentation framework to generate execution traces of the most used parallel runtimes.
https://tools.bsc.es/extrae
GNU Lesser General Public License v2.1
63 stars 40 forks source link

add MPI library check for newer intel mpi distributions #28

Closed koomie closed 5 years ago

koomie commented 5 years ago

Over in openhpc land, we're seeing issues trying to build the latest extrae release with a 2019.x version of intel mpi. In this case, configure fails to complete due to being unable to detect the underlying MPI library (even though the path is resolved correctly). An example from our build system is below:

[ 2242s] checking mpi.h usability... yes
[ 2242s] checking mpi.h presence... yes
[ 2242s] checking for mpi.h... yes
[ 2242s] checking for MPICH2 defined... no
[ 2242s] checking for MPI library... /opt/intel/compilers_and_libraries_2019.2.187/linux/mpi/intel64/lib, not found
[ 2242s] configure: error: Cannot find MPI libraries file in the MPI specified path

The issue is that the macro does not check for the intel mpi library name (libmpi_ilp64.so).

This PR adds an additional check for this potential library name.

emercadal commented 5 years ago

Extrae's configure provides an option to specify the name of the MPI library to use in cases it fails to find the it (--with-mpi-lib-name), setting this option to mpi_ilp64 should make configure to look for the correct library, albeit it doesn't seem to contain all the MPI symbols.

libmpi.so is usually a link to the implementation's default MPI library, found under the release or release_mt folders.

We are not sure if adding this extra configure check is the way to go or if it is a bug in the installation, either from Intel or from OpenHPC, failing to create the link.

koomie commented 5 years ago

OpenHPC doesn't control impi installation so afraid can't do much there. Investigating a bit further, it looks like the issue is that libmpi.so has been pushed down into a separate lib/release subdirectory with newer versions of impi. So, I was able to get a build of extrae to complete without this patch by using a combination of --with-mpi=$MPI_DIR and --with-mpi-libs=$MPI_DIR/lib/release where MPI_DIR points to install path of impi.

I think you can disregard this PR as a result.