Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env bash
set -euo pipefail
shed=$1
epoch=$((7*24*60*60))
ticks_per_packet=$((60*120))
time_to_live=$((3*$epoch))
buffer_size=$((3*7*24*60*60))
duty=300
run() {
echo 'start:' $@ >&2
python main.py \
--seed "$3" \
--router "$1" \
--community "$2" \
--community-args \
"epoch=${epoch}" \
--trace "csv" \
--trace-args \
"path=shed/data/pp_${shed}_reduced.csv" \
--node-args \
"tick_time=${duty}" \
"buffer_size=${buffer_size}" \
--packet-args \
"ticks_per_packet=${ticks_per_packet}" \
"time_to_live=${time_to_live}" \
"start_delay=${epoch}"
echo 'done:' $@ >&2
}
nproc=$(nproc)
mkdir -p logs/$shed
for seed in {1..10}; do
for router in direct epidemic; do
[[ "$(jobs | wc -l)" -ge "$nproc" ]] && wait -n
run "$router" "none" "$seed" > "logs/${shed}/${router}_${seed}.log" &
done
for router in bubble hcbf; do
for community in kclique louvain; do
[[ "$(jobs | wc -l)" -ge "$nproc" ]] && wait -n
run "$router" "$community" "$seed" > "logs/${shed}/${router}_${community}_${seed}.log" &
done
done
done
wait
for f in direct epidemic {bubble,hcbf}_{kclique,louvain}; do
./util/shed_summary "logs/$shed/$f"*.log > "logs/$shed/${f}_summary.yml"
done
# send slack notification if the script exists
status=$?
notify=$HOME/dev/slack-notifier/send_notification_via_slack.py
[[ -e "$notify" ]] && $notify "\`$shed done: exit($status)\`"