From 5e22b602241563360cab01b46cfba0e9fbb58839 Mon Sep 17 00:00:00 2001 From: Chuck Atkins <chuck.atkins@kitware.com> Date: Mon, 30 Oct 2017 11:26:10 -0400 Subject: [PATCH] Submit tests as a job array instead of a single job --- .../nightly/summitdev-spectrum-tests.lsf | 34 +++++++++++-------- scripts/dashboard/nightly/summitdev.sh | 27 ++++++++++----- 2 files changed, 38 insertions(+), 23 deletions(-) diff --git a/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf b/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf index c900985ef..62f9d485a 100755 --- a/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf +++ b/scripts/dashboard/nightly/summitdev-spectrum-tests.lsf @@ -1,25 +1,31 @@ #!/bin/bash #BSUB -P CSC143SUMMITDEV -#BSUB -W 01:00 +#BSUB -W 30 #BSUB -nnodes 2 +#BSUB -o adios2_nightly.%I.out +#BSUB -e adios2_nightly.%I.err + +case ${LSB_JOBINDEX} in + 1) CTEST_COMPILER=gcc + ;; + 2) CTEST_COMPILER=xl + ;; + 3) CTEST_COMPILER=pgi + ;; + *) echo "Error: Unsupported LSB_JOBINDEX: ${LSB_JOBINDEX}" + exit + ;; +esac + +echo "LSB_JOBINDEX: ${LSB_JOBINDEX}" +echo "CTEST_COMPILER: ${CTEST_COMPILER}" module purge module load git cmake CTEST=$(which ctest) SCRIPT_DIR=${PWD}/source/scripts/dashboard/nightly - -${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \ - -Ddashboard_full=OFF \ - -Ddashboard_do_test=ON \ - -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-gcc-spectrum.log - -${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \ - -Ddashboard_full=OFF \ - -Ddashboard_do_test=ON \ - -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-xl-spectrum.log - -${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \ +${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-${CTEST_COMPILER}-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_do_test=ON \ - -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-pgi-spectrum.log + -Ddashboard_do_submit=OFF 2>&1 1>>summitdev-${CTEST_COMPILER}-spectrum.log diff --git a/scripts/dashboard/nightly/summitdev.sh b/scripts/dashboard/nightly/summitdev.sh index bcf522921..e8661ab32 100755 --- a/scripts/dashboard/nightly/summitdev.sh +++ b/scripts/dashboard/nightly/summitdev.sh @@ -37,7 +37,7 @@ log "Running Serial XL" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-nompi.cmake 2>&1 1>summitdev-pgi-nompi.log # Now run the configure and build steps for the MPI tests -log "Running Parallel GCC Phase 1" +log "Running Parallel GCC Build" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_fresh=ON \ @@ -46,7 +46,7 @@ ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \ -Ddashboard_do_configure=ON \ -Ddashboard_do_build=ON 2>&1 1>summitdev-gcc-spectrum.log -log "Running Parallel XL Phase 1" +log "Running Parallel XL Build" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_fresh=ON \ @@ -55,7 +55,7 @@ ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \ -Ddashboard_do_configure=ON \ -Ddashboard_do_build=ON 2>&1 1>summitdev-xl-spectrum.log -log "Running Parallel PGI Phase 1" +log "Running Parallel PGI Build" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_fresh=ON \ @@ -65,24 +65,33 @@ ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \ -Ddashboard_do_build=ON 2>&1 1>summitdev-pgi-spectrum.log # Now run the MPI tests in a batch job -log "Running Parallel Phase 2" -bsub -P CSC143SUMMITDEV -W 00:30 -nnodes 2 -I \ - ${SCRIPT_DIR}/summitdev-spectrum-tests.lsf +log "Submitting Parallel Tests" +JOBID=$(bsub -J "adios2_nightly[1-3]" ${SCRIPT_DIR}/summitdev-spectrum-tests.lsf | awk '{print $2}' | sed 's|<\([0-9]*\)>|\1|') +while true +do + NJOBS=$(bjobs 2>/dev/null | grep "^${JOBID} " | wc -l) + log "Test jobs active in queue for job array ${JOBID}: ${NJOBS}" + if [ ${NJOBS} -eq 0 ] + then + break + fi + sleep 30 +done # Finaly submit the test results from the batch job -log "Running Parallel GCC Phase 3" +log "Submitting Parallel GCC Test Results" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-gcc-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_do_test=ON \ -Ddashboard_do_submit_only=ON 2>&1 1>>summitdev-gcc-spectrum.log -log "Running Parallel XL Phase 3" +log "Submitting Parallel XL Test Results" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-xl-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_do_test=ON \ -Ddashboard_do_submit_only=ON 2>&1 1>>summitdev-xl-spectrum.log -log "Running Parallel PGI Phase 3" +log "Submitting Parallel PGI Test Results" ${CTEST} -VV -S ${SCRIPT_DIR}/summitdev-pgi-spectrum.cmake \ -Ddashboard_full=OFF \ -Ddashboard_do_test=ON \ -- GitLab