From 3d8c1a11b71d07ac44ba7346fa165a99f2e67147 Mon Sep 17 00:00:00 2001 From: Lisa Julia Nebel Date: Thu, 25 Jul 2024 09:38:19 +0200 Subject: [PATCH] Add option to compare two parallel runs --- compareECLFiles.cmake | 24 +++++++++++++++++++++--- tests/run-comparison.sh | 9 ++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/compareECLFiles.cmake b/compareECLFiles.cmake index c23068034..67de23ded 100644 --- a/compareECLFiles.cmake +++ b/compareECLFiles.cmake @@ -95,13 +95,29 @@ function(add_test_compareECLFiles) TESTNAME ${PARAM_CASENAME}) endfunction() +########################################################################### +# TEST: compareSeparateECLFiles +########################################################################### + +# Input: +# - casename: basename (no extension) +# - filename1 (no extension) +# - filename2 (no extension) +# +# Details: +# - This test class compares two separate simulations function(add_test_compareSeparateECLFiles) - set(oneValueArgs CASENAME FILENAME1 FILENAME2 DIR1 DIR2 SIMULATOR ABS_TOL REL_TOL IGNORE_EXTRA_KW DIR_PREFIX) + set(oneValueArgs CASENAME FILENAME1 FILENAME2 DIR1 DIR2 SIMULATOR ABS_TOL REL_TOL IGNORE_EXTRA_KW DIR_PREFIX MPI_PROCS) set(multiValueArgs TEST_ARGS) cmake_parse_arguments(PARAM "$" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) if(NOT PARAM_PREFIX) set(PARAM_PREFIX compareSeparateECLFiles) endif() + if(PARAM_MPI_PROCS) + set(MPI_PROCS ${PARAM_MPI_PROCS}) + else() + set(MPI_PROCS 1) + endif() set(RESULT_PATH ${BASE_RESULT_PATH}${PARAM_DIR_PREFIX}/${PARAM_SIMULATOR}+${PARAM_CASENAME}) set(TEST_ARGS ${PARAM_TEST_ARGS}) set(DRIVER_ARGS -i ${OPM_TESTS_ROOT}/${PARAM_DIR1} @@ -112,7 +128,8 @@ function(add_test_compareSeparateECLFiles) -b ${PROJECT_BINARY_DIR}/bin -a ${PARAM_ABS_TOL} -t ${PARAM_REL_TOL} - -c ${COMPARE_ECL_COMMAND}) + -c ${COMPARE_ECL_COMMAND} + -n ${MPI_PROCS}) if(PARAM_IGNORE_EXTRA_KW) list(APPEND DRIVER_ARGS -y ${PARAM_IGNORE_EXTRA_KW}) endif() @@ -124,7 +141,8 @@ function(add_test_compareSeparateECLFiles) DIRNAME ${PARAM_DIR} FILENAME ${PARAM_FILENAME} SIMULATOR ${PARAM_SIMULATOR} - TESTNAME ${PARAM_CASENAME}) + TESTNAME ${PARAM_CASENAME} + PROCESSORS ${MPI_PROCS}) endfunction() ########################################################################### diff --git a/tests/run-comparison.sh b/tests/run-comparison.sh index 7e2241740..eb79ad778 100755 --- a/tests/run-comparison.sh +++ b/tests/run-comparison.sh @@ -17,12 +17,14 @@ then echo -e "\t\t -t Relative tolerance in comparison" echo -e "\t\t -c Path to comparison tool" echo -e "\t\t -e Simulator binary to use" + echo -e "\t\t -n Number of MPI processes to use" exit 1 fi RESTART_STEP="" +MPI_PROCS=1 OPTIND=1 -while getopts "i:j:f:g:r:b:a:t:c:e:y:" OPT +while getopts "i:j:f:g:r:b:a:t:c:e:y:n:" OPT do case "${OPT}" in i) INPUT_DATA_PATH1=${OPTARG} ;; @@ -36,6 +38,7 @@ do c) COMPARE_ECL_COMMAND=${OPTARG} ;; e) EXE_NAME=${OPTARG} ;; y) IGNORE_EXTRA_KW=${OPTARG} ;; + n) MPI_PROCS=${OPTARG} ;; esac done shift $(($OPTIND-1)) @@ -43,9 +46,9 @@ TEST_ARGS="$@" mkdir -p ${RESULT_PATH} cd ${RESULT_PATH} -${BINPATH}/${EXE_NAME} ${INPUT_DATA_PATH1}/${FILENAME1} ${TEST_ARGS} --output-dir=${RESULT_PATH} +mpirun -np ${MPI_PROCS} ${BINPATH}/${EXE_NAME} ${INPUT_DATA_PATH1}/${FILENAME1} ${TEST_ARGS} --output-dir=${RESULT_PATH} test $? -eq 0 || exit 1 -${BINPATH}/${EXE_NAME} ${INPUT_DATA_PATH2}/${FILENAME2} ${TEST_ARGS} --output-dir=${RESULT_PATH} +mpirun -np ${MPI_PROCS} ${BINPATH}/${EXE_NAME} ${INPUT_DATA_PATH2}/${FILENAME2} ${TEST_ARGS} --output-dir=${RESULT_PATH} test $? -eq 0 || exit 1 cd ..