1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#!/bin/bash
#
# Copyright (C) 2018, Northwestern University and Argonne National Laboratory
# See COPYRIGHT notice in top-level directory.
#
# Exit immediately if a command exits with a non-zero status.
set -e
VALIDATOR=../../src/utils/ncvalidator/ncvalidator
NCMPIDIFF=../../src/utils/ncmpidiff/ncmpidiff
# remove file system type prefix if there is any
OUTDIR=`echo "$TESTOUTDIR" | cut -d: -f2-`
MPIRUN=`echo ${TESTMPIRUN} | ${SED} -e "s/NP/$1/g"`
# echo "MPIRUN = ${MPIRUN}"
# echo "check_PROGRAMS=${check_PROGRAMS}"
# let NTHREADS=$1*6-1
NTHREADS=`expr $1 \* 6 - 1`
# echo "PNETCDF_DEBUG = ${PNETCDF_DEBUG}"
if test ${PNETCDF_DEBUG} = 1 ; then
safe_modes="0 1"
else
safe_modes="0"
fi
# prevent user environment setting of PNETCDF_HINTS to interfere
unset PNETCDF_HINTS
for i in ${check_PROGRAMS} ; do
for j in ${safe_modes} ; do
for intra_aggr in 0 1 ; do
if test "$j" = 1 ; then # test only in safe mode
export PNETCDF_HINTS="romio_no_indep_rw=true"
else
export PNETCDF_HINTS=
fi
if test "$intra_aggr" = 1 ; then
export PNETCDF_HINTS="${PNETCDF_HINTS};nc_num_aggrs_per_node=2"
fi
export PNETCDF_SAFE_MODE=$j
# echo "set PNETCDF_SAFE_MODE ${PNETCDF_SAFE_MODE}"
if test $i = "pnetcdf-read-from-master" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-from-master.nc
elif test $i = "pnetcdf-read-nfiles" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-nfiles.nc
elif test $i = "pnetcdf-read-standard" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-standard.nc
elif test $i = "pnetcdf-read-flexible" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-flexible.nc
elif test $i = "pnetcdf-read-nb" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-nb.nc
else
${MPIRUN} ./$i ${TESTOUTDIR}/$i.nc
fi
if test $? = 0 ; then
if test $i = "pnetcdf-write-bufferedf77" ; then
echo "PASS: F77 parallel run on $1 processes --------------- $i"
elif test $i = "pnetcdf-write-bufferedf" ; then
echo "PASS: F90 parallel run on $1 processes --------------- $i"
else
echo "PASS: C parallel run on $1 processes --------------- $i"
fi
fi
if test "$i" = pthread ; then
# each MPI process created 6 threads
for k in `seq 0 ${NTHREADS}` ; do
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc.$k
done
continue
fi
if test $i = "pnetcdf-write-nfiles" ; then
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc.0-4.nc
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc.1-4.nc
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc.2-4.nc
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc.3-4.nc
elif test $i != "pnetcdf-read-from-master" -a \
$i != "pnetcdf-read-nfiles" -a \
$i != "pnetcdf-read-standard" -a \
$i != "pnetcdf-read-flexible" -a \
$i != "pnetcdf-read-nb" ; then
# echo "--- validating file ${TESTOUTDIR}/$i.nc"
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.nc
fi
# echo ""
if test "x${ENABLE_BURST_BUFFER}" = x1 ; then
# echo "test burst buffering feature"
saved_PNETCDF_HINTS=${PNETCDF_HINTS}
export PNETCDF_HINTS="${PNETCDF_HINTS};nc_burst_buf=enable;nc_burst_buf_dirname=${TESTOUTDIR};nc_burst_buf_overwrite=enable"
if test $i = "pnetcdf-read-from-master" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-from-master.bb.nc
elif test $i = "pnetcdf-read-nfiles" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-nfiles.bb.nc
elif test $i = "pnetcdf-read-standard" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-standard.bb.nc
elif test $i = "pnetcdf-read-flexible" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-flexible.bb.nc
elif test $i = "pnetcdf-read-nb" ; then
${MPIRUN} ./$i ${TESTOUTDIR}/pnetcdf-write-nb.bb.nc
else
${MPIRUN} ./$i ${TESTOUTDIR}/$i.bb.nc
fi
if test $? = 0 ; then
if test $i = "pnetcdf-write-bufferedf77" ; then
echo "PASS: F77 parallel run on $1 processes --------------- $i"
elif test $i = "pnetcdf-write-bufferedf" ; then
echo "PASS: F90 parallel run on $1 processes --------------- $i"
else
echo "PASS: C parallel run on $1 processes --------------- $i"
fi
fi
export PNETCDF_HINTS=${saved_PNETCDF_HINTS}
if test $i = "pnetcdf-write-nfiles" ; then
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.bb.nc.0-4.nc
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.bb.nc.1-4.nc
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.bb.nc.2-4.nc
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.bb.nc.3-4.nc
elif test $i != "pnetcdf-read-from-master" -a \
$i != "pnetcdf-read-nfiles" -a \
$i != "pnetcdf-read-standard" -a \
$i != "pnetcdf-read-flexible" -a \
$i != "pnetcdf-read-nb" ; then
# echo "--- validating file ${TESTOUTDIR}/$i.bb.nc"
${TESTSEQRUN} ${VALIDATOR} -q ${TESTOUTDIR}/$i.bb.nc
# echo "--- ncmpidiff $i.nc $i.bb.nc ---"
${MPIRUN} ${NCMPIDIFF} -q ${TESTOUTDIR}/$i.nc ${TESTOUTDIR}/$i.bb.nc
fi
fi
if test "x${ENABLE_NETCDF4}" = x1 ; then
# echo "test netCDF-4 feature"
${MPIRUN} ./$i ${TESTOUTDIR}/$i.nc4 4
# Validator does not support nc4
fi
done
done
done
rm -f ${OUTDIR}/pnetcdf-*.nc
|