Skip to content
Snippets Groups Projects
benchmark-kieker-days-ffi-remote.sh 10.3 KiB
Newer Older
Reiner Jung's avatar
Reiner Jung committed
JAVA_BIN="/localhome/ffi/jdk1.7.0_25/bin/java"

REMOTEHOST="blade1"
Reiner Jung's avatar
Reiner Jung committed
REMOTEBASE_DIR="/localhome/ffi/"
Reiner Jung's avatar
Reiner Jung committed
R_SCRIPT_DIR=bin/icpe/r/
Reiner Jung's avatar
Reiner Jung committed
BASE_DIR=./
Reiner Jung's avatar
Reiner Jung committed
RESULTS_DIR="${BASE_DIR}/tmp/results-benchmark-kieker-days-ffi/"
REMOTERESULTS_DIR="${REMOTEBASE_DIR}/tmp/results-benchmark-kieker-days-ffi/"
Reiner Jung's avatar
Reiner Jung committed
SLEEP_TIME=1            ## 30
NUM_LOOPS=1            ## 10
THREADS=1               ## 1
RECURSION_DEPTH=10       ## 10
Reiner Jung's avatar
Reiner Jung committed
TOTAL_CALLS=2000000     ## 20000000
Reiner Jung's avatar
Reiner Jung committed
METHOD_TIME=0            ## 0
#MORE_PARAMS=""
MORE_PARAMS="--quickstart"
TIME=`expr ${METHOD_TIME} \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_LOOPS}  \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_LOOPS} `
echo "Experiment will take circa ${TIME} seconds."

echo "Removing and recreating '${RESULTS_DIR}'"
(rm -rf ${RESULTS_DIR}) && mkdir ${RESULTS_DIR}
Reiner Jung's avatar
Reiner Jung committed
mkdir ${RESULTS_DIR}/stat/
ssh ${REMOTEHOST} "(rm -rf ${REMOTERESULTS_DIR}) && mkdir ${REMOTERESULTS_DIR}"
Reiner Jung's avatar
Reiner Jung committed
ssh ${REMOTEHOST} "mkdir ${REMOTERESULTS_DIR}/stat/"
Reiner Jung's avatar
Reiner Jung committed
RAWFN="${RESULTS_DIR}/raw"
Reiner Jung's avatar
Reiner Jung committed
JAVA_ARGS="-server"
JAVA_ARGS="${JAVA_ARGS} -d64"
JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx4G"
JAVA_ARGS="${JAVA_ARGS} -verbose:gc -XX:+PrintCompilation"
#JAVA_ARGS="${JAVA_ARGS} -XX:+PrintInlining"
#JAVA_ARGS="${JAVA_ARGS} -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation"
#JAVA_ARGS="${JAVA_ARGS} -Djava.compiler=NONE"
JARNoInstru="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiNoInstru.jar"
JARDeactived="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiDeactivated.jar"
JARCollecting="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiCollecting.jar"
JARNORMAL="-jar dist/OverheadEvaluationMicrobenchmarkTCPffiNormal.jar"

Reiner Jung's avatar
Reiner Jung committed
JAVA_ARGS_NOINSTR="${JAVA_ARGS}"
Reiner Jung's avatar
Reiner Jung committed
JAVA_ARGS_LTW="${JAVA_ARGS} -javaagent:${BASE_DIR}/lib/aspectjweaver.jar -Dorg.aspectj.weaver.showWeaveInfo=false -Daj.weaving.verbose=false -Dorg.aspectj.weaver.loadtime.configuration=META-INF/kieker-overhead-benchmark.aop.xml"

## Write configuration
Reiner Jung's avatar
Reiner Jung committed
uname -a >${RESULTS_DIR}/configuration.txt
${JAVA_BIN} ${JAVA_ARGS} -version 2>>${RESULTS_DIR}/configuration.txt
Reiner Jung's avatar
Reiner Jung committed
echo "JAVA_ARGS: ${JAVA_ARGS}" >>${RESULTS_DIR}/configuration.txt
echo "" >>${RESULTS_DIR}/configuration.txt
echo "Runtime: circa ${TIME} seconds" >>${RESULTS_DIR}/configuration.txt
echo "" >>${RESULTS_DIR}/configuration.txt
echo "SLEEP_TIME=${SLEEP_TIME}" >>${RESULTS_DIR}/configuration.txt
echo "NUM_LOOPS=${NUM_LOOPS}" >>${RESULTS_DIR}/configuration.txt
echo "TOTAL_CALLS=${TOTAL_CALLS}" >>${RESULTS_DIR}/configuration.txt
echo "METHOD_TIME=${METHOD_TIME}" >>${RESULTS_DIR}/configuration.txt
echo "THREADS=${THREADS}" >>${RESULTS_DIR}/configuration.txt
echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >>${RESULTS_DIR}/configuration.txt
sync

## Execute Benchmark

for ((i=1;i<=${NUM_LOOPS};i+=1)); do
    j=${RECURSION_DEPTH}
    k=0
    echo "## Starting iteration ${i}/${NUM_LOOPS}"

    # No instrumentation
    k=`expr ${k} + 1`
    echo " # ${i}.${j}.${k} No instrumentation"
Reiner Jung's avatar
Reiner Jung committed
	sar -o ${RESULTS_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
    ${JAVA_BIN}  ${JAVA_ARGS_NOINSTR} ${JARNoInstru} \
        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
        --total-calls ${TOTAL_CALLS} \
        --method-time ${METHOD_TIME} \
        --total-threads ${THREADS} \
        --recursion-depth ${j} \
        ${MORE_PARAMS}
Reiner Jung's avatar
Reiner Jung committed
    [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log
Reiner Jung's avatar
Reiner Jung committed
    sleep ${SLEEP_TIME}

    # Deactivated Probe
    k=`expr ${k} + 1`
    echo " # ${i}.${j}.${k} Deactivated Probe"
Reiner Jung's avatar
Reiner Jung committed
	sar -o ${RESULTS_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
    ssh ${REMOTEHOST} "nohup ${JAVA_BIN} -jar ${REMOTERESULTS_DIR}/dist/explorviz_worker.jar >${REMOTERESULTS_DIR}/worker-${i}-${j}-${k}.log &"
    ${JAVA_BIN}  ${JAVA_ARGS_LTW} ${JARDeactived} \
        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
        --total-calls ${TOTAL_CALLS} \
        --method-time ${METHOD_TIME} \
        --total-threads ${THREADS} \
        --recursion-depth ${j} \
        ${MORE_PARAMS}
    kill %sar
    pkill -f 'java -jar'
	ssh ${REMOTEHOST} "pkill -f 'java -jar'"
Reiner Jung's avatar
Reiner Jung committed
    [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log
Reiner Jung's avatar
Reiner Jung committed
    sleep ${SLEEP_TIME}
	
    # Collecting
    k=`expr ${k} + 1`
    echo " # ${i}.${j}.${k} Collecting"
Reiner Jung's avatar
Reiner Jung committed
	sar -o ${RESULTS_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
    ssh ${REMOTEHOST} "nohup ${JAVA_BIN} -jar ${REMOTERESULTS_DIR}/dist/explorviz_worker.jar >${REMOTERESULTS_DIR}/worker-${i}-${j}-${k}.log &"
    ${JAVA_BIN}  ${JAVA_ARGS_LTW} ${JARCollecting} \
        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
        --total-calls ${TOTAL_CALLS} \
        --method-time ${METHOD_TIME} \
        --total-threads ${THREADS} \
        --recursion-depth ${j} \
        ${MORE_PARAMS}
    kill %sar
    pkill -f 'java -jar'
	ssh ${REMOTEHOST} "pkill -f 'java -jar'"
Reiner Jung's avatar
Reiner Jung committed
    [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log
Reiner Jung's avatar
Reiner Jung committed
    sleep ${SLEEP_TIME}

    # Logging
    k=`expr ${k} + 1`
    echo " # ${i}.${j}.${k} Logging"
Reiner Jung's avatar
Reiner Jung committed
	sar -o ${RESULTS_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
    ssh ${REMOTEHOST} "nohup ${JAVA_BIN} -jar ${REMOTERESULTS_DIR}/dist/explorviz_worker.jar >${REMOTERESULTS_DIR}/worker-${i}-${j}-${k}.log &"
    ${JAVA_BIN}  ${JAVA_ARGS_LTW} ${JARNORMAL} \
        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
        --total-calls ${TOTAL_CALLS} \
        --method-time ${METHOD_TIME} \
        --total-threads ${THREADS} \
        --recursion-depth ${j} \
        ${MORE_PARAMS}
    kill %sar
    pkill -f 'java -jar'
	ssh ${REMOTEHOST} "pkill -f 'java -jar'"
Reiner Jung's avatar
Reiner Jung committed
    [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log
Reiner Jung's avatar
Reiner Jung committed
    sleep ${SLEEP_TIME}
	
    # Reconstruction
    k=`expr ${k} + 1`
    echo " # ${i}.${j}.${k} Reconstruction"
Reiner Jung's avatar
Reiner Jung committed
	sar -o ${RESULTS_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
    ssh ${REMOTEHOST} "nohup ${JAVA_BIN} -jar ${REMOTERESULTS_DIR}/dist/explorviz_workerReconstruction.jar >${REMOTERESULTS_DIR}/worker-${i}-${j}-${k}.log &"
    ${JAVA_BIN}  ${JAVA_ARGS_LTW} ${JARNORMAL} \
        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
        --total-calls ${TOTAL_CALLS} \
        --method-time ${METHOD_TIME} \
        --total-threads ${THREADS} \
        --recursion-depth ${j} \
        ${MORE_PARAMS}
    kill %sar
    pkill -f 'java -jar'
	ssh ${REMOTEHOST} "pkill -f 'java -jar'"
Reiner Jung's avatar
Reiner Jung committed
    [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log
Reiner Jung's avatar
Reiner Jung committed
    sleep ${SLEEP_TIME}

    # Reduction
    k=`expr ${k} + 1`
    echo " # ${i}.${j}.${k} Reduction"
Reiner Jung's avatar
Reiner Jung committed
	sar -o ${RESULTS_DIR}/stat/sar-${i}-${j}-${k}.data 5 2000 1>/dev/null 2>&1 &
    ssh ${REMOTEHOST} "nohup ${JAVA_BIN} -jar ${REMOTERESULTS_DIR}/dist/explorviz_workerReduction.jar >${REMOTERESULTS_DIR}/worker-${i}-${j}-${k}.log &"
    ${JAVA_BIN}  ${JAVA_ARGS_LTW} ${JARNORMAL} \
        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
        --total-calls ${TOTAL_CALLS} \
        --method-time ${METHOD_TIME} \
        --total-threads ${THREADS} \
        --recursion-depth ${j} \
        ${MORE_PARAMS}
    kill %sar
    pkill -f 'java -jar'
	ssh ${REMOTEHOST} "pkill -f 'java -jar'"
Reiner Jung's avatar
Reiner Jung committed
    [ -f ${BASE_DIR}/hotspot.log ] && mv ${BASE_DIR}/hotspot.log ${RESULTS_DIR}/hotspot-${i}-${j}-${k}.log
Reiner Jung's avatar
Reiner Jung committed
    sleep ${SLEEP_TIME}
Reiner Jung's avatar
Reiner Jung committed
zip -jqr ${RESULTS_DIR}/stat.zip ${RESULTS_DIR}/stat
rm -rf ${RESULTS_DIR}/stat/
[ -f ${RESULTS_DIR}/hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULTS_DIR}/hotspot-*.log >${RESULTS_DIR}/log.log
Reiner Jung's avatar
Reiner Jung committed
[ -f ${BASE_DIR}/errorlog.txt ] && mv ${BASE_DIR}/errorlog.txt ${RESULTS_DIR}

## Generate Results file
# Timeseries
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
Reiner Jung's avatar
Reiner Jung committed
output_fn="${RESULTS_DIR}/results-timeseries.pdf"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSION_DEPTH})
configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction")
configs.colors=c("black","red","blue","green","yellow","purple")
Reiner Jung's avatar
Reiner Jung committed
results.count=${TOTAL_CALLS}
Reiner Jung's avatar
Reiner Jung committed
tsconf.min=(${METHOD_TIME}/1000)
tsconf.max=(${METHOD_TIME}/1000)+40
Reiner Jung's avatar
Reiner Jung committed
source("${R_SCRIPT_DIR}timeseries.r")
EOF
# Timeseries-Average
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
Reiner Jung's avatar
Reiner Jung committed
output_fn="${RESULTS_DIR}/results-timeseries-average.pdf"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSION_DEPTH})
configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction")
configs.colors=c("black","red","blue","green","yellow","purple")
Reiner Jung's avatar
Reiner Jung committed
results.count=${TOTAL_CALLS}
Reiner Jung's avatar
Reiner Jung committed
tsconf.min=(${METHOD_TIME}/1000)
tsconf.max=(${METHOD_TIME}/1000)+40
Reiner Jung's avatar
Reiner Jung committed
source("${R_SCRIPT_DIR}timeseries-average.r")
EOF
# Throughput
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
Reiner Jung's avatar
Reiner Jung committed
output_fn="${RESULTS_DIR}/results-throughput.pdf"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSION_DEPTH})
configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction")
configs.colors=c("black","red","blue","green","yellow","purple")
Reiner Jung's avatar
Reiner Jung committed
results.count=${TOTAL_CALLS}
Reiner Jung's avatar
Reiner Jung committed
source("${R_SCRIPT_DIR}throughput.r")
EOF
# Throughput-Average
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
Reiner Jung's avatar
Reiner Jung committed
output_fn="${RESULTS_DIR}/results-throughput-average.pdf"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSION_DEPTH})
configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction")
configs.colors=c("black","red","blue","green","yellow","purple")
Reiner Jung's avatar
Reiner Jung committed
results.count=${TOTAL_CALLS}
Reiner Jung's avatar
Reiner Jung committed
source("${R_SCRIPT_DIR}throughput-average.r")
EOF
# Bars
R --vanilla --silent <<EOF
results_fn="${RAWFN}"
Reiner Jung's avatar
Reiner Jung committed
output_fn="${RESULTS_DIR}/results-bars.pdf"
outtxt_fn="${RESULTS_DIR}/results-text.txt"
configs.loop=${NUM_LOOPS}
configs.recursion=c(${RECURSION_DEPTH})
configs.labels=c("No Probe","Deactivated Probe","Collecting Data","TCP Writer","Reconstruction","Reduction")
Reiner Jung's avatar
Reiner Jung committed
results.count=${TOTAL_CALLS}
results.skip=${TOTAL_CALLS}/2
Reiner Jung's avatar
Reiner Jung committed
bars.minval=(${METHOD_TIME}/1000)
bars.maxval=(${METHOD_TIME}/1000)+40
Reiner Jung's avatar
Reiner Jung committed
source("${R_SCRIPT_DIR}bar.r")
EOF

## Clean up raw results
Reiner Jung's avatar
Reiner Jung committed
zip -jqr ${RESULTS_DIR}/results.zip ${RAWFN}*
rm -f ${RAWFN}*
Reiner Jung's avatar
Reiner Jung committed
zip -jqr ${RESULTS_DIR}/worker.zip ${RESULTS_DIR}/worker*.log
rm -f ${RESULTS_DIR}/worker*.log
Reiner Jung's avatar
Reiner Jung committed
[ -f ${BASE_DIR}/nohup.out ] && mv ${BASE_DIR}/nohup.out ${RESULTS_DIR}