From d1db24f0e5c3bba583a1f2a9d8a0c9d3fc64a55c Mon Sep 17 00:00:00 2001 From: eunhhu Date: Thu, 1 Oct 2026 09:18:23 +0100 Subject: Measure wires on the sending loop, and a host's threads (028) Five rounds of 1,000 bursts by one wire, four wires, one link and four links: a thread each (966b82f), links on the loop (94e7bb8), wires on it too (5f5603c). Medians: one wire 774k, 782k, 779k sends/s; four wires 629k, 625k, 615k (the same CPU a send); one link 581k to 948k; four links 485k to 811k. A host whose app sends to ten links and ten wires has 24 threads before and 5 after (3 with no output). --- research/experiments/028-one-sending-loop/runs.sh | 27 +++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'research/experiments/028-one-sending-loop/runs.sh') diff --git a/research/experiments/028-one-sending-loop/runs.sh b/research/experiments/028-one-sending-loop/runs.sh index 65eb51d..e580982 100755 --- a/research/experiments/028-one-sending-loop/runs.sh +++ b/research/experiments/028-one-sending-loop/runs.sh @@ -2,20 +2,24 @@ # 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) +# pure-crypto.so: before (a thread a link and a wire, +# 3791ab8), threads-push (before with threads-push.patch: +# the owner pushes a turn's sends at once), loop (one +# sending loop for links, 32f96b3), push (the loop with +# push, 6d3c3c2), wires (wires on the loop too, eb3812a) # 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 +# runs.sh wires the same by one wire, four wires, one link and four +# links: before, push and wires +# runs.sh threads a host's threads with ten links and ten wires, and with +# no output: before and wires 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 + for pair in before:3791ab8 threads-push:3791ab8 loop:32f96b3 push:6d3c3c2 wires:eb3812a; do name=${pair%%:*} commit=${pair#*:} rm -rf $builds/src-$name git worktree add -f -q --detach $builds/src-$name $commit @@ -32,5 +36,14 @@ links) 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 ;; +wires) + until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done + echo "$(uptime)" > $out/2026-10-01-wires-load.txt + python3 $out/sends.py 5 1000 wire,wires4,link,links4 before=$builds/before/pure-serve \ + push=$builds/push/pure-serve wires=$builds/wires/pure-serve > $out/2026-10-01-wires-linux-aarch64.jsonl + echo "$(uptime)" >> $out/2026-10-01-wires-load.txt ;; +threads) + (cd $out && python3 threads.py before=$builds/before/pure-serve wires=$builds/wires/pure-serve) \ + > $out/2026-10-01-threads-linux-aarch64.jsonl ;; +*) echo "runs.sh build|links|wires|threads" >&2; exit 2 ;; esac -- cgit v1.2.3