Vector createMailStringsWithURL()
[IRC.git] / Robust / src / Benchmarks / Distributed / 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=10
9 TOPDIR=${HOME}/research/Robust/src/Prefetch
10
11 function killclients {
12   i=1;
13   while [ $i -le $1 ]; do
14     ssh dc-${i}.calit2.uci.edu 'killall Client.bin;'
15     i=`expr $i + 1`
16   done
17 }
18
19 function runjava {
20   # Run java version
21   echo "Running java version"
22   j=1;
23   BM_DIR=${BM_NAME}/${JAVA_DIR}
24   while [ $j -le $ITERATIONS ]; do
25    echo "Running on $1 machines ... "
26    # Start the server
27    cd ${BM_DIR}
28    suffix=$SERVER_ARGS | tr -d ' '
29    echo "Running Server ... "
30    /usr/bin/time -f "%e" ./Server.bin -N $1 $SERVER_ARGS 2>> ${LOGDIR}/server_${1}_${BM_NAME}_java.out &
31    # Start the clients
32    k=1;
33    echo ${BASEDIR}/${BM_DIR} > ~/.tmpdir
34    while [ $k -le $1 ]; do
35      echo "SSH into dc-${k}"
36      SEED=`expr $k \* 100`
37      echo "SEED='$SEED'" > ~/.seed
38      if [ $k -eq $1 ];
39      then
40        ssh dc-${k}.calit2.uci.edu 'cd `cat ~/.tmpdir`; source ~/.bmargs; ./Client.bin $CLIENT_ARGS -seed `hostname | cut -f2 -d"-" | cut -f1 -d"."`'
41      else
42        ssh dc-${k}.calit2.uci.edu 'cd `cat ~/.tmpdir`; source ~/.bmargs; ./Client.bin $CLIENT_ARGS -seed  `hostname | cut -f2 -d"-" | cut -f1 -d"."`' &
43      fi
44      k=`expr $k + 1`
45    done
46    killclients $k
47    sleep 10;
48    j=`expr $j + 1`
49    cd -
50   done
51 }
52
53 function runjvm {
54   # Run java version
55   echo "Running jvm version"
56   j=1;
57   BM_DIR=${BM_NAME}/${JVM_DIR}
58   while [ $j -le $ITERATIONS ]; do
59    echo "Running on $1 machines ... "
60    # Start the server
61    cd ${BM_DIR}
62    suffix=$SERVER_ARGS | tr -d ' '
63    echo "Running Server ... "
64    /usr/bin/time -f "%e" java $JVM_SERVER_CLASS -N $1 $SERVER_ARGS 2>> ${LOGDIR}/server_${1}_${BM_NAME}_jvm.out &
65    # Start the clients
66    k=1;
67    echo ${BASEDIR}/${BM_DIR} > ~/.tmpdir
68    while [ $k -le $1 ]; do
69      echo "SSH into dc-${k}"
70      seed=`expr $k * 100`
71      if [ $k -eq $1 ];
72      then
73        ssh dc-${k}.calit2.uci.edu 'cd `cat ~/.tmpdir`; source ~/.bmargs; java $JVM_CLIENT_CLASS $CLIENT_ARGS -seed $seed'
74      else
75        ssh dc-${k}.calit2.uci.edu 'cd `cat ~/.tmpdir`; source ~/.bmargs; java $JVM_CLIENT_CLASS $CLIENT_ARGS -seed $seed' &
76      fi
77      k=`expr $k + 1`
78    done
79    sleep 20;
80    j=`expr $j + 1`
81    cd -
82   done
83 }
84
85 function calcavg {
86   for file in `ls ${LOGDIR}/*.out`
87   do
88     echo -n $file
89     cat $file | awk '{sum += $1} END {print " "sum/NR}'
90   done
91 }
92
93 exec < bm_args.txt
94 while read line
95 do
96   BM_NAME=`echo $line | cut -f1 -d":"`
97   SERVER_ARGS=`echo $line | cut -f2 -d":"`
98   CLIENT_ARGS=`echo $line | cut -f3 -d":"`
99   JVM_SERVER_CLASS=`echo $line | cut -f4 -d":"`
100   JVM_CLIENT_CLASS=`echo $line | cut -f5 -d":"`
101
102   # Setup for remote machine
103   echo "" > ~/.bmargs
104   echo "BM_NAME='$BM_NAME'"  > ~/.bmargs
105   echo "SERVER_ARGS='$SERVER_ARGS'" >> ~/.bmargs
106   echo "CLIENT_ARGS='$CLIENT_ARGS'" >> ~/.bmargs
107   echo "JVM_SERVER_CLASS='$JVM_SERVER_CLASS'" >> ~/.bmargs
108   echo "JVM_CLIENT_CLASS='$JVM_CLIENT_CLASS'" >> ~/.bmargs
109   NUM_MACHINES=$1
110   runjava $NUM_MACHINES
111   #runjvm $NUM_MACHINES
112   # Cleanup
113   rm ~/.bmargs
114   rm ~/.tmpdir
115 done
116
117 echo "------- Calculating Averages -------- "
118 calcavg