aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/028-one-sending-loop/runs.sh
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-10-01 09:00:49 +0100
committereunhhu <[email protected]>2026-10-01 09:00:49 +0100
commit2128089d94a9a7345775e2725347713a66987039 (patch)
tree3b22cd8dc5d08a0ced9e61a6367647215c784231 /research/experiments/028-one-sending-loop/runs.sh
parent50f8ea3c249009fcbe649561e7aba32580bab454 (diff)
downloadpure-2128089d94a9a7345775e2725347713a66987039.tar.gz
pure-2128089d94a9a7345775e2725347713a66987039.zip
Measure one sending loop against a thread a link, with and without push (028)
Five rounds of 1,000 bursts by one link, four links and one wire, four builds in turns: a thread a link (966b82f), those threads with push (threads-push.patch), the loop (99b2219), the loop with push (94e7bb8). Medians: one link 597k, 923k, 525k, 897k sends/s; four links 506k, 799k, 268k, 800k; the wire as it was, 789k to 794k.
Diffstat (limited to 'research/experiments/028-one-sending-loop/runs.sh')
-rwxr-xr-xresearch/experiments/028-one-sending-loop/runs.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/research/experiments/028-one-sending-loop/runs.sh b/research/experiments/028-one-sending-loop/runs.sh
new file mode 100755
index 0000000..65eb51d
--- /dev/null
+++ b/research/experiments/028-one-sending-loop/runs.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# The runs of docs/design/017's 2b, from the repository's root, in steps
+# (a step at a time: a background job may be stopped after half an hour).
+# runs.sh build the builds, each in /tmp/pure-028/NAME with its
+# pure-crypto.so: before (a thread a link, 3791ab8),
+# threads-push (before with threads-push.patch: the
+# owner pushes a turn's sends at once), loop (one
+# sending loop, 32f96b3), push (the loop with push,
+# 6d3c3c2)
+# runs.sh links five rounds of 1,000 bursts by one link, four links and
+# one wire, the builds in turns, once the last minute's
+# load is below 1.5
+set -e
+out=research/experiments/028-one-sending-loop
+builds=/tmp/pure-028
+case "$1" in
+build)
+ for pair in before:3791ab8 threads-push:3791ab8 loop:32f96b3 push:6d3c3c2; do
+ name=${pair%%:*} commit=${pair#*:}
+ rm -rf $builds/src-$name
+ git worktree add -f -q --detach $builds/src-$name $commit
+ if [ $name = threads-push ]; then git -C $builds/src-$name apply "$PWD/$out/threads-push.patch"; fi
+ make -s -C $builds/src-$name build/pure-serve build/pure-crypto.so
+ mkdir -p $builds/$name
+ cp $builds/src-$name/build/pure-serve $builds/src-$name/build/pure-crypto.so $builds/$name/
+ git worktree remove --force $builds/src-$name
+ done ;;
+links)
+ until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done
+ echo "$(uptime)" > $out/2026-10-01-links-load.txt
+ python3 $out/sends.py 5 1000 link,links4,wire before=$builds/before/pure-serve \
+ threads-push=$builds/threads-push/pure-serve loop=$builds/loop/pure-serve push=$builds/push/pure-serve \
+ > $out/2026-10-01-links-linux-aarch64.jsonl
+ echo "$(uptime)" >> $out/2026-10-01-links-load.txt ;;
+*) echo "runs.sh build|links" >&2; exit 2 ;;
+esac