adding a test case
[IRC.git] / Robust / src / Benchmarks / Prefetch / MicroBenchmarks / runmicro.sh
1 #!/bin/sh 
2
3 #set -x
4 MACHINES2='dc-2.calit2.uci.edu'
5 MACHINES3='dc-2.calit2.uci.edu dc-3.calit2.uci.edu'
6 MACHINES4='dc-2.calit2.uci.edu dc-3.calit2.uci.edu dc-4.calit2.uci.edu'
7 MACHINES5='dc-2.calit2.uci.edu dc-3.calit2.uci.edu dc-4.calit2.uci.edu dc-5.calit2.uci.edu'
8 MACHINES6='dc-2.calit2.uci.edu dc-3.calit2.uci.edu dc-4.calit2.uci.edu dc-5.calit2.uci.edu dc-6.calit2.uci.edu'
9 MACHINES7='dc-2.calit2.uci.edu dc-3.calit2.uci.edu dc-4.calit2.uci.edu dc-5.calit2.uci.edu dc-6.calit2.uci.edu dc-7.calit2.uci.edu'
10 MACHINES8='dc-2.calit2.uci.edu dc-3.calit2.uci.edu dc-4.calit2.uci.edu dc-5.calit2.uci.edu dc-6.calit2.uci.edu dc-7.calit2.uci.edu dc-8.calit2.uci.edu'
11 LOGDIR=/home/adash/research/Robust/src/Benchmarks/Prefetch/runlog
12 TOPDIR=`pwd`
13
14 function run {
15   i=0;
16   DIR=`pwd`
17   while [ $i -lt $1 ]; do
18     echo "$DIR" > ~/.tmpdir
19     echo "bin=$3" > ~/.tmpvars
20     if [ $2 -eq 2 ]; then 
21       arg=$ARGS2
22       MACHINES=$MACHINES2
23     fi
24     if [ $2 -eq 3 ]; then 
25       arg=$ARGS3
26       MACHINES=$MACHINES3
27     fi
28     if [ $2 -eq 4 ]; then 
29       arg=$ARGS4
30       MACHINES=$MACHINES4
31     fi
32     if [ $2 -eq 5 ]; then 
33       arg=$ARGS5
34       MACHINES=$MACHINES5
35     fi
36     if [ $2 -eq 6 ]; then 
37       arg=$ARGS6
38       MACHINES=$MACHINES6
39     fi
40     if [ $2 -eq 7 ]; then 
41       arg=$ARGS7
42       MACHINES=$MACHINES7
43     fi
44     if [ $2 -eq 8 ]; then 
45       arg=$ARGS8
46       MACHINES=$MACHINES8
47     fi
48     chmod +x ~/.tmpvars
49     for machine in `echo $MACHINES`
50     do
51       ssh ${machine} 'cd `cat ~/.tmpdir`; source ~/.tmpvars; ./$bin' &
52       echo ""
53     done
54     sleep 2 
55     /usr/bin/time -f "%e" ./$3 master $arg 2>> ${LOGDIR}/${3}.txt
56     echo "Terminating ... "
57     for machine in `echo $MACHINES`
58     do
59       ssh ${machine} 'source ~/.tmpvars; killall $bin'
60     done
61     sleep 2
62     i=`expr $i + 1`
63   done
64 }
65
66 function localrun {
67   i=0;
68   while [ $i -lt $1 ]; do
69     /usr/bin/time -f "%e" ./${NONPREFETCH} master $ARGS1 2>> ${LOGDIR}/${NONPREFETCH}_local.txt
70     sleep 4
71     i=`expr $i + 1`
72   done
73 }
74
75 function callrun {
76   NONPREFETCH=${BENCHMARK}1NP.bin
77   NONPREFETCH2=${BENCHMARK}2NP.bin
78   NONPREFETCH3=${BENCHMARK}3NP.bin
79   NONPREFETCH4=${BENCHMARK}4NP.bin
80   NONPREFETCH5=${BENCHMARK}5NP.bin
81   NONPREFETCH6=${BENCHMARK}6NP.bin
82   NONPREFETCH7=${BENCHMARK}7NP.bin
83   NONPREFETCH8=${BENCHMARK}8NP.bin
84
85   echo "---------- Running ${BENCHMARK} local non-prefetch on 1 machine ---------- "
86   localrun 10
87
88   echo "---------- Running ${BENCHMARK} two threads non-prefetch on 2 machines ---------- "
89   run 10 2 $NONPREFETCH2 
90   echo "---------- Running ${BENCHMARK} three threads non-prefetch on 3 machines ---------- "
91   run 10 3 $NONPREFETCH3 
92   echo "---------- Running ${BENCHMARK} four threads non-prefetch on 4 machines ---------- "
93   run 5 4 $NONPREFETCH4 
94   echo "---------- Running ${BENCHMARK} five threads non-prefetch on 5 machines ---------- "
95   run 10 5 $NONPREFETCH5 
96   echo "---------- Running ${BENCHMARK} six threads non-prefetch on 6 machines ---------- "
97   run 10 6 $NONPREFETCH6 
98   echo "---------- Running ${BENCHMARK} seven threads non-prefetch on 7 machines ---------- "
99   run 10 7 $NONPREFETCH7 
100   echo "---------- Running ${BENCHMARK} eight threads non-prefetch on 8 machines ---------- "
101   run 10 8 $NONPREFETCH8 
102
103   cd $TOPDIR
104 }
105
106 benchmarks='rarray rao warray wao'
107
108 echo "---------- Clean old files ---------- "
109 rm ../runlog/*
110 for b in `echo $benchmarks`
111 do
112   bm=`grep $b bm.txt`
113   BENCHMARK=`echo $bm | cut -f1 -d":"`
114   ARGS1=`echo $bm | cut -f2 -d":"`
115   ARGS2=`echo $bm | cut -f3 -d":"`
116   ARGS3=`echo $bm | cut -f4 -d":"`
117   ARGS4=`echo $bm | cut -f5 -d":"`
118   ARGS5=`echo $bm | cut -f6 -d":"`
119   ARGS6=`echo $bm | cut -f7 -d":"`
120   ARGS7=`echo $bm | cut -f8 -d":"`
121   ARGS8=`echo $bm | cut -f9 -d":"`
122   EXTENSION=`echo $bm | cut -f10 -d":"`
123   callrun
124 done
125
126 #----------Calulates  the averages ----------- 
127 for file in `ls ../runlog/*.txt`
128 do
129   echo -n $file >> average.txt
130   cat $file | grep -v "^Command" | awk '{sum += $1} END {print " "sum/NR}' >> average.txt
131 done
132 echo "===========" >> average.txt
133 echo "" >> average.txt
134
135 echo "done"