aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/025-i64-cost/runs.sh
blob: 328e11f8751d3057f70d5c293204f820afb6b4da (plain)
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
#!/bin/sh
# The runs of docs/design/016's second stage, from the repository's root:
# pure-serve before i64 (9a03e72, built in a scratch worktree) and after (the
# tree as it is), in turns: TPC-C in RAM (W=1, 64 terminals), then the bank's
# queries, six rounds, the order flipped every other round. The modules are
# the same bytes on both sides (aup before and after i64 builds tpcc.aup,
# bank.aup and the four queries alike), so only the runtime differs. The
# results go to a directory named for the after commit: runs.sh fc65d66.
set -e
out=research/experiments/025-i64-cost/$1
mkdir -p $out
work=$(mktemp -d)
git worktree add -q --detach $work/tree 9a03e72
make -C $work/tree -s build/pure-serve
cp $work/tree/build/pure-serve $work/pure-serve-before
git worktree remove --force $work/tree
make -s build/pure-serve
cp build/pure-serve $work/pure-serve-after
for round in 1 2 3 4 5 6; do
    first=before second=after
    if [ $((round % 2)) = 0 ]; then first=after second=before; fi
    for version in $first $second; do
        echo "$round $version $(uptime)" >> $out/2026-09-30-load.txt
        python3 benchmarks/tpcc/run.py --serve $work/pure-serve-$version --warehouses 1 --check 0 --terminals 64 \
            --sqlite-threads '' --sqlite-group '' --seconds 20 > $out/2026-09-30-tpcc-$version-$round-linux-aarch64.jsonl
        python3 benchmarks/bank/queries.py --serve $work/pure-serve-$version \
            > $out/2026-09-30-queries-$version-$round-linux-aarch64.jsonl
    done
done