Skip to content
Snippets Groups Projects
Commit 7c5a2035 authored by Christoph Junghans's avatar Christoph Junghans
Browse files

Make test work on MPICH as well

parent 04e36b0c
Branches
No related tags found
1 merge request!27cmake: make tests work on MPICH
Pipeline #231364 passed
...@@ -75,7 +75,7 @@ find_dependency(MPI)\n" ...@@ -75,7 +75,7 @@ find_dependency(MPI)\n"
) )
if(CM_ALL_VTK_OUTPUT) if(CM_ALL_VTK_OUTPUT)
message("Using VTK output") message(STATUS "Using VTK output")
find_package(VTK) find_package(VTK)
if(NOT VTK_FOUND) if(NOT VTK_FOUND)
message(FATAL_ERROR "VTK not found, help CMake to find it by setting VTK_LIBRARY and VTK_INCLUDE_DIR") message(FATAL_ERROR "VTK not found, help CMake to find it by setting VTK_LIBRARY and VTK_INCLUDE_DIR")
......
...@@ -9,26 +9,6 @@ target_compile_options(TestCompare PRIVATE -Wall -Wextra -g) ...@@ -9,26 +9,6 @@ target_compile_options(TestCompare PRIVATE -Wall -Wextra -g)
# in CMake.. # in CMake..
set(OUTPUTDIR .) set(OUTPUTDIR .)
set(KNOWNGOOD ${CMAKE_CURRENT_SOURCE_DIR}/knowngood) 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) include(FindUnixCommands)
foreach( FEATURE foreach( FEATURE
ALL_Staggered ALL_Staggered
...@@ -41,17 +21,10 @@ foreach( FEATURE ...@@ -41,17 +21,10 @@ foreach( FEATURE
) )
set(OUTPUTFILE ${OUTPUTDIR}/out_${FEATURE}_${NP}.dat) set(OUTPUTFILE ${OUTPUTDIR}/out_${FEATURE}_${NP}.dat)
set(GOODFILE ${KNOWNGOOD}/${FEATURE}_${NP}.dat) set(GOODFILE ${KNOWNGOOD}/${FEATURE}_${NP}.dat)
if (HAVE_OPENMPI) add_test(NAME feature_${FEATURE}_${NP}_setup
add_test( COMMAND ${BASH} -c " ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${NP} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:${FEATURE}> ${MPIEXEC_MAX_NUMPROCS} > ${OUTPUTFILE}; exit $?")
NAME feature_${FEATURE}_${NP}_setup # tell CMake how many cores a test uses and allow openmpi to oversub cores via env variable
COMMAND ${BASH} -c "mpirun --oversubscribe -np ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?" set_tests_properties(feature_${FEATURE}_${NP}_setup PROPERTIES PROCESSORS "${NP}" ENVIRONMENT "PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe")
)
else()
add_test(
NAME feature_${FEATURE}_${NP}_setup
COMMAND ${BASH} -c "mpirun -n ${NP} $<TARGET_FILE:${FEATURE}> > ${OUTPUTFILE}; exit $?"
)
endif(HAVE_OPENMPI)
# todo(s.schulz): This only works with OpenMPI, since the flags # todo(s.schulz): This only works with OpenMPI, since the flags
# are implementation dependant. # are implementation dependant.
set_tests_properties(feature_${FEATURE}_${NP}_setup PROPERTIES set_tests_properties(feature_${FEATURE}_${NP}_setup PROPERTIES
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment