diff --git a/darshan-test/regression/cray-module-alcf/cobalt-submit.sh b/darshan-test/regression/cray-module-alcf/cobalt-submit.sh new file mode 100755 index 0000000000000000000000000000000000000000..529b154fad5b8bb57454372618591f5855a49f4d --- /dev/null +++ b/darshan-test/regression/cray-module-alcf/cobalt-submit.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +nprocs=$DARSHAN_DEFAULT_NPROCS +nnodes=$COBALT_PARTSIZE +ppn=$((nprocs / nnodes)) + +aprun -n $nprocs -N $ppn $@ +EXIT_STATUS=$? + +exit $EXIT_STATUS diff --git a/darshan-test/regression/cray-module-alcf/env.sh b/darshan-test/regression/cray-module-alcf/env.sh new file mode 100755 index 0000000000000000000000000000000000000000..cf39640b804f2bee7bb6d31af01d9409149a89fe --- /dev/null +++ b/darshan-test/regression/cray-module-alcf/env.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# General notes +####################### + +# Script to set up the environment for tests on this platform. Must export +# the following environment variables: +# +# DARSHAN_CC: command to compile C programs +# DARSHAN_CXX: command to compile C++ programs +# DARSHAN_F90: command to compile Fortran90 programs +# DARSHAN_F77: command to compile Fortran77 programs +# DARSHAN_RUNJOB: command to execute a job and wait for its completion + +# This script may load optional modules (as in a Cray PE), set LD_PRELOAD +# variables (as in a dynamically linked environment), or generate mpicc +# wrappers (as in a statically linked environment). + +# Notes specific to this platform (cray-module-alcf) +######################## +# Use Cray's default compiler wrappers and load the module associated with +# this darshan install +# +# RUNJOB is responsible for submitting a cobalt job, waiting for its +# completion, and checking its return status + +export DARSHAN_CC=cc +export DARSHAN_CXX=CC +export DARSHAN_F77=ftn +export DARSHAN_F90=ftn + +export DARSHAN_RUNJOB="cray-module-alcf/runjob.sh" + +module load $DARSHAN_PATH/share/craype-2.x/modulefiles/ diff --git a/darshan-test/regression/cray-module-alcf/runjob.sh b/darshan-test/regression/cray-module-alcf/runjob.sh new file mode 100755 index 0000000000000000000000000000000000000000..e7d930a54fb6d85a56722239b9e37f370aca8fc8 --- /dev/null +++ b/darshan-test/regression/cray-module-alcf/runjob.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# submit job and get job id +jobid=`qsub --env DARSHAN_LOGFILE=$DARSHAN_LOGFILE --env DARSHAN_DEFAULT_NPROCS=$DARSHAN_DEFAULT_NPROCS --proccount $DARSHAN_DEFAULT_NPROCS -A EarlyPerf_theta -t 10 -n 1 --output $DARSHAN_TMP/$$-tmp.out --error $DARSHAN_TMP/$$-tmp.err --debuglog $DARSHAN_TMP/$$-tmp.debuglog $DARSHAN_TESTDIR/$DARSHAN_PLATFORM/cobalt-submit.sh "$@"` + +if [ $? -ne 0 ]; then + echo "Error: failed to qsub $@" + exit 1 +fi + +output="foo" +rc=0 + +# loop as long as qstat succeeds and shows information about job +while [ -n "$output" -a "$rc" -eq 0 ]; do + sleep 5 + output=`qstat $jobid` + rc=$? +done + +# look for return code +grep "exit code of 0" $DARSHAN_TMP/$$-tmp.debuglog >& /dev/null +if [ $? -ne 0 ]; then + # sleep to give time for exit code line to appear in log file + sleep 5 + grep "exit code of 0" $DARSHAN_TMP/$$-tmp.debuglog >& /dev/null + if [ $? -ne 0 ]; then + exit 1 + else + exit 0 + fi +else + exit 0 +fi