4 DSTM_CONFDIR=${HOME}/research/Robust/src
10 # killClients <fileName> <# of machines>
11 function killclients {
14 while [ $i -le $2 ]; do
15 echo "killing dc-$i ${fileName}"
16 ssh dc-${i} pkill -u jihoonl -f ${fileName}
21 # killonemachine <Benchmark file name> <machine_num>
22 function killonemachine {
25 echo "killing dc-$machine ${fileName}";
26 ssh dc-${machine} pkill -u jihoonl -f ${fileName}
29 # runmachines <log filename>
30 function runMachines {
31 echo "Running on ${NUM_MACHINE} machines ... "
34 echo "Running machines"
37 echo ${BASEDIR}/${BM_DIR} > ~/.tmpdir
38 DIR=`echo ${BASEDIR}\/${BM_DIR}`;
42 while [ $k -gt 1 ]; do
43 echo "SSH into dc-${k}"
44 ssh dc-${k} 'cd '$DIR'; ./'$BM_NAME'.bin '>> $1'-'$k &
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' &
53 ########### Normal execution
54 function runNormalTest {
58 fileName="$BM_NAME.bin";
63 while [ $tt -le $NUM_MACHINE ]; do
64 echo "------------------------------- Normal Test $1 ----------------------------" >> log$1-$tt
74 while [ $tt -le $NUM_MACHINE ]; do
75 echo "------------------------------- Normal Test $1 End ----------------------------" >> log$1-$tt
79 killclients $fileName 8
84 ########### Failure case
85 function runFailureTest {
89 fileName="$BM_NAME.bin";
93 while [ $tt -le $NUM_MACHINE ]; do
94 echo "------------------------------- Failure Test $1 ----------------------------" >> log$1-$tt
100 sleep 10 # wait until all machine run
104 echo "------------------------ dc-$k is killed ------------------------" >> log$1-$k
105 echo "------------------------------- Failure Test $1 End ----------------------------" >> log$1-$k
106 killonemachine $fileName $k
111 while [ $tt -le $NUM_MACHINE ]; do
112 echo "------------------------------- Failure Test $1 End ----------------------------" >> log$1-$tt
116 sleep 60; # wait the end of execution
117 killclients $fileName 8 # kill alive machines
123 echo "---------- Starting Benchmarks ----------"
127 BM_NAME=`echo $line | cut -f1 -d":"`
128 BM_ARGS=`echo $line | cut -f2 -d":"`
130 # Setup for remote machine
132 echo "BM_NAME='$BM_NAME'" > ~/.bmargs
133 echo "BM_ARGS='$BM_ARGS'" > ~/.bmargs
135 fileName=${BM_NAME}.bin
136 echo "fileName='$fileName'"
138 # terminate if it doesn't have parameter
139 let "NUM_MACHINE= $1 + 0";
141 if [ $NUM_MACHINE -eq 0 ];
148 echo "BM_NAME= $BM_NAME"
149 echo "BM_ARGS= $BM_ARGS"
150 echo "NUM_M = $NUM_MACHINE"
153 echo "========================================= 1 ======================================="
154 runNormalTest $NUM_MACHINES 1
155 echo "===================================================================================="
158 while [ $t -le $ITERATIONS ]; do
159 echo "========================================= $t ======================================="
160 runFailureTest $NUM_MACHINES $t
162 echo "===================================================================================="
166 killclients $fileName 8
170 echo "----------- done ------------"