From df0b800d794c03f4921b8734e6827a5bc785d5cd Mon Sep 17 00:00:00 2001 From: Shane Snyder Date: Thu, 27 Apr 2017 17:36:17 +0000 Subject: [PATCH] add cray regression test scripts (for alcf) --- .../cray-module-alcf/cobalt-submit.sh | 10 ++++++ .../regression/cray-module-alcf/env.sh | 34 +++++++++++++++++++ .../regression/cray-module-alcf/runjob.sh | 34 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100755 darshan-test/regression/cray-module-alcf/cobalt-submit.sh create mode 100755 darshan-test/regression/cray-module-alcf/env.sh create mode 100755 darshan-test/regression/cray-module-alcf/runjob.sh 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 0000000..529b154 --- /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 0000000..cf39640 --- /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 0000000..e7d930a --- /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 -- 2.26.2