Commit ba3aa877 authored by Shane Snyder's avatar Shane Snyder
Browse files

Merge branch 'dev-new-regression-tests' into 'master'

new regression test cases

See merge request darshan/darshan!48
parents 8f42b7b2 34ec51db
......@@ -29,7 +29,7 @@ build_darshan:
paths:
- install/
test_darshan:
test_darshan_static:
tags:
- shell
- ecp-theta
......@@ -43,8 +43,7 @@ test_darshan:
stage: test
script:
- ls $PWD/install
- ls $PWD/install/bin
- export CRAYPE_LINK_TYPE=static
- darshan-test/regression/run-all.sh $PWD/install $PWD/scratch cray-module-alcf
artifacts:
......@@ -53,3 +52,34 @@ test_darshan:
- $PWD/scratch/*.debuglog
- $PWD/scratch/*.out
- $PWD/scratch/*.err
resource_group: debug-queue
test_darshan_dynamic:
tags:
- shell
- ecp-theta
rules:
- if: '$CI_PIPELINE_SOURCE == "web" && $RUN_TESTS == "true"'
when: on_success
- if: '$CI_PIPELINE_SOURCE == "schedules" && $RUN_TESTS == "true"'
when: on_success
stage: test
script:
- export CRAYPE_LINK_TYPE=dynamic
- darshan-test/regression/run-all.sh $PWD/install $PWD/scratch cray-module-alcf
- ldd $PWD/scratch/mpi-io-test
- nm $PWD/scratch/mpi-io-test | grep darshan
- nm $PWD/scratch/mpi-io-test | grep MPI
artifacts:
paths:
- $PWD/scratch/*.darshan
- $PWD/scratch/*.debuglog
- $PWD/scratch/*.out
- $PWD/scratch/*.err
resource_group: debug-queue
See README.txt for general instructions. This file contains notes for testing on the Blue Gene platform
(more specifically: cetus.alcf.anl.gov). This example assumes that you are using the MPICH profile conf
method to add instrumentation.
To run regression tests:
- compile and install both darshan-runtime and darshan-util in the same directory
examples:
# darshan runtime
../configure --with-mem-align=16 --with-log-path=/projects/SSSPPg/carns/darshan-logs --prefix=/home/carns/working/darshan/install-cetus --with-jobid-env=COBALT_JOBID --with-zlib=/soft/libraries/alcf/current/gcc/ZLIB --host=powerpc-bgp-linux CC=/bgsys/drivers/V1R2M2/ppc64/comm/bin/gcc/mpicc
make install
# darshan util
../configure --prefix=/home/carns/working/darshan/install-cetus
make install
- start a screen session by running "screen"
note: this is suggested because the tests may take a while to complete depending on scheduler
availability
- within the screen session, set your path to point to a stock set of MPI compiler scripts
export PATH=/bgsys/drivers/V1R2M2/ppc64/comm/bin/gcc:$PATH
- run regression tests
./run-all.sh /home/carns/working/darshan/install-cetus /projects/SSSPPg/carns/darshan-test bg-profile-conf-alcf
note: the f90 test is expected to fail due to a known problem in the profiling interface for the
F90 MPICH implementation on Mira.
......@@ -8,14 +8,18 @@ The master script must be executed with three arguments:
2) path to temporary directory (for building executables, collecting logs,
etc. during test)
3) platform type; options include:
- workstation-static (for static instrumentation on a standard workstation)
- workstation-dynamic (for dynamic instrumentation on a standard workstation)
- workstation-profile-conf (for static instrumentation using MPI profiling
configuration hooks on a standard workstation)
- bg-profile-conf-alcf (for static instrumentation using MPI profiling configuration
hooks on BGQ platforms @ the ALCF only)
- cray-module-alcf (for static instrumentation using a Darshan Cray module on
Cray systems @ the ALCF only)
- workstation-cc-wrapper (for static/dynamic instrumentation on a standard
workstation using Darshan compiler wrappers)
- workstation-profile-conf-static (for static instrumentation using MPI
profiling configuration hooks on a standard workstation)
- workstation-profile-conf-dynamic (for dynamic instrumentation using MPI
profiling configuration hooks on a standard workstation)
- workstation-ld-preload (for dynamic instrumentation via LD_PRELOAD on a
standard workstation)
- cray-module-alcf (for static/dynamic instrumentation using a Darshan
Cray module on Cray systems @ the ALCF only)
- cray-module-nersc (for static/dynamic instrumentation using a Darshan
Cray module on Cray systems @ NERSC only)
The platform type should map to a subdirectory containing scripts
that describe how to perform platform-specific tasks (like loading or
......
#!/bin/bash
# convert DXT env setting
if [ -n "${DXT_ENABLE_IO_TRACE+defined}" ]; then
DXT_ENV="--env DXT_ENABLE_IO_TRACE=$DXT_ENABLE_IO_TRACE"
fi
# submit job and get job id
jobid=`qsub --env DARSHAN_LOGFILE=$DARSHAN_LOGFILE $DXT_ENV --mode c16 --proccount $DARSHAN_DEFAULT_NPROCS -A radix-io -t 10 -n 1 --output $DARSHAN_TMP/$$-tmp.out --error $DARSHAN_TMP/$$-tmp.err --debuglog $DARSHAN_TMP/$$-tmp.debuglog "$@"`
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
exit 1
else
exit 0
fi
......@@ -6,7 +6,7 @@ if [ -n "${DXT_ENABLE_IO_TRACE+defined}" ]; then
fi
# submit job and get job id
jobid=`qsub --env DARSHAN_LOGFILE=$DARSHAN_LOGFILE --env DARSHAN_DEFAULT_NPROCS=$DARSHAN_DEFAULT_NPROCS $DXT_ENV --proccount $DARSHAN_DEFAULT_NPROCS -A CSC250STDM12 -q debug-cache-quad -t 20 -n 1 --output $DARSHAN_TMP/$$-tmp.out --error $DARSHAN_TMP/$$-tmp.err --debuglog $DARSHAN_TMP/$$-tmp.debuglog $DARSHAN_TESTDIR/$DARSHAN_PLATFORM/cobalt-submit.sh "$@"`
jobid=`qsub --env DARSHAN_LOGFILE=$DARSHAN_LOGFILE --env DARSHAN_DEFAULT_NPROCS=$DARSHAN_DEFAULT_NPROCS $DXT_ENV --proccount $DARSHAN_DEFAULT_NPROCS -A CSC250STDM12 -q debug-cache-quad -t 20 -n 1 --run_project --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 $@"
......
......@@ -16,7 +16,7 @@
# variables (as in a dynamically linked environment), or generate mpicc
# wrappers (as in a statically linked environment).
# Notes specific to this platform (workstation-static)
# Notes specific to this platform (workstation-cc-wrapper)
########################
# This particular env script assumes that mpicc and its variants for other
# languages are already in the path. The compiler scripts to be used in
......
......@@ -16,11 +16,11 @@
# variables (as in a dynamically linked environment), or generate mpicc
# wrappers (as in a statically linked environment).
# Notes specific to this platform (workstation-dynamic)_
# Notes specific to this platform (workstation-ld-preload)
########################
# This particular env script assumes that mpicc and its variants for other
# languages are already in the path, and that they will produce dynamic
# executables by default. Test programs are compile usign the existing
# executables by default. Test programs are compiled using the existing
# scripts, and LD_PRELOAD is set to enable instrumentation.
# The runjob command is just mpiexec, no scheduler
......
......@@ -16,10 +16,10 @@
# variables (as in a dynamically linked environment), or generate mpicc
# wrappers (as in a statically linked environment).
# Notes specific to this platform (workstation-dynamic)_
# Notes specific to this platform (workstation-profile-conf-dynamic)
########################
# This particular env script assumes that mpicc and its variants for other
# languages are already in the path, and that they will produce static
# languages are already in the path, and that they will produce dynamic
# executables by default. Darshan instrumentation is added by specifying
# a profiling configuration file using environment variables.
......
......@@ -16,24 +16,26 @@
# variables (as in a dynamically linked environment), or generate mpicc
# wrappers (as in a statically linked environment).
# Notes specific to this platform (bg-profile-conf-alcf)
# Notes specific to this platform (workstation-profile-conf-static)
########################
# This particular env script assumes that mpicc and its variants for other
# languages are already in the path, and that they will produce static
# executables by default. Darshan instrumentation is added by specifying
# a profiling configuration file using environment variables.
# the RUNJOB command is the most complex part here. We use a script that submits
# a cobalt job, waits for its completion, and checks its return status
# The runjob command is just mpiexec, no scheduler
export DARSHAN_CC=mpicc
export DARSHAN_CXX=mpicxx
export DARSHAN_F77=mpif77
export DARSHAN_F90=mpif90
export MPICC_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-bg-cc
export MPICXX_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-bg-cxx
export MPIF90_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-bg-f
export MPIF77_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-bg-f
export MPICC_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-cc-static
export MPICXX_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-cxx-static
export MPIF90_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-f-static
export MPIF77_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-f-static
# MPICH 3.1.1 and newer use MPIFORT rather than MPIF90 and MPIF77 in env var
# name
export MPIFORT_PROFILE=$DARSHAN_PATH/share/mpi-profile/darshan-f-static
export DARSHAN_RUNJOB="bg-profile-conf-alcf/runjob.sh"
export DARSHAN_RUNJOB="mpiexec -n $DARSHAN_DEFAULT_NPROCS"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment