ddn-ime-evaluation/run.sh

85 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
function force_exit {
echo "Committing suicide (PID $$)"
exit
}
trap force_exit SIGINT
# Provides a list of good hosts (that contains QDR connection)
function hosts() {
num="$1"
HOST_LIST=( isc17-c04 isc17-c05 isc17-c06 isc17-c18 )
hlist=${HOST_LIST[0]}
for POS in $(seq 1 $(($num - 1))) ; do
hlist="$hlist,${HOST_LIST[$POS]}"
done
echo $hlist
}
-D $((120))
export MODULEPATH=/gsfs/betke/software/modules:$MODULEPATH
module purge
module load betke/hdf5/1.8.20-ddn
module load betke/ior/git-ddn
module list
LUSTRE_TESTFILE_WRITE="/esfs/jtacquaviva/ioperf/file_write"
LUSTRE_TESTFILE_READ="/esfs/jtacquaviva/file_read"
ITERATIONS=3
IOR="$(which ior)"
MPIEXEC="/opt/ddn/mvapich/bin/mpiexec"
NN_ARR=( 4 2 1 )
PPN_ARR=( 8 6 4 2 1 )
T_ARR=( $((10240*1024)) $((1024*1024)) $((100*1024)) $((16*1024)) )
API_ARR=( "POSIX" "MPIIO" )
for T in ${T_ARR[@]}; do
for COUNT in $(seq 1); do
for NN in ${NN_ARR[@]}; do
for PPN in ${PPN_ARR[@]}; do
for API in ${API_ARR[@]}; do
BENCHFILE="./output/COUNT:$COUNT#NN:$NN#PPN:$PPN#API:$API#T:$T.txt"
if [ ! -e "${BENCHFILE}" ]; then
OUTDIR="$(dirname $BENCHFILE)"
if [ ! -d $OUTDIR ]; then
mkdir $OUTDIR
fi
touch $BENCHFILE
IOR_PARAMS="-i $ITERATIONS -s 1 -t $T -b $((132 * 1024 * 1024 * 1020 / $PPN)) -D $((120)) -a $API -e -g -z -k"
ENVVAR="-genv MV2_NUM_HCAS 1 -genv MV2_CPU_BINDING_LEVEL core -genv MV2_CPU_BINDING_POLICY scatter"
MPIEXEC_PARAMS=" -ppn $PPN -np $(($NN * $PPN)) $ENVVAR --hosts $(hosts $NN) "
TESTDIR="$(dirname $LUSTRE_TESTFILE_WRITE)"
if [ -d $TESTDIR ]; then
rm -r $TESTDIR
fi
mkdir -p $TESTDIR
lfs setstripe -c $((2 * $NN)) $TESTDIR
(
set -x
$MPIEXEC $MPIEXEC_PARAMS $IOR $IOR_PARAMS -o $LUSTRE_TESTFILE_WRITE -w | tee -a $BENCHFILE
$MPIEXEC $MPIEXEC_PARAMS /gsfs/betke/git/ime-evaluation/drop_caches.sh
$MPIEXEC $MPIEXEC_PARAMS $IOR $IOR_PARAMS -o $LUSTRE_TESTFILE_READ -r | tee -a $BENCHFILE
set +x
) 2> >(tee -a $BENCHFILE)
rm $LUSTRE_TESTFILE_WRITE
lfs getstripe $TESTDIR | tee -a $BENCHFILE
else
echo "skip $(readlink -f $BENCHFILE), already exists"
fi
done
done
done
done
done