From 7c5a203530f089798858669ea54f379f2edc916b Mon Sep 17 00:00:00 2001 From: Christoph Junghans <junghans@votca.org> Date: Mon, 4 Nov 2024 19:56:17 -0700 Subject: [PATCH] Make test work on MPICH as well --- CMakeLists.txt | 2 +- tests/feature/CMakeLists.txt | 35 ++++------------------------------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 581f0e0..bfe9104 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,7 @@ find_dependency(MPI)\n" ) if(CM_ALL_VTK_OUTPUT) - message("Using VTK output") + message(STATUS "Using VTK output") find_package(VTK) if(NOT VTK_FOUND) message(FATAL_ERROR "VTK not found, help CMake to find it by setting VTK_LIBRARY and VTK_INCLUDE_DIR") diff --git a/tests/feature/CMakeLists.txt b/tests/feature/CMakeLists.txt index f1dc27f..e28ed73 100644 --- a/tests/feature/CMakeLists.txt +++ b/tests/feature/CMakeLists.txt @@ -9,26 +9,6 @@ target_compile_options(TestCompare PRIVATE -Wall -Wextra -g) # in CMake.. set(OUTPUTDIR .) set(KNOWNGOOD ${CMAKE_CURRENT_SOURCE_DIR}/knowngood) -# check if openmpi variable in mpi.h is set to find out, if -# MPI version is openmpi based -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/have_openmpi.c -"#include <mpi.h> -int main(void) { -#ifndef OPEN_MPI -#error -#endif - return 0; -} -") -try_compile(HAVE_OPENMPI - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/have_openmpi.c - LINK_LIBRARIES MPI::MPI_C - OUTPUT_VARIABLE _try_out) -if(NOT HAVE_OPENMPI) - message(WARNING "DID NOT FIND OPENMPI - skipping tests \n\n${_try_out}") - return() -endif() include(FindUnixCommands) foreach( FEATURE ALL_Staggered @@ -41,17 +21,10 @@ foreach( FEATURE ) set(OUTPUTFILE ${OUTPUTDIR}/out_${FEATURE}_${NP}.dat) set(GOODFILE ${KNOWNGOOD}/${FEATURE}_${NP}.dat) - if (HAVE_OPENMPI) - add_test( - NAME feature_${FEATURE}_${NP}_setup - COMMAND ${BASH} -c "mpirun --oversubscribe -np ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?" - ) - else() - add_test( - NAME feature_${FEATURE}_${NP}_setup - COMMAND ${BASH} -c "mpirun -n ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?" - ) - endif(HAVE_OPENMPI) + add_test(NAME feature_${FEATURE}_${NP}_setup + COMMAND ${BASH} -c " ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${NP} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:${FEATURE}> ${MPIEXEC_MAX_NUMPROCS} > ${OUTPUTFILE}; exit $?") + # tell CMake how many cores a test uses and allow openmpi to oversub cores via env variable + set_tests_properties(feature_${FEATURE}_${NP}_setup PROPERTIES PROCESSORS "${NP}" ENVIRONMENT "PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe") # todo(s.schulz): This only works with OpenMPI, since the flags # are implementation dependant. set_tests_properties(feature_${FEATURE}_${NP}_setup PROPERTIES -- GitLab