Skip to content

Commit 944383b

Browse files
committed
Fix issue with OpenMPI
1 parent 4ad7c27 commit 944383b

1 file changed

Lines changed: 15 additions & 8 deletions

File tree

cmake/FindMKL.cmake

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@ else()
2222
find_library(MKL_THREAD NAMES mkl_gnu_thread HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
2323
# With GCC we use system-installed GNU OpenMP
2424
endif()
25+
2526
if(ENABLE_MPI)
27+
find_package(MPI QUIET)
28+
if(MPI_CXX_LIBRARY_VERSION_STRING MATCHES "Open MPI")
29+
set(MKL_BLACS_LIB_NAME "mkl_blacs_openmpi_lp64")
30+
else()
31+
set(MKL_BLACS_LIB_NAME "mkl_blacs_intelmpi_lp64")
32+
endif()
2633
find_library(MKL_SCALAPACK NAMES mkl_scalapack_lp64 HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
27-
find_library(MKL_BLACS_INTELMPI NAMES mkl_blacs_intelmpi_lp64 HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
34+
find_library(MKL_BLACS NAMES ${MKL_BLACS_LIB_NAME} HINTS ${MKLROOT}/lib ${MKLROOT}/lib/intel64)
2835
endif()
2936

3037
include(FindPackageHandleStandardArgs)
3138
# handle the QUIETLY and REQUIRED arguments and set MKL_FOUND to TRUE
3239
# if all listed variables are TRUE
3340

3441
if(ENABLE_MPI)
35-
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS_INTELMPI MKL_INCLUDE)
42+
find_package_handle_standard_args(MKL DEFAULT_MSG MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS MKL_INCLUDE)
3643
else()
3744
find_package_handle_standard_args(MKL MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_INCLUDE)
3845
endif()
@@ -62,10 +69,10 @@ if(MKL_FOUND)
6269
IMPORTED_LOCATION "${MKL_SCALAPACK}"
6370
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
6471
endif()
65-
if(NOT TARGET MKL::BLACS_INTELMPI)
66-
add_library(MKL::BLACS_INTELMPI UNKNOWN IMPORTED)
67-
set_target_properties(MKL::BLACS_INTELMPI PROPERTIES
68-
IMPORTED_LOCATION "${MKL_BLACS_INTELMPI}"
72+
if(ENABLE_MPI AND NOT TARGET MKL::BLACS)
73+
add_library(MKL::BLACS UNKNOWN IMPORTED)
74+
set_target_properties(MKL::BLACS PROPERTIES
75+
IMPORTED_LOCATION "${MKL_BLACS}"
6976
INTERFACE_INCLUDE_DIRECTORIES "${MKL_INCLUDE}")
7077
endif()
7178
if(MKL_IOMP5 AND NOT TARGET MKL::IOMP5)
@@ -78,7 +85,7 @@ if(MKL_FOUND)
7885
set_property(TARGET MKL::MKL PROPERTY
7986
INTERFACE_LINK_LIBRARIES
8087
"-Wl,--start-group"
81-
MKL::INTERFACE_LIB MKL::THREAD MKL::CORE MKL::MKL_SCALAPACK MKL::BLACS_INTELMPI
88+
MKL::INTERFACE_LIB MKL::THREAD MKL::CORE MKL::MKL_SCALAPACK MKL::BLACS
8289
"-Wl,--end-group"
8390
)
8491
else()
@@ -96,7 +103,7 @@ if(MKL_FOUND)
96103
endif()
97104

98105
if(ENABLE_MPI)
99-
mark_as_advanced(MKL_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS_INTELMPI)
106+
mark_as_advanced(MKL_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE MKL_SCALAPACK MKL_BLACS)
100107
else()
101108
mark_as_advanced(MKL_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE)
102109
endif()

0 commit comments

Comments
 (0)