script to test
[IRC.git] / Robust / src / Benchmarks / Recovery / runjava.sh
1 # !/bin/sh
2 BASEDIR=`pwd`
3 LOGDIR=${BASEDIR}
4 DSTM_CONFDIR=${HOME}/research/Robust/src
5 JAVA_DIR=java
6 JVM_DIR=jvm
7 DSM_DIR=dsm
8 ITERATIONS=3
9
10 # killClients <fileName> <# of machines>
11 function killclients {
12   i=1;
13   fileName=$1
14   while [ $i -le $2 ]; do
15     echo "killing dc-$i ${fileName}"
16     ssh dc-${i} pkill -u jihoonl -f ${fileName} 
17     i=`expr $i + 1`
18   done
19 }
20
21 # killonemachine <Benchmark file name> <machine_num>
22 function killonemachine {
23   fileName=$1
24   let "machine= $2";
25   echo "killing dc-$machine ${fileName}";
26   ssh dc-${machine} pkill -u jihoonl -f ${fileName}
27 }
28
29 # runmachines <log filename>
30 function runMachines {
31   echo "Running on ${NUM_MACHINE} machines ... "
32   
33   # Start machines
34   echo "Running machines"
35   let "k= $NUM_MACHINE"
36   
37   echo ${BASEDIR}/${BM_DIR} > ~/.tmpdir
38   DIR=`echo ${BASEDIR}\/${BM_DIR}`;
39   echo "DIR = $DIR";
40   
41   # Run machines
42   while [ $k -gt 1 ]; do
43     echo "SSH into dc-${k}"
44     ssh dc-${k} 'cd '$DIR'; ./'$BM_NAME'.bin '>> $1'-'$k &
45     k=`expr $k - 1`
46     sleep 1
47   done
48   echo "Running master machine ... "
49   echo "ssh dc-1 cd $DIR'; ./$BM_NAME.bin master $NUM_MACHINE $BM_ARGS";
50   ssh dc-1 'cd '$DIR'; ./'$BM_NAME'.bin master '$NUM_MACHINE $BM_ARGS >> $1'-1' &
51 }
52
53 ########### Normal execution
54 function runNormalTest {
55 # Run java version
56   j=1;
57   BM_DIR=${BM_NAME}
58   fileName="$BM_NAME.bin";
59   cd ${BM_DIR}
60
61   echo $NUM_MACHINE
62   tt=1;
63   while [ $tt -le $NUM_MACHINE ]; do
64     echo "------------------------------- Normal Test $1 ----------------------------" >> log$1-$tt
65     tt=`expr $tt + 1`
66   done
67   
68 # run test
69   runMachines log$1
70   
71   sleep 60
72
73   tt=1;
74   while [ $tt -le $NUM_MACHINE ]; do
75     echo "------------------------------- Normal Test $1 End ----------------------------" >> log$1-$tt
76     tt=`expr $tt + 1`
77   done
78
79   killclients $fileName 8
80   sleep 10
81   cd -
82 }
83
84 ########### Failure case
85 function runFailureTest {
86 # Run java version
87   j=1;
88   BM_DIR=${BM_NAME}
89   fileName="$BM_NAME.bin";
90   cd ${BM_DIR}
91
92   tt=1;
93   while [ $tt -le $NUM_MACHINE ]; do
94     echo "------------------------------- Failure Test $1 ----------------------------" >> log$1-$tt
95     tt=`expr $tt + 1`
96   done
97
98   # run all machines
99   runMachines log$1
100   sleep 10 # wait until all machine run
101   # Kill machines
102   for k in 2 4 6 8
103   do
104    echo "------------------------ dc-$k is killed ------------------------" >> log$1-$k
105    echo "------------------------------- Failure Test $1 End ----------------------------" >> log$1-$k
106    killonemachine $fileName $k
107    sleep 10
108   done
109
110   tt=1;
111   while [ $tt -le $NUM_MACHINE ]; do
112     echo "------------------------------- Failure Test $1 End ----------------------------" >> log$1-$tt
113     tt=`expr $tt + 1`
114   done
115
116  sleep 60; # wait the end of execution
117  killclients $fileName 8 # kill alive machines
118  sleep 10;
119
120 }
121
122
123 echo "---------- Starting Benchmarks ----------"
124 exec < bm_args.txt
125 while read line
126 do
127   BM_NAME=`echo $line | cut -f1 -d":"`
128   BM_ARGS=`echo $line | cut -f2 -d":"`
129
130   # Setup for remote machine
131   echo "" > ~/.bmargs
132   echo "BM_NAME='$BM_NAME'" > ~/.bmargs
133   echo "BM_ARGS='$BM_ARGS'" > ~/.bmargs
134
135   fileName=${BM_NAME}.bin
136   echo "fileName='$fileName'"
137
138   # terminate if it doesn't have parameter
139   let "NUM_MACHINE= $1 + 0";
140
141   if [ $NUM_MACHINE -eq 0 ];
142   then
143     echo "Wrong input"
144     let "Num= 8";
145     exit 0
146   fi
147
148   echo "BM_NAME= $BM_NAME"
149   echo "BM_ARGS= $BM_ARGS"
150   echo "NUM_M = $NUM_MACHINE"
151
152
153   echo "========================================= 1 ======================================="
154   runNormalTest $NUM_MACHINES 1
155   echo "===================================================================================="
156
157   t=2;
158   while [ $t -le $ITERATIONS ]; do
159     echo "========================================= $t ======================================="
160     runFailureTest $NUM_MACHINES $t
161     sleep 10
162     echo "===================================================================================="
163     t=`expr $t + 1`
164   done
165
166   killclients $fileName 8
167
168 done
169
170 echo "----------- done ------------"
171