Skip to content

Commit bb48331

Browse files
committed
Refine MPI detection
1 parent 10b6af9 commit bb48331

File tree

2 files changed

+30
-40
lines changed

2 files changed

+30
-40
lines changed

src/projects/hpcspades/CMakeLists.txt

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,35 @@ project(hpcspades CXX)
88

99
set(MPI_DETERMINE_LIBRARY_VERSION TRUE)
1010
find_package(MPI)
11-
if (MPI_FOUND)
12-
# Determine MPI vendor and MPI runtime version
13-
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/MPIVendorName.c.in"
14-
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorName.c"
15-
# IMMEDIATE @ONLY)
16-
# try_run(MPI_VENDOR_NAME_RUN MPI_HAVE_VENDOR_NAME
17-
# ${CMAKE_BINARY_DIR}
18-
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorName.c"
19-
# RUN_OUTPUT_VARIABLE MPI_RUNTIME_NAME)
20-
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/MPIVendorVersion.c.in"
21-
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorVersion.c"
22-
# IMMEDIATE @ONLY)
23-
# try_run(MPI_VENDOR_VERSION_RUN MPI_HAVE_VENDOR_VERSION
24-
# ${CMAKE_BINARY_DIR}
25-
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorVersion.c"
26-
# RUN_OUTPUT_VARIABLE MPI_RUNTIME_VERSION)
27-
message(STATUS "Detected MPI runtime: ${MPI_C_LIBRARY_VERSION_STRING}")
28-
29-
if ("${MPI_C_LIBRARY_VERSION_STRING}" MATCHES "^Open MPI")
30-
string(REGEX REPLACE "Open MPI v([0-9]+).*" "\\1" OPENMPI_MAJOR_VERSION "${MPI_C_LIBRARY_VERSION_STRING}")
31-
message(STATUS "Open MPI runtime detected, major version: ${OPENMPI_MAJOR_VERSION}")
32-
if (OPENMPI_MAJOR_VERSION STREQUAL 3)
33-
message(FATAL_ERROR "Open MPI version ${OPENMPI_MAJOR_VERSION}.x is known to be buggy")
34-
endif()
35-
endif()
11+
if (NOT MPI_FOUND)
12+
message(FATAL_ERROR "hpcSPAdes requires MPI to be enabled")
3613
endif()
3714

38-
if (NOT MPI_ENABLE AND (NOT MPI_FOUND OR MPI_DISABLE))
39-
message(FATAL_ERROR "hpcSPAdees requires MPI to be enabled")
40-
endif()
41-
42-
if (MPI_FOUND)
43-
include_directories("${MPI_INCLUDE_PATH}")
15+
# Determine MPI vendor and MPI runtime version
16+
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/MPIVendorName.c.in"
17+
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorName.c"
18+
# IMMEDIATE @ONLY)
19+
# try_run(MPI_VENDOR_NAME_RUN MPI_HAVE_VENDOR_NAME
20+
# ${CMAKE_BINARY_DIR}
21+
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorName.c"
22+
# RUN_OUTPUT_VARIABLE MPI_RUNTIME_NAME)
23+
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/MPIVendorVersion.c.in"
24+
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorVersion.c"
25+
# IMMEDIATE @ONLY)
26+
# try_run(MPI_VENDOR_VERSION_RUN MPI_HAVE_VENDOR_VERSION
27+
# ${CMAKE_BINARY_DIR}
28+
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorVersion.c"
29+
# RUN_OUTPUT_VARIABLE MPI_RUNTIME_VERSION)
30+
message(STATUS "Detected MPI runtime: ${MPI_C_LIBRARY_VERSION_STRING}")
31+
32+
if ("${MPI_C_LIBRARY_VERSION_STRING}" MATCHES "^Open MPI")
33+
string(REGEX REPLACE "Open MPI v([0-9]+).*" "\\1" OPENMPI_MAJOR_VERSION "${MPI_C_LIBRARY_VERSION_STRING}")
34+
message(STATUS "Open MPI runtime detected, major version: ${OPENMPI_MAJOR_VERSION}")
35+
if (OPENMPI_MAJOR_VERSION STREQUAL 3)
36+
message(FATAL_ERROR "Open MPI version ${OPENMPI_MAJOR_VERSION}.x is known to be buggy")
37+
endif()
4438
endif()
39+
include_directories("${MPI_INCLUDE_PATH}")
4540

4641
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
4742
add_subdirectory(mpi)

src/test/mpi/CMakeLists.txt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ project(mpi_test CXX)
88

99
set(MPI_DETERMINE_LIBRARY_VERSION TRUE)
1010
find_package(MPI)
11-
if (MPI_FOUND)
11+
if (MPI_FOUND AND SPADES_TOOL_HPCSPADES_BUILD)
1212
# Determine MPI vendor and MPI runtime version
1313
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/MPIVendorName.c.in"
1414
# "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/MPIVendorName.c"
@@ -33,13 +33,8 @@ if (MPI_FOUND)
3333
message(FATAL_ERROR "Open MPI version ${OPENMPI_MAJOR_VERSION}.x is known to be buggy")
3434
endif()
3535
endif()
36-
endif()
3736

38-
if (NOT MPI_ENABLE AND (NOT MPI_FOUND OR MPI_DISABLE))
39-
message(FATAL_ERROR "hpcSPAdees requires MPI to be enabled")
37+
add_executable(mpi_test mpi_test.cpp)
38+
include_directories(${SPADES_MAIN_PROJ_DIR}/hpcspades)
39+
target_link_libraries(mpi_test utils_mpi utils llvm-support ${COMMON_LIBRARIES} ${MPI_LIBRARIES})
4040
endif()
41-
42-
add_executable(mpi_test mpi_test.cpp)
43-
include_directories(${SPADES_MAIN_PROJ_DIR}/hpcspades)
44-
target_link_libraries(mpi_test utils_mpi utils llvm-support ${COMMON_LIBRARIES} ${MPI_LIBRARIES})
45-

0 commit comments

Comments
 (0)