added MPIEXEC_PREFLAGS for passing flags to MPIEXEC directly before the executable to run

This commit is contained in:
M. Scot Breitenfeld 2019-11-25 13:55:20 -07:00
parent a576785f80
commit 447770b782
10 changed files with 13 additions and 8 deletions

View File

@ -104,7 +104,7 @@ FUNCTION( RUN_QMC_APP_NO_COPY TESTNAME WORKDIR PROCS THREADS TEST_ADDED TEST_LAB
IF ( ${TOT_PROCS} GREATER ${TEST_MAX_PROCS} ) IF ( ${TOT_PROCS} GREATER ${TEST_MAX_PROCS} )
MESSAGE_VERBOSE("Disabling test ${TESTNAME} (exceeds maximum number of processors ${TEST_MAX_PROCS})") MESSAGE_VERBOSE("Disabling test ${TESTNAME} (exceeds maximum number of processors ${TEST_MAX_PROCS})")
ELSEIF ( USE_MPI ) ELSEIF ( USE_MPI )
ADD_TEST( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${QMC_APP} ${ARGN} ) ADD_TEST( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${QMC_APP} ${ARGN} )
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}"
PROCESSORS ${TOT_PROCS} PROCESSOR_AFFINITY TRUE WORKING_DIRECTORY ${WORKDIR} PROCESSORS ${TOT_PROCS} PROCESSOR_AFFINITY TRUE WORKING_DIRECTORY ${WORKDIR}
ENVIRONMENT OMP_NUM_THREADS=${THREADS} ) ENVIRONMENT OMP_NUM_THREADS=${THREADS} )

View File

@ -4,7 +4,7 @@ INCLUDE("${qmcpack_SOURCE_DIR}/CMake/test_labels.cmake")
# Runs unit tests # Runs unit tests
FUNCTION( ADD_QE_TEST TESTNAME PROCS TEST_BINARY NPOOL WORKDIR TEST_INPUT) FUNCTION( ADD_QE_TEST TESTNAME PROCS TEST_BINARY NPOOL WORKDIR TEST_INPUT)
IF ( USE_MPI ) IF ( USE_MPI )
ADD_TEST( NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${TEST_BINARY} -npool ${NPOOL} -inp ${TEST_INPUT} ) ADD_TEST( NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${TEST_BINARY} -npool ${NPOOL} -inp ${TEST_INPUT} )
ELSE() ELSE()
ADD_TEST( NAME ${TESTNAME} COMMAND ${TEST_BINARY} -npool 1 ${TEST_INPUT} ) ADD_TEST( NAME ${TESTNAME} COMMAND ${TEST_BINARY} -npool 1 ${TEST_INPUT} )
ENDIF() ENDIF()

View File

@ -5,7 +5,7 @@ INCLUDE("${PROJECT_SOURCE_DIR}/CMake/test_labels.cmake")
FUNCTION( ADD_UNIT_TEST TESTNAME TEST_BINARY ) FUNCTION( ADD_UNIT_TEST TESTNAME TEST_BINARY )
MESSAGE_VERBOSE("Adding test ${TESTNAME}") MESSAGE_VERBOSE("Adding test ${TESTNAME}")
IF ( USE_MPI ) IF ( USE_MPI )
ADD_TEST(NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 1 ${TEST_BINARY} ${ARGN}) ADD_TEST(NAME ${TESTNAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 1 ${MPIEXEC_PREFLAGS} ${TEST_BINARY} ${ARGN})
#SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES ENVIRONMENT OMP_NUM_THREADS=1 ) #SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES ENVIRONMENT OMP_NUM_THREADS=1 )
ELSE() ELSE()
ADD_TEST(NAME ${TESTNAME} COMMAND ${TEST_BINARY} ${ARGN}) ADD_TEST(NAME ${TESTNAME} COMMAND ${TEST_BINARY} ${ARGN})

View File

@ -534,6 +534,10 @@ IF ( HAVE_MPI )
SET( MPIEXEC_NUMPROC_FLAG "-np" ) SET( MPIEXEC_NUMPROC_FLAG "-np" )
ENDIF() ENDIF()
IF ( NOT DEFINED MPIEXEC_PREFLAGS )
SET( MPIEXEC_PREFLAGS "" )
ENDIF()
IF ( NOT TEST_MAX_PROCS ) IF ( NOT TEST_MAX_PROCS )
SET( TEST_MAX_PROCS 100 ) SET( TEST_MAX_PROCS 100 )
ENDIF() ENDIF()

View File

@ -323,6 +323,7 @@ FFTW_LIBRARY_DIRS Specify library directories for FFTW
MPIEXEC Specify the mpi wrapper, e.g. srun, aprun, mpirun, etc. MPIEXEC Specify the mpi wrapper, e.g. srun, aprun, mpirun, etc.
MPIEXEC_NUMPROC_FLAG Specify the number of mpi processes flag, MPIEXEC_NUMPROC_FLAG Specify the number of mpi processes flag,
e.g. "-n", "-np", etc. e.g. "-n", "-np", etc.
MPIEXEC_PREFLAGS Flags to pass to MPIEXEC directly before the executable to run.
\end{shade} \end{shade}
\item LLVM/Clang Developer Options\\ \item LLVM/Clang Developer Options\\

View File

@ -15,7 +15,7 @@ FUNCTION(ADD_AFQMC_PYSCF_WORKFLOW_TEST test_name input_dir TEST_SCALARS TEST_OBS
SET(INT_SCRIPT) SET(INT_SCRIPT)
SET(TESTNAME "pyscf_to_afqmc_${test_name}") SET(TESTNAME "pyscf_to_afqmc_${test_name}")
ADD_TEST(NAME ${TESTNAME} ADD_TEST(NAME ${TESTNAME}
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NPROC_INT} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NPROC_INT} ${MPIEXEC_PREFLAGS}
python ${PROJECT_SOURCE_DIR}/utils/afqmctools/bin/pyscf_to_afqmc.py ${ARGN} python ${PROJECT_SOURCE_DIR}/utils/afqmctools/bin/pyscf_to_afqmc.py ${ARGN}
WORKING_DIRECTORY ${TESTDIR}) WORKING_DIRECTORY ${TESTDIR})
SET_TESTS_PROPERTIES(${TESTNAME} PROPERTIES DEPENDS "pyscf_${test_name}") SET_TESTS_PROPERTIES(${TESTNAME} PROPERTIES DEPENDS "pyscf_${test_name}")

View File

@ -8,7 +8,7 @@ FUNCTION(ADD_CONVERTER_TEST test_name)
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/${test_name}" "${CMAKE_CURRENT_BINARY_DIR}/${test_name}") EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/${test_name}" "${CMAKE_CURRENT_BINARY_DIR}/${test_name}")
SET(EXE_NAME "${qmcpack_BINARY_DIR}/bin/convert4qmc") SET(EXE_NAME "${qmcpack_BINARY_DIR}/bin/convert4qmc")
IF ( USE_MPI ) IF ( USE_MPI )
SET(EXE_NAME "${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 1 ${qmcpack_BINARY_DIR}/bin/convert4qmc") SET(EXE_NAME "${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 1 ${MPIEXEC_PREFLAGS} ${qmcpack_BINARY_DIR}/bin/convert4qmc")
ENDIF() ENDIF()
ADD_TEST(NAME converter_${test_name} COMMAND python converter_test.py "${CMAKE_CURRENT_BINARY_DIR}/${test_name}" --exe "${EXE_NAME}" --h5diff "${HDF5_DIFF_EXECUTABLE}") ADD_TEST(NAME converter_${test_name} COMMAND python converter_test.py "${CMAKE_CURRENT_BINARY_DIR}/${test_name}" --exe "${EXE_NAME}" --h5diff "${HDF5_DIFF_EXECUTABLE}")
SET_TESTS_PROPERTIES(converter_${test_name} PROPERTIES TIMEOUT 120 LABELS "converter") SET_TESTS_PROPERTIES(converter_${test_name} PROPERTIES TIMEOUT 120 LABELS "converter")

View File

@ -30,7 +30,7 @@ FUNCTION(ADD_C_GRAPHITE_TEST TEST_NAME TEST_DIR INPUT_FILE H5_FILE)
SET(THREADS 16) SET(THREADS 16)
MATH(EXPR TOT_PROCS "${PROCS} * ${THREADS}") MATH(EXPR TOT_PROCS "${PROCS} * ${THREADS}")
IF (USE_MPI) IF (USE_MPI)
ADD_TEST(NAME ${TEST_NAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE})
ELSE() ELSE()
ADD_TEST(NAME ${TEST_NAME} COMMAND ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE})
ENDIF() ENDIF()

View File

@ -36,7 +36,7 @@ IF (NOT QMC_CUDA)
SET(THREADS 16) SET(THREADS 16)
MATH(EXPR TOT_PROCS "${PROCS} * ${THREADS}") MATH(EXPR TOT_PROCS "${PROCS} * ${THREADS}")
IF (USE_MPI) IF (USE_MPI)
ADD_TEST(NAME ${TEST_NAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE})
ELSE() ELSE()
ADD_TEST(NAME ${TEST_NAME} COMMAND ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE})
ENDIF() ENDIF()

View File

@ -34,7 +34,7 @@ FUNCTION(ADD_NIO_TEST TEST_NAME TEST_DIR TEST_SOURCE_DIR INPUT_FILE H5_FILE ADJU
SET(THREADS 16) SET(THREADS 16)
MATH(EXPR TOT_PROCS "${PROCS} * ${THREADS}") MATH(EXPR TOT_PROCS "${PROCS} * ${THREADS}")
IF (USE_MPI) IF (USE_MPI)
ADD_TEST(NAME ${TEST_NAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${MPIEXEC_PREFLAGS} ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE})
ELSE() ELSE()
ADD_TEST(NAME ${TEST_NAME} COMMAND ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE}) ADD_TEST(NAME ${TEST_NAME} COMMAND ${QMC_APP} ${PERF_ARGS} ${INPUT_FILE})
ENDIF() ENDIF()