#!/bin/bash MINNODE=1 MAXNODE=37 OMP_NUM_THREADS=8 for i in $(seq $MINNODE $(($MAXNODE-1))) do for j in $(seq $(($i+1)) $MAXNODE) do STARTNODES=$(seq -s',' $(($i*4)) $(($i*4+3))) ENDNODES=$(seq -s',' $(($j*4)) $(($j*4+3))) echo -e -n "Testing node link $i-$j:\t" echo -e "cpus $STARTNODES,$ENDNODES\nmems $i,$j\ncpu_exclusive 1\nmem_exclusive 1\nmemory_migrate 0\nmemory_spread_page 1\nmemory_spread_slab 1\nnotify_on_release 0" | cpuset -c /${i}_to_$j > /dev/null echo -e "#!/bin/bash\nLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/mkl/current/lib/64/\nLIBRARY_PATH=$LIBRARY_PATH:/opt/intel/mkl/current/lib/64/\nOMP_NUM_THREADS=8 numactl --interleave=$i,$j ./mult_bf.exe < mult_bf.in" > myjob chmod a+x myjob JOBOUTPUT=$(cpuset -i /${i}_to_$j -I ./myjob) FLOPS=$(echo -e $JOBOUTPUT | sed 's/.* //g' | sed 's/\..*$//') if [ $FLOPS -gt 35000 ] then echo "GOOD" else echo "BAD" fi done done