#!/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

