diff --git a/doc/sphinx/09_Microbenchmarks/M6_IOR/ats3_ior.csv b/doc/sphinx/09_Microbenchmarks/M6_IOR/ats3_ior.csv index 0b8f4576..0efe1951 100644 --- a/doc/sphinx/09_Microbenchmarks/M6_IOR/ats3_ior.csv +++ b/doc/sphinx/09_Microbenchmarks/M6_IOR/ats3_ior.csv @@ -1,5 +1,5 @@ Node_Config,MPIIO_task,POSIX_task,MPIIO_shared,POSIX_shared "Single Write",38615.88,38508.96,35964.32,37724.38 "Single Read",41830.12,42963.57,41933.79,42000.99 -"Full System Write",,,, +"Full System Write",1194607.75,1263481.38,, "Full System Read",,,, \ No newline at end of file diff --git a/microbenchmarks/ior/Xrds_acceptance_script.sh b/microbenchmarks/ior/Xrds_acceptance_script.sh index d49e84e4..f4a72612 100644 --- a/microbenchmarks/ior/Xrds_acceptance_script.sh +++ b/microbenchmarks/ior/Xrds_acceptance_script.sh @@ -3,22 +3,43 @@ ############## # IOR ############## +set -e ## SET VARS FROM CL INPUT KEY=VALUE -setvar () { +setvar() { while [[ $# -gt 0 ]]; do export $1 shift done } -export SCRATCH=/lustre/xrscratch1 # CROSSROADS SCRATCH +realpath() { + tpth=${1:-$(pwd)} + echo $(/usr/bin/realpath $tpth) +} + +if [[ -f ${BASH_SOURCE[0]} ]]; then + thisfile=${BASH_SOURCE[0]} +elif [[ -f $0 ]]; then + thisfile=$0 +else + echo "THIS SCRIPT CAN'T FIND ITSELF." + exit 1 +fi + +# XRDS AND ROCI +runpath=$(pwd) +export SCRATCH_HOME=$(find /lustre -maxdepth 5 -name $USER -type d 2> /dev/null | grep -v -m1 givedir) +export THISDIR=$(dirname $thisfile) export IORLOG=${HOME}/logs/ior -export IORLOC= +export PREFIX=${HOME}/ior export TPN=110 export SEGMENTS=16 export SIZE=2G -export NNODES=$SLURM_NNODES +export NNODES=${SLURM_NNODES} +export BUILD_DIR=/tmp/${USER}/ior +export BUILD=true +export IORSRC=$THISDIR separator="\t ------------------------------------------------- \t" ################################################################### @@ -27,21 +48,51 @@ separator="\t ------------------------------------------------- \t" ################################################################### setvar $@ -find ${WORKING_DIR} -type f -delete mkdir -p $IORLOG -export SCRATCH_HOME=${SCRATCH}/${USER} export WORKING_DIR=${SCRATCH_HOME}/ior +mkdir -p ${WORKING_DIR} +find ${WORKING_DIR} -type f -delete + +### IF CRAY +export MPICC=cc +export MPICXX=CC +export MPIFC=ftn +export CC=cc +export CXX=CC +export FC=ftn +export CFLAGS='-O3 -w' +prearg='' +postarg='' runior() { # 1 is working dir output file # 2 is POSIX or MPIIO # 3 is PRE 2 args # 4 is POST 2 args - srun -N ${NNODES} --ntasks-per-node=${TPN} ${IORLOC}/ior "${3}" $2 "${4}" -o ${WORKING_DIR}/${NNODES}_${2}_${1} + echo srun -N ${NNODES} --ntasks-per-node=${TPN} ./bin/ior ${prearg} $2 ${postarg} -o ${NNODES}_${2}_${1}/a &>> ior_results + srun -N ${NNODES} --ntasks-per-node=${TPN} ./bin/ior ${prearg} $2 ${postarg}} -o ${NNODES}_${2}_${1}/a &>> ior_results sleep 3 } +################################################################### +# BUILD IOR +if [[ $BUILD != "false" ]]; then + rm -rf $PREFIX + mkdir -p $PREFIX + mkdir -p $BUILD_DIR + cd $BUILD_DIR + $IORSRC/configure --prefix=$PREFIX + make + make install + cd $runpath +fi +if [[ $BUILD == "only" ]]; then + echo BUILT HERE: $BUILD_DIR + echo INSTALLED HERE: $PREFIX + exit 0 +fi + ################################################################### # PRE # -k -e -a @@ -54,25 +105,27 @@ runior() { ################################################################### # POST -# -F -v $SIZE -s $SEGMENTS -t 1M -D 30 -r -# -F -v $SIZE -s $SEGMENTS -t 1M -D 180 -w #WRITE +# -F -v $SIZE -s $SEGMENTS -t 1M -D 30 -r +# -F -v $SIZE -s $SEGMENTS -t 1M -D 180 -w #WRITE # -v -b $SIZE -s $SEGMENTS -t 1M -D 180 -w -# -v -b $SIZE -s $SEGMENTS -t 1M -D 45 -r +# -v -b $SIZE -s $SEGMENTS -t 1M -D 45 -r ################################################################### # PER NODE READ WRITE ################################################################### +cd $PREFIX title="per_node" echo -e "START $separator" echo -e "$separator" echo "WRITE: $title" +cd $WORKING_DIR -prearg="-k -e -a" -postarg="-F -v -b $SIZE -s $SEGMENTS -t 1M -D 180 -w" -runior $title "POSIX" $prearg $postarg +prearg='-k -e -a' +postarg='-F -v -b $SIZE -s $SEGMENTS -t 1M -D 180 -w' +runior $title "POSIX" echo -e "$separator" -runior $title "MPIIO" $prearg $postarg +runior $title "MPIIO" echo -e "$separator" echo "READ: $title" @@ -92,8 +145,8 @@ echo -e "$separator" echo -e "$separator" echo "WRITE: $title" -prearg="-k -e -E -a" -postarg="-v -b $SIZE -s $SEGMENTS -t 1M -D 180 -w" +prearg='-k -e -E -a' +postarg='-v -b ${SIZE} -s ${SEGMENTS} -t 1M -D 180 -w' lfs setstripe -c 4 ${WORKING_DIR}/${NNODES}_POSIX_${title} runior $title "POSIX" $prearg $postarg echo -e "$separator" @@ -116,4 +169,4 @@ echo $(date) >> ${HOME}/ior_current/run_summary env >> ${HOME}/ior_current/run_summary echo -e "END $separator" - +cd $THISDIR