modifications to run same benchmarks with different arguments (treated as a separate...
[IRC.git] / Robust / src / Benchmarks / Prefetch / run.sh
1 #!/bin/sh 
2
3 MACHINES2='dw-9.eecs.uci.edu'
4 MACHINES4='dw-9.eecs.uci.edu dw-5.eecs.uci.edu dw-7.eecs.uci.edu'
5 #MACHINES4='dw-9.eecs.uci.edu dw-1.eecs.uci.edu dw-2.eecs.uci.edu'
6 LOGDIR=/home/adash/research/Robust/src/Benchmarks/Prefetch/runlog
7 TOPDIR=`pwd`
8
9 function run {
10   i=0;
11   DIR=`pwd`
12   while [ $i -lt $1 ]; do
13     echo "$DIR" > ~/.tmpdir
14     echo "bin=$3" > ~/.tmpvars
15     if [ $2 -eq 1 ]; then
16       arg=$ARGS1
17       MACHINES=$MACHINES2
18     fi
19     if [ $2 -eq 2 ]; then 
20       arg=$ARGS2
21       MACHINES=$MACHINES2
22     fi
23     if [ $2 -eq 4 ]; then 
24       arg=$ARGS4
25       MACHINES=$MACHINES4
26     fi
27     chmod +x ~/.tmpvars
28     for machine in `echo $MACHINES`
29     do
30       ssh ${machine} 'cd `cat ~/.tmpdir`; source ~/.tmpvars; ./$bin' &
31       echo ""
32     done
33     sleep 4
34     /usr/bin/time -f "%e" ./$3 master $arg 2>> ${LOGDIR}/${3}_${EXTENSION}.txt
35     echo "Terminating ... "
36     for machine in `echo $MACHINES`
37     do
38       ssh ${machine} 'source ~/.tmpvars; killall $bin'
39     done
40     i=`expr $i + 1`
41   done
42 }
43
44 function oneremote {
45   i=0;
46   DIR=`pwd` 
47   while [ $i -lt $1 ]; do
48     echo "$DIR" > ~/.tmpdir
49     echo "bin=$3" > ~/.tmpvars
50     echo "arg='$ARGS1'" > ~/.tmpargs
51     echo "logd=$LOGDIR" > ~/.tmplogdir
52     echo "ext=$EXTENSION" > ~/.tmpext
53     ./$3 &
54     ssh $MACHINES2 'cd `cat ~/.tmpdir`; source ~/.tmpvars; source ~/.tmpargs; source ~/.tmplogdir; source ~/.tmpext; /usr/bin/time -f "%e" ./$bin master $arg 2>> ${logd}/${bin}_remote_${ext}.txt'
55     echo "Terminating ... "
56     killall $3
57     i=`expr $i + 1`
58   done
59 }
60
61 function localrun {
62   i=0;
63   while [ $i -lt $1 ]; do
64      #echo $ARGS1
65     /usr/bin/time -f "%e" ./${NONPREFETCH} master $ARGS1 2>> ${LOGDIR}/${NONPREFETCH}_local_${EXTENSION}.txt
66     sleep 1
67     #avg=`cat ${LOGDIR}/${NONPREFETCH}.txt | awk '{sum+=$1} END {print sum/NR}'`
68     #sort -nr ${LOGDIR}/${NONPREFETCH}.txt | tail -1
69     #sort -nr ${LOGDIR}/${NONPREFETCH}.txt | tail -1
70     i=`expr $i + 1`
71   done
72 }
73
74 function callrun {
75   PREFETCH=${BENCHMARK}1.bin
76   NONPREFETCH=${BENCHMARK}1NP.bin
77   PREFETCH2=${BENCHMARK}2.bin
78   NONPREFETCH2=${BENCHMARK}2NP.bin
79   PREFETCH4=${BENCHMARK}4.bin
80   NONPREFETCH4=${BENCHMARK}4NP.bin
81   cd $BMDIR 
82
83
84   echo "---------- Running local $BMDIR non-prefetch on 1 machine ---------- "
85   localrun 1 
86
87   echo "---------- Running single thread remote $BMDIR non-prefetch on 2 machines ---------- "
88   oneremote 1 1 $NONPREFETCH
89   echo "---------- Running single thread remote $BMDIR prefetch on 2 machines ---------- "
90   oneremote 1 1 $PREFETCH
91
92   echo "---------- Running two threads $BMDIR non-prefetch on 2 machines ---------- "
93   run 1 2 $NONPREFETCH2 
94   echo "---------- Running two threads $BMDIR prefetch on 2 machines ---------- "
95   run 1 2 $PREFETCH2 
96
97   echo "---------- Running four threads $BMDIR non-prefetch on 4 machines ---------- "
98   run 1 4 $NONPREFETCH4 
99   echo "---------- Running four threads $BMDIR prefetch on 4 machines ---------- "
100   run 1 4 $PREFETCH4 
101   cd $TOPDIR
102 }
103
104 benchmarks='sorverA em3dver4000 em3dver3000 mmver150 mmver200'
105
106 echo "---------- Clean old files ---------- "
107 rm runlog/*
108 for b in `echo $benchmarks`
109 do
110   bm=`grep $b bm.txt`
111   BENCHMARK=`echo $bm | cut -f1 -d":"`
112   BMDIR=`echo $bm | cut -f2 -d":"`
113   ARGS1=`echo $bm | cut -f3 -d":"`
114   ARGS2=`echo $bm | cut -f4 -d":"`
115   ARGS4=`echo $bm | cut -f5 -d":"`
116   EXTENSION=`echo $bm | cut -f6 -d":"`
117   callrun
118 done
119
120 echo "done"