12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/bash
- # cd into the directory containing this script (from the bash faq 028)
- if [[ $BASH_SOURCE = */* ]]; then
- cd -- "${BASH_SOURCE%/*}/" || exit
- fi
- DOCKER_ENV="env"
- if [ "$OVERLOAD_CORES" != "" ]; then
- DOCKER_ENV="$DOCKER_ENV OVERLOAD_CORES=$OVERLOAD_CORES"
- fi
- if [ "$SHRINK_TO_MEM" != "" ]; then
- DOCKER_ENV="$DOCKER_ENV SHRINK_TO_MEM=$SHRINK_TO_MEM"
- fi
- if [ "$1" == "-n" ]; then
- skip_experiments=1
- else
- skip_experiments=0
- fi
- if [ $skip_experiments == 0 ]; then
- ./start-docker || exit 1
- docker exec -it ${TEEMS_DOCKER_PREFIX}teems $DOCKER_ENV ./run_all_experiments.py || { ./stop-docker > /dev/null; exit 1; }
- docker exec -it ${TEEMS_DOCKER_PREFIX}teems ./logs_to_csv.py Experiments/ID Experiments/id-channel.csv
- docker exec -it ${TEEMS_DOCKER_PREFIX}teems ./logs_to_csv.py Experiments/Token Experiments/token-channel.csv
- docker cp ${TEEMS_DOCKER_PREFIX}teems:/root/teems/Experiments/id-channel.csv id-channel.csv
- docker cp ${TEEMS_DOCKER_PREFIX}teems:/root/teems/Experiments/token-channel.csv token-channel.csv
- # Uncomment the following to preserve all of the raw logs
- # docker cp ${TEEMS_DOCKER_PREFIX}teems:/root/teems/Experiments Experiments
- fi
- BW_Gbps=13
- echo
- echo "*** Adding latency corresponding to $BW_Gbps Gbps bandwidth between servers ***"
- echo
- # bash doesn't do floating-point math; perl is installed automatically
- # on any Ubuntu installation, while python is not
- add_bw() {
- perl -lne '@F = split(/,/);
- if ($F[0] =~ /\d+/) {
- $F[5] = sprintf("%.3f", $F[5] + $F[13] * 8 / ('$BW_Gbps'*1e9));
- }
- print join(",",@F[0,1,2,3,5,6])'
- }
- echo "=== Figure 7 ID channel ==="
- echo
- ( head -1 id-channel.csv ; grep ,4,4,256 id-channel.csv | sort -t, -n -k1,1 ) | add_bw
- echo
- echo "=== Figure 7 Token channel ==="
- echo
- ( head -1 token-channel.csv ; grep ,4,4,256 token-channel.csv | sort -t, -n -k1,1 ) | add_bw
- echo
- echo "=== Figure 8 ID channel ==="
- echo
- ( head -1 id-channel.csv ; grep ,1,256 id-channel.csv | sort -t, -n -k2,2 ) | add_bw
- echo
- echo "=== Figure 8 Token channel ==="
- echo
- ( head -1 token-channel.csv ; grep ,1,256 token-channel.csv | sort -t, -n -k2,2 ) | add_bw
- echo
- if [ "$OVERLOAD_CORES" == "1" ]; then
- echo "*** Reminder: OVERLOAD_CORES is set to 1; performance may be lowered"
- echo "*** as compared to the values reported in the paper"
- echo
- fi
- if [ "$SHRINK_TO_MEM" != "" ]; then
- echo "*** Reminder: SHRINK_TO_MEM is set to 1; experiments may be smaller"
- echo "*** than the ones reported in the paper"
- echo
- fi
- if [ $skip_experiments == 0 ]; then
- ./stop-docker >/dev/null
- fi
|