Page MenuHomec4science

run-in-parallel.sh
No OneTemporary

File Metadata

Created
Tue, Feb 25, 04:23

run-in-parallel.sh

#!/bin/bash
. config/config_nodes.sh
. config/config_path.sh
EXP_START=${EXP_START:-120}
# greedy informed reserved regular
SIMS=${SIMS:-"greedy informed reserved regular"}
JOB_FILE=${JOB_FILE:-"input-traces/TRACE-rnd-25-st2000-10000-tasks10-30-mem30-90-dur1000-20000-9145.trace"}
TOPO_FILE=${TOPO_FILE:-"topos/topo-10"}
mkdir -p results
if [ -d "$YARN_PATH/results/exp$EXP_START" ]; then
echo "Output directory $EXP_START exists. Exiting !!"
exit
fi
EXPID=0; for i in `seq 1 4`; do ((EXPID=$EXPID*10+($RANDOM%9+1))); done
echo
CTR=100
cleanup-node () {
NODE=$1
ssh $NODE "cd $YARN_PATH/hadoop-2.3.0/share/hadoop/tools/sls; rm -fr xexperiments/*;"
}
./kill-all.sh
run-on-node () {
NODE=$1
SIMTYPE=$2
HBSEED=$3
PORT_START=$4
(ssh $NODE "
cd $YARN_PATH/hadoop-2.3.0/share/hadoop/tools/sls;
rm -fr xexperiments/$EXPID-$CTR*;
./exp-runner.sh $JOB_FILE $TOPO_FILE $SIMTYPE $PORT_START $HBSEED $EXPID $CTR;
rm -fr exp-$NODE-$CTR.tgz;
grep -A 7 -m 1 private.*getPenalizedRunningTime $YARN_PATH/hadoop-2.3.0-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/AppSchedulable.java > $EXPID-$CTR-$SIMTYPE-penalty
find | grep simulation.log | grep $EXPID-$CTR | xargs -I {} mv {} $EXPID-$CTR-$SIMTYPE-simulation.log
tar czvf exp-$NODE-$CTR.tgz xexperiments/$EXPID-$CTR-* $EXPID-$CTR-$SIMTYPE-penalty $EXPID-$CTR-$SIMTYPE-simulation.log > /dev/null;
rm -fr xexperiments/$EXPID-$CTR*;
rm $EXPID-$CTR-$SIMTYPE-penalty;
rm $EXPID-$CTR-$SIMTYPE-simulation.log;
" ;
scp $NODE:$YARN_PATH/hadoop-2.3.0/share/hadoop/tools/sls/exp-$NODE-$CTR.tgz $YARN_PATH/results ;
ssh $NODE "rm $YARN_PATH/hadoop-2.3.0/share/hadoop/tools/sls/exp-$NODE-$CTR.tgz") &
CTR=$(($CTR+1))
}
NRRUNS=8
for SIM in $SIMS; do
START_CTR=$CTR
for node in $NODES; do
cleanup-node $node
for run in `seq 1 $NRRUNS`;
do
run-on-node $node $SIM 0 $((10000+$run*10)) ;
done
done
wait
pushd $YARN_PATH/results
echo "Done waiting for all experiments to finish, now running unpack script for $SIM"
YARN_PATH=${YARN_PATH} $YARN_PATH/scripts/unpack-exp exp$EXP_START "*.tgz"
# For informed simulations, create wait-time related graphs
if [ $SIM == "informed" ]; then
gnuplot -e "res_idx=$EXP_START" -e "exp_idx=$EXPID" -e "run_range='$(seq $START_CTR $(($CTR - 1)) | tr '\n' ' ')'" -e "base_name='informed'" $YARN_PATH/scripts/informed-wait.plot
fi
((EXP_START++))
popd
done
echo "All experiments finished at `date`"

Event Timeline