#!/bin/bash -x ##PBS -N IOR ##PBS -j oe ##PBS -l walltime=00:49:00 ##PBS -l size=128 ##PBS -q batch ##PBS -A stf006 ##PBS -V #cd $PBS_O_WORKDIR #/opt/public/bin/nodeinfo-cnl #xtprocadmin > ./NODEINFO EXEC=${PWD}/../src/C/IOR IODIR=/scratch/swh13/test_files_x RESULTS=${PWD} which mpirun #rm -fr $IODIR #mkdir $IODIR let "w=128" let "s=1024*1024" RESULTS="." for tid in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 18 19 20 do XFERS="1048576 262144 32768 4096 1024" for xfer in `echo $XFERS` do let "n=8" until [ "$n" -gt 8 ] do let "m=$n/4" #TESTS="POSIX MPIIO HDF5 NCMPI" TESTS="POSIX" for test in `echo $TESTS` do runid="p$n.$xfer.${test}" date | tee ${RESULTS}/${runid}.log let "block=${xfer}" case "$tid" in 1 ) #fileperproc write, random offset (no matter, just one write/file) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -w -z -v -v -F -o $IODIR/testwrite.${runid} -e -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 2 ) #fileperproc write, random offsetis for (10 writes/file) let "block=${xfer}*10" mpirun -n $n ${EXEC} -A ${tid} -a ${test} -w -z -v -v -F -o $IODIR/testwrite.${runid} -e -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 3 ) #shared file write, random offsets (1 writes/file) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -w -z -v -v -o $IODIR/testwrite.${runid} -e -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 4 ) #generate fileperproc write files for subsequent reads) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -w -z -v -v -F -o $IODIR/testwrite.${runid} -k -e -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 5 ) #fileperproc each proc reads file just written by it's own core) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 6 ) #fileperproc each proc reads file just written by it's own core, test zero offset...should be close to previous test) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -C -Q 0 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 7 ) #fileperproc each proc reads file just written by proc offset by 1 node, defeat client side caching) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -C -Q 1 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 8 ) #fileperproc each proc reads file just written by proc offset by at least $m nodes, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -C -Q $m -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 9 ) #fileperproc each proc reads file just written by proc randomly offset, seed 139, same random pattern per iteration, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -Z -Q 0 -X 139 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 10 ) #fileperproc each proc reads file just written by proc randomly offset by at least 1 node, seed 139, same random pattern per iteration, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -Z -Q 1 -X 139 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 11 ) #fileperproc each proc reads file just written by proc randomly offset by at least $m nodes, seed 139, same random pattern per iteration, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -Z -Q $m -X 139 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 12 ) #fileperproc each proc reads file just written by proc randomly offset by at least 0 nodes, seed 139, different random pattern per iteration, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -Z -Q 0 -X -139 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 13 ) #fileperproc each proc reads file just written by proc randomly offset by at least 1 nodes, seed 139, different random pattern per iteration, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -Z -Q 1 -X -139 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 14 ) #fileperproc each proc reads file just written by proc randomly offset by at least $m nodes, seed 139, different random pattern per iteration, defeat client side caching, compare with offset of 1) mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -Z -Q $m -X -139 -v -v -F -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 15 ) #delete files run mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -v -v -F -o $IODIR/testwrite.${runid} -i 100 -m -t ${xfer} -b ${block} -d 0.0 | tee -a ${RESULTS}/${runid}.log ;; 16 ) # shared-file write mpirun -n $n ${EXEC} -A ${tid} -a ${test} -w -v -v -o $IODIR/testwrite.${runid} -k -e -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 17 ) #random shared-file write mpirun -n $n ${EXEC} -A ${tid} -a ${test} -w -z -v -v -o $IODIR/testwrite.${runid} -k -e -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 18 ) # shared-file read, offset by 0 node mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -v -v -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 19 ) # shared-file read, offset by 1 node mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -C -v -v -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; 20 ) #random shared-file read,random offset mpirun -n $n ${EXEC} -A ${tid} -a ${test} -E -r -z -v -v -o $IODIR/testwrite.${runid} -k -i 100 -m -t ${xfer} -b ${block} -d 0.1 | tee -a ${RESULTS}/${runid}.log ;; esac date | tee -a ${RESULTS}/${runid}.log done let "n = $n * 2" done #n done #xfer done #tid exit