Page MenuHomec4science

time_distribution.sh
No OneTemporary

File Metadata

Created
Sat, Jul 5, 13:06

time_distribution.sh

#!/bin/bash
if [ $# != 1 ]; then
echo "Usage: $0 <exp_dir>"
exit 1
fi
TIME_BUCKETS=(0 0 0 0 0 0 0 0 0 0)
EXP_DIR=$1
cd $EXP_DIR
# Find a regular run
RUN_FOLDER=$(find . -type d -name \*regular\* | head -n 1)
# Some of the runs get empty realtimetrack files, for some reason
FOUND=0
for folder in $(find . -type d -name \*regular\*); do
RTT_SIZE=$(du $folder/realtimetrack.json | cut -f1)
if [ $RTT_SIZE -gt 10 ]; then
RUN_FOLDER=$folder
FOUND=1
break
fi
done
TRACE_FILE=$(find $RUN_FOLDER -name \*.trace)
TRACE_ID=$(basename $TRACE_FILE)
TRACE_ID=${TRACE_ID##*-}
TRACE_ID=${TRACE_ID%.*}
echo -n "$TRACE_ID "
if [ $FOUND != 1 ]; then
# echo "No valid realtimetrack.json file found"
echo "0"
exit 1
fi
START_TIME_MS=$(head -n 1 $RUN_FOLDER/realtimetrack.json | cut -d',' -f1 | cut -d':' -f2)
END_TIME_MS=$(tail -n 2 $RUN_FOLDER/realtimetrack.json | head -n 1 | cut -d',' -f2 | cut -d':' -f2)
RUN_TIME_MS=$((END_TIME_MS-START_TIME_MS))
JOB_START_TIMES=$(grep job.start.ms $TRACE_FILE | cut -d':' -f2 | tr -d " ," | sort -n)
JOB_COUNT=$(echo $JOB_START_TIMES | tr -s ' ' '\n' | wc -l)
#echo "$(basename $TRACE_FILE): $JOB_COUNT jobs, $RUN_TIME_MS regular RT"
sum=0
for ((i=0 ; i < 10 ; i++)); do
LIMIT=$(( RUN_TIME_MS * (i + 1) / 10 ))
for TIME in $JOB_START_TIMES; do
if [ $TIME -lt $LIMIT ]; then
((TIME_BUCKETS[$i]++))
fi
done
((TIME_BUCKETS[$i] -= sum))
((sum += TIME_BUCKETS[$i]))
echo -n "$((i * 10))-$(((i+1)*10)): $(tput bold) ${TIME_BUCKETS[i]} $(tput sgr0) "
done | column -t
cd - &>/dev/null

Event Timeline