#!/bin/bash # # run multiple times numa_test, collect data and print statistical information # Usage: runtests NJOBS NTIMES # if [ $# -ne 2 ] ; then echo "Please supply the number of parallel jobs and tests to run!" exit 1 fi export PATH=.:$PATH NJOBS=$1 NTESTS=$2 OUT=numatsts_$$ [[ -f $OUT ]] && rm -f $OUT export PATH=$PATH:`pwd` Average() { awk 'BEGIN { n=0; sum=0; sum2=0;}; {n=n+1; sum=sum+$1; sum2=sum2+($1*$1);}; END {avg=sum/n; std=sqrt(sum2/n-(avg*avg)); printf("%.4f %.4f\n",avg,std); }' } n=0 while [ $n -lt $NTESTS ]; do n=`expr $n + 1` echo -n "$n " numa_test $NJOBS >> $OUT 2>&1 done echo VARS="AverageUserTime ElapsedTime TotalUserTime TotalSysTime" echo "numa_test $NJOBS avg time +- stddev" for name in $VARS ; do printf "%15s %7.2f(%.2f)\n" $name `grep $name <$OUT| awk '{print $2}'| Average` done