Add script
[IRC.git] / Robust / src / Benchmarks / Prefetch / run.sh
1 #!/bin/sh 
2
3 MACHINES2='dw-7.eecs.uci.edu'
4 MACHINES4='dw-9.eecs.uci.edu dw-5.eecs.uci.edu dw-7.eecs.uci.edu'
5 LOGDIR=/home/adash/research/Robust/src/Benchmarks/Prefetch/runlog
6 TOPDIR=`pwd`
7
8 function run {
9   i=0;
10   DIR=`pwd`
11   while [ $i -lt $1 ]; do
12     echo "$DIR" > ~/.tmpdir
13     echo "bin=$3" > ~/.tmpvars
14     if [ $2 -eq 1 ]; then
15       arg=$ARGS1
16       MACHINES=$MACHINES2
17     fi
18     if [ $2 -eq 2 ]; then 
19       arg=$ARGS2
20       MACHINES=$MACHINES2
21     fi
22     if [ $2 -eq 4 ]; then 
23       arg=$ARGS4
24       MACHINES=$MACHINES4
25     fi
26     chmod +x ~/.tmpvars
27     for machine in `echo $MACHINES`
28     do
29       ssh ${machine} 'cd `cat ~/.tmpdir`; source ~/.tmpvars; ./$bin' &
30       echo ""
31     done
32     sleep 1
33     /usr/bin/time -f "%e" ./$3 master $arg 2>> ${LOGDIR}/${3}.txt
34     echo "Terminating ... "
35     for machine in `echo $MACHINES`
36     do
37       ssh ${machine} 'source ~/.tmpvars; killall $bin'
38     done
39     i=`expr $i + 1`
40   done
41 }
42
43 function localrun {
44   i=0;
45   while [ $i -lt $1 ]; do
46      #echo $ARGS1
47     /usr/bin/time -f "%e" ./${NONPREFETCH} master $ARGS1 2>> ${LOGDIR}/${NONPREFETCH}.txt
48     sleep 1
49     #avg=`cat ${LOGDIR}/${NONPREFETCH}.txt | awk '{sum+=$1} END {print sum/NR}'`
50     #sort -nr ${LOGDIR}/${NONPREFETCH}.txt | tail -1
51     #sort -nr ${LOGDIR}/${NONPREFETCH}.txt | tail -1
52     i=`expr $i + 1`
53   done
54 }
55
56 function callrun {
57   PREFETCH=${BENCHMARK}1.bin
58   NONPREFETCH=${BENCHMARK}1NP.bin
59   PREFETCH2=${BENCHMARK}2.bin
60   NONPREFETCH2=${BENCHMARK}2NP.bin
61   PREFETCH4=${BENCHMARK}4.bin
62   NONPREFETCH4=${BENCHMARK}4NP.bin
63   cd $BMDIR 
64
65 # echo "---------- Running local $BMDIR non-prefetch ---------- "
66 # localrun 5 
67
68   echo "---------- Running remote $BMDIR non-prefetch 1 thread 2 machines ---------- "
69   run 1 1 $NONPREFETCH
70   echo "---------- Running remote $BMDIR prefetch 1 thread 2 machines ---------- "
71   run 1 1 $PREFETCH
72
73 #  echo "---------- Running remote $BMDIR non-prefetch 2 machines ---------- "
74 #  run 5 2 $NONPREFETCH2 
75 #  echo "---------- Running remote $BMDIR prefetch 2 machines ---------- "
76 #  run 5 2 $PREFETCH2 
77 #
78 #  echo "---------- Running remote $BMDIR non-prefetch 4 machines ---------- "
79 #  run 5 4 $NONPREFETCH4 
80 #  echo "---------- Running remote $BMDIR prefetch 4 machines ---------- "
81 #  run 5 4 $PREFETCH4 
82   cd $TOPDIR
83 }
84
85 benchmarks='MatrixMultiply JGFSORBenchSizeA Em3d'
86
87 for b in `echo $benchmarks`
88 do
89   bm=`grep $b bm.txt`
90   BENCHMARK=`echo $bm | cut -f1 -d":"`
91   BMDIR=`echo $bm | cut -f2 -d":"`
92   ARGS1=`echo $bm | cut -f3 -d":"`
93   ARGS2=`echo $bm | cut -f4 -d":"`
94   ARGS4=`echo $bm | cut -f5 -d":"`
95   callrun
96 done
97
98 echo "done"