diff options
| author | eunhhu <[email protected]> | 2026-10-04 14:24:12 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-04 14:24:12 +0100 |
| commit | 608221c21edb345e4eeeca85385d2e149c3baa30 (patch) | |
| tree | c221a7083510a7c108419384e9718e355bda5ec2 /research/experiments | |
| parent | 9e587a06d88b01d21ccc7a1cb25dc156b40efcab (diff) | |
| download | pure-608221c21edb345e4eeeca85385d2e149c3baa30.tar.gz pure-608221c21edb345e4eeeca85385d2e149c3baa30.zip | |
Measure 018 stage 2: a graph search in one event, the pairs, and runs to compare across machines (033)
Diffstat (limited to 'research/experiments')
34 files changed, 511 insertions, 0 deletions
diff --git a/research/experiments/033-computing/2026-10-04-bfs-100000-1000000.jsonl b/research/experiments/033-computing/2026-10-04-bfs-100000-1000000.jsonl new file mode 100644 index 0000000..bab1f31 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-bfs-100000-1000000.jsonl @@ -0,0 +1,16 @@ +{"system": "c", "from": 42224, "to": 57393, "hops": 6, "reached": 99996, "us": 8950.1} +{"system": "c", "from": 5153, "to": 48368, "hops": 6, "reached": 99996, "us": 8925.5} +{"system": "c", "from": 73314, "to": 58793, "hops": 5, "reached": 99996, "us": 8955.1} +{"system": "c", "from": 47063, "to": 90963, "hops": 5, "reached": 99996, "us": 8995.4} +{"system": "c", "from": 67811, "to": 96464, "hops": 5, "reached": 99996, "us": 8978.4} +{"system": "python", "from": 42224, "to": 57393, "us": 439885.7} +{"system": "python", "from": 5153, "to": 48368, "us": 441394.4} +{"system": "python", "from": 73314, "to": 58793, "us": 443791.8} +{"system": "python", "from": 47063, "to": 90963, "us": 442701.7} +{"system": "python", "from": 67811, "to": 96464, "us": 438801.5} +{"system": "pure", "from": 42224, "to": 57393, "hops": 6, "reached": 99996, "us": 396279.4} +{"system": "pure", "from": 5153, "to": 48368, "hops": 6, "reached": 99996, "us": 396679.3} +{"system": "pure", "from": 73314, "to": 58793, "hops": 5, "reached": 99996, "us": 396149.2} +{"system": "pure", "from": 47063, "to": 90963, "hops": 5, "reached": 99996, "us": 394814.1} +{"system": "pure", "from": 67811, "to": 96464, "hops": 5, "reached": 99996, "us": 395569.6} +{"nodes": 100000, "edges": 1000000, "median_us": {"c": 8955.1, "python": 441394.4, "pure": 396149.2}, "pure_over_c": 44.2, "pure_over_python": 0.9} diff --git a/research/experiments/033-computing/2026-10-04-counts.jsonl b/research/experiments/033-computing/2026-10-04-counts.jsonl new file mode 100644 index 0000000..3ff9d93 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-counts.jsonl @@ -0,0 +1,4 @@ +{"serve": "pure-serve", "per_branch": {"instructions": 27099692, "cycles": 12264835}, "in_credit": {"instructions": 3497593, "cycles": 1661681}, "large": {"instructions": 1438519, "cycles": 654650}, "ranks": {"instructions": 24231990, "cycles": 15085786}, "none": {"instructions": 605682, "cycles": 191852}, "field": {"instructions": 8714370, "cycles": 3148429}, "found": {"instructions": 15629130, "cycles": 12479224}} +{"serve": "pure-serve", "per_branch": {"instructions": 26823278, "cycles": 12433552}, "in_credit": {"instructions": 3436386, "cycles": 2078947}, "large": {"instructions": 1444893, "cycles": 658971}, "ranks": {"instructions": 24074847, "cycles": 15030905}, "none": {"instructions": 605691, "cycles": 192405}, "field": {"instructions": 8775789, "cycles": 3246498}, "found": {"instructions": 15722167, "cycles": 12713020}} +{"serve": "pure-serve", "per_branch": {"instructions": 27059438, "cycles": 12132476}, "in_credit": {"instructions": 3488747, "cycles": 1661488}, "large": {"instructions": 1438463, "cycles": 639320}, "ranks": {"instructions": 24210902, "cycles": 15003600}, "none": {"instructions": 605682, "cycles": 199816}, "field": {"instructions": 8714472, "cycles": 3138317}, "found": {"instructions": 15628274, "cycles": 14951793}} +{"serve": "pure-serve", "per_branch": {"instructions": 27055154, "cycles": 12018884}, "in_credit": {"instructions": 3488201, "cycles": 1715312}, "large": {"instructions": 1444829, "cycles": 666748}, "ranks": {"instructions": 24201442, "cycles": 15136335}, "none": {"instructions": 605699, "cycles": 192404}, "field": {"instructions": 8775797, "cycles": 3201030}, "found": {"instructions": 15721592, "cycles": 12653970}} diff --git a/research/experiments/033-computing/2026-10-04-load.txt b/research/experiments/033-computing/2026-10-04-load.txt new file mode 100644 index 0000000..e5986ee --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-load.txt @@ -0,0 +1,12 @@ +1 before 14:00:24 up 10:21, 1 user, load average: 1.08, 1.03, 0.76 +1 after 14:02:11 up 10:23, 1 user, load average: 1.44, 1.33, 0.91 +2 after 14:03:38 up 10:25, 1 user, load average: 1.34, 1.35, 0.96 +2 before 14:05:24 up 10:26, 1 user, load average: 1.36, 1.48, 1.06 +3 before 14:06:51 up 10:28, 1 user, load average: 1.33, 1.51, 1.11 +3 after 14:08:27 up 10:29, 1 user, load average: 1.42, 1.60, 1.19 +4 after 14:09:56 up 10:31, 1 user, load average: 1.30, 1.56, 1.21 +4 before 14:11:23 up 10:32, 1 user, load average: 1.49, 1.60, 1.26 +5 before 14:13:20 up 10:34, 1 user, load average: 1.27, 1.61, 1.31 +5 after 14:14:56 up 10:36, 1 user, load average: 1.31, 1.60, 1.35 +6 after 14:16:23 up 10:37, 1 user, load average: 1.11, 1.46, 1.32 +6 before 14:17:50 up 10:39, 1 user, load average: 1.23, 1.44, 1.33 diff --git a/research/experiments/033-computing/2026-10-04-pi.jsonl b/research/experiments/033-computing/2026-10-04-pi.jsonl new file mode 100644 index 0000000..d8dd4cb --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-pi.jsonl @@ -0,0 +1,46 @@ +{"module": "3db244824ba7031c8b15e074", "args": "de56dc3eef8a5879b1c0e11a", "input": "6f6f723b5b2b1d073eb31852", "output": "e05288002c2ec7e0a979331d", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "3db244824ba7031c8b15e074", "args": "d8828156ecd65e60e45b9a28", "input": "fbe8479cede4e0169db5bd3c", "output": "a48a5acdc64afac3703801e1", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 1} +{"module": "3db244824ba7031c8b15e074", "args": "d8828156ecd65e60e45b9a28", "input": "014589aeac0c2073e4109988", "output": "0757b2550090a207b981ff59", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "3db244824ba7031c8b15e074", "args": "663f78393fb6b01805134031", "input": "e90023d1c1a98fe8f29c66f7", "output": "64de5f760484771e029ee2db", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "79473d03be4f37825d643bb4", "args": "663f78393fb6b01805134031", "input": "014589aeac0c2073e4109988", "output": "f0e31911d6426fdd54119699", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "c1ecc4ee7ec90bcfb37001e5", "output": "7687c6324ed99800152e62a2", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "bc80367cc7d4d60ffc4e05c4", "output": "8cd7eb75796d7a6efd33de89", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "d65dcc87d1865446ad58251f", "output": "1acd13840aaab0671bcfff68", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "df61ae91b0dbbeec3ed32244", "output": "e306e235e47e00771bd2be19", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "dd919ae0468a05b23e0d9a9f", "output": "f6aa1936ffa9c2a9d7f90877", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "ea70cf4efe51953ab5587d5d", "output": "90977584e9f5458f75bbf95e", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "3aefbeb6b32cde88a4d13a13", "output": "4014b80ae105b7371ab9f86b", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "b87783732f62e8a5916f40f9", "output": "f5067bc7953b52aa38c75732", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "06048f543c44e9549aed5380", "output": "fc81784c19628326d6009e39", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "ea116d584f758ba6643016ae", "output": "79cf55b6f73a47b572fb5a54", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "d54f58115e3ef8dcbe085440", "output": "5b098766216c7f95d3a37eb3", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "9451d0c2d1168269fcf5f6fc", "output": "c63926a084c13db61b723a6e", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "b982935d7df6090f979d91ea", "output": "2ce042ed845daccfd894d9b4", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "61f7bf6528b1c1c4e8f113bb", "output": "b11aab75a2b33defc65d460e", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "e4dfd4dd17162dd382a60fcb", "output": "5302cb0df0bda944fb238fd7", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "8ede060b3e50523fddc7daf5", "output": "8c5352aa150c7e4891168c67", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "481c8e83fbf3ebb98b86f070", "output": "31d56b67e741322c29b1d7ec", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "de6975a552e9a8cb4036adb5", "output": "3dac9ebfc7d6f70e017aab53", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "9fe8659271f0e6fa006c5235", "output": "f5bd5e67a817030412923cd1", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "fa638e24673f7cd2e7da3457", "args": "7ca4a61d7a886da987496de4", "input": "0a25f97536d9e82b5be07462", "output": "d1bbc90911792537138e5c03", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "4e046a7ed3cb40cc45d342eb", "output": "58a23d31f2781d2f9bb2efbe", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "dafce720362e20839691889a", "output": "ff6c52a25ce9ac14d61a8dd5", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "2c9ac77bc25fd11242f090a9", "output": "60ebabf1c5b5ba8963ba4509", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "9a02ebff2ce0b0729c073f84", "output": "6ef16fbb1a168b614898a77a", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "324e1b1ae84a7c5b7e0596ee", "output": "ad7cacb4845afa5b44060f54", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "fb3fdcb9bdeb303155f218c6", "output": "cfcb6cfa6005abf164d2b98c", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "260689f601f2ca1dbd7256d0", "output": "4245812252c260663c517479", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "f8ff5b14a7522493e3fb4e3b", "output": "20bffe8f65f93892017f36da", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "d69318266dc2c0526e05c15c", "output": "81b9ba6fbba20f22b1e8d197", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "91e5f193246627baee0a07b7", "output": "7501730ba25d2002ead09501", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "528afe05244d3f32c85ef88c", "output": "09bf07fc366c3707a9675b78", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "f51c23204014b3fa4d88668b", "output": "7a39d656b909502e91cf6a6d", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "cc0eaec10a4008f94cdc9bc3", "output": "69de8aa2e33c37027fd84085", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "b92d0ffda49d48f835a04563", "output": "6592523d8473a0d17ca77ec6", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "643a678d8d2a6fe9119d9521", "output": "0dd05cba6541524e5499df56", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "76d8851c1dab1804580417bd", "output": "d4b4ec037169e878d6e426f7", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "995364b7939d20833d5d279a", "output": "eb2ef6f2415e4d96b79623a4", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "4829b1e000ae4e2d97943b29", "output": "fdf1755aa176fecd8fbe65c3", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "4ef89ebfe266ab1dfb3f38b3", "output": "02f6b9e2bb1bfb6ce3ed8cdd", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "172a13c29dabde5000f2995f", "output": "26086a0ff7f1123c758d0938", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} +{"module": "770a9bded98908db97e56858", "args": "6949bab2263fede197bb7234", "input": "88c83ecba368c17afcef40f7", "output": "911c65754a642979d61bb51b", "errors": "e3b0c44298fc1c149afbf4c8", "exit": 0} diff --git a/research/experiments/033-computing/2026-10-04-queries-after-1.jsonl b/research/experiments/033-computing/2026-10-04-queries-after-1.jsonl new file mode 100644 index 0000000..fb1ea3a --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-after-1.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.28, "pure_fastest_ms": 5.18, "sqlite_median_ms": 45.24, "sqlite_fastest_ms": 45.15, "sqlite_indexed_median_ms": 14.1, "sqlite_indexed_fastest_ms": 14.05} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.85, "pure_fastest_ms": 0.82, "sqlite_median_ms": 5.9, "sqlite_fastest_ms": 5.87, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.42, "pure_fastest_ms": 0.4, "sqlite_median_ms": 1.48, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.48, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.84, "pure_fastest_ms": 6.77, "sqlite_median_ms": 2833.31, "sqlite_fastest_ms": 2831.44, "sqlite_indexed_median_ms": 7.54, "sqlite_indexed_fastest_ms": 7.5} diff --git a/research/experiments/033-computing/2026-10-04-queries-after-2.jsonl b/research/experiments/033-computing/2026-10-04-queries-after-2.jsonl new file mode 100644 index 0000000..c35d15e --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-after-2.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.26, "pure_fastest_ms": 5.17, "sqlite_median_ms": 44.91, "sqlite_fastest_ms": 44.79, "sqlite_indexed_median_ms": 13.97, "sqlite_indexed_fastest_ms": 13.93} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.84, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.87, "sqlite_fastest_ms": 5.86, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.38, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.47, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.47, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.81, "pure_fastest_ms": 6.75, "sqlite_median_ms": 2832.69, "sqlite_fastest_ms": 2830.09, "sqlite_indexed_median_ms": 7.52, "sqlite_indexed_fastest_ms": 7.47} diff --git a/research/experiments/033-computing/2026-10-04-queries-after-3.jsonl b/research/experiments/033-computing/2026-10-04-queries-after-3.jsonl new file mode 100644 index 0000000..ad55a8c --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-after-3.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.28, "pure_fastest_ms": 5.19, "sqlite_median_ms": 44.91, "sqlite_fastest_ms": 44.78, "sqlite_indexed_median_ms": 14.09, "sqlite_indexed_fastest_ms": 14.07} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.83, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.88, "sqlite_fastest_ms": 5.87, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.39, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.47, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.47, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.9, "pure_fastest_ms": 6.7, "sqlite_median_ms": 2831.02, "sqlite_fastest_ms": 2829.23, "sqlite_indexed_median_ms": 7.52, "sqlite_indexed_fastest_ms": 7.49} diff --git a/research/experiments/033-computing/2026-10-04-queries-after-4.jsonl b/research/experiments/033-computing/2026-10-04-queries-after-4.jsonl new file mode 100644 index 0000000..ed1e9ff --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-after-4.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.22, "pure_fastest_ms": 5.16, "sqlite_median_ms": 45.28, "sqlite_fastest_ms": 45.11, "sqlite_indexed_median_ms": 14.06, "sqlite_indexed_fastest_ms": 14.03} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.85, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.87, "sqlite_fastest_ms": 5.86, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.38, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.47, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.48, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.78, "pure_fastest_ms": 6.73, "sqlite_median_ms": 2835.98, "sqlite_fastest_ms": 2831.48, "sqlite_indexed_median_ms": 7.53, "sqlite_indexed_fastest_ms": 7.5} diff --git a/research/experiments/033-computing/2026-10-04-queries-after-5.jsonl b/research/experiments/033-computing/2026-10-04-queries-after-5.jsonl new file mode 100644 index 0000000..62d766b --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-after-5.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.2, "pure_fastest_ms": 5.14, "sqlite_median_ms": 45.36, "sqlite_fastest_ms": 45.16, "sqlite_indexed_median_ms": 14.08, "sqlite_indexed_fastest_ms": 14.03} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.93, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.9, "sqlite_fastest_ms": 5.87, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.44, "pure_fastest_ms": 0.38, "sqlite_median_ms": 1.48, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.47, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.67, "pure_fastest_ms": 6.63, "sqlite_median_ms": 2834.43, "sqlite_fastest_ms": 2831.99, "sqlite_indexed_median_ms": 7.62, "sqlite_indexed_fastest_ms": 7.5} diff --git a/research/experiments/033-computing/2026-10-04-queries-after-6.jsonl b/research/experiments/033-computing/2026-10-04-queries-after-6.jsonl new file mode 100644 index 0000000..9b149c3 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-after-6.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.36, "pure_fastest_ms": 5.14, "sqlite_median_ms": 45.28, "sqlite_fastest_ms": 45.13, "sqlite_indexed_median_ms": 14.2, "sqlite_indexed_fastest_ms": 14.11} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.89, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.89, "sqlite_fastest_ms": 5.87, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.38, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.48, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.48, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.77, "pure_fastest_ms": 6.69, "sqlite_median_ms": 2835.72, "sqlite_fastest_ms": 2832.42, "sqlite_indexed_median_ms": 7.56, "sqlite_indexed_fastest_ms": 7.5} diff --git a/research/experiments/033-computing/2026-10-04-queries-before-1.jsonl b/research/experiments/033-computing/2026-10-04-queries-before-1.jsonl new file mode 100644 index 0000000..5c7318d --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-before-1.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.25, "pure_fastest_ms": 5.17, "sqlite_median_ms": 45.28, "sqlite_fastest_ms": 45.09, "sqlite_indexed_median_ms": 14.01, "sqlite_indexed_fastest_ms": 13.99} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.86, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.87, "sqlite_fastest_ms": 5.86, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.37, "pure_fastest_ms": 0.36, "sqlite_median_ms": 1.48, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.47, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 7.31, "pure_fastest_ms": 6.65, "sqlite_median_ms": 2834.47, "sqlite_fastest_ms": 2830.59, "sqlite_indexed_median_ms": 7.55, "sqlite_indexed_fastest_ms": 7.51} diff --git a/research/experiments/033-computing/2026-10-04-queries-before-2.jsonl b/research/experiments/033-computing/2026-10-04-queries-before-2.jsonl new file mode 100644 index 0000000..b82a301 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-before-2.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.26, "pure_fastest_ms": 5.21, "sqlite_median_ms": 45.2, "sqlite_fastest_ms": 45.07, "sqlite_indexed_median_ms": 14.01, "sqlite_indexed_fastest_ms": 13.99} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.88, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.94, "sqlite_fastest_ms": 5.87, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.38, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.48, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.48, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.73, "pure_fastest_ms": 6.67, "sqlite_median_ms": 2833.21, "sqlite_fastest_ms": 2832.37, "sqlite_indexed_median_ms": 7.59, "sqlite_indexed_fastest_ms": 7.52} diff --git a/research/experiments/033-computing/2026-10-04-queries-before-3.jsonl b/research/experiments/033-computing/2026-10-04-queries-before-3.jsonl new file mode 100644 index 0000000..aa78a08 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-before-3.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.22, "pure_fastest_ms": 5.19, "sqlite_median_ms": 44.86, "sqlite_fastest_ms": 44.79, "sqlite_indexed_median_ms": 14.02, "sqlite_indexed_fastest_ms": 13.98} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.85, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.87, "sqlite_fastest_ms": 5.86, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.39, "pure_fastest_ms": 0.36, "sqlite_median_ms": 1.47, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.47, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.73, "pure_fastest_ms": 6.67, "sqlite_median_ms": 2833.09, "sqlite_fastest_ms": 2829.5, "sqlite_indexed_median_ms": 7.53, "sqlite_indexed_fastest_ms": 7.49} diff --git a/research/experiments/033-computing/2026-10-04-queries-before-4.jsonl b/research/experiments/033-computing/2026-10-04-queries-before-4.jsonl new file mode 100644 index 0000000..434b550 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-before-4.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.24, "pure_fastest_ms": 5.16, "sqlite_median_ms": 44.92, "sqlite_fastest_ms": 44.83, "sqlite_indexed_median_ms": 13.98, "sqlite_indexed_fastest_ms": 13.95} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.86, "pure_fastest_ms": 0.82, "sqlite_median_ms": 5.88, "sqlite_fastest_ms": 5.86, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.39, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.48, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.49, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.75, "pure_fastest_ms": 6.63, "sqlite_median_ms": 2836.09, "sqlite_fastest_ms": 2830.65, "sqlite_indexed_median_ms": 7.56, "sqlite_indexed_fastest_ms": 7.49} diff --git a/research/experiments/033-computing/2026-10-04-queries-before-5.jsonl b/research/experiments/033-computing/2026-10-04-queries-before-5.jsonl new file mode 100644 index 0000000..66096e9 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-before-5.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.25, "pure_fastest_ms": 5.17, "sqlite_median_ms": 46.37, "sqlite_fastest_ms": 46.18, "sqlite_indexed_median_ms": 14.72, "sqlite_indexed_fastest_ms": 14.67} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.84, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.91, "sqlite_fastest_ms": 5.89, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.4, "pure_fastest_ms": 0.37, "sqlite_median_ms": 1.49, "sqlite_fastest_ms": 1.48, "sqlite_indexed_median_ms": 1.49, "sqlite_indexed_fastest_ms": 1.48} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.71, "pure_fastest_ms": 6.68, "sqlite_median_ms": 2855.96, "sqlite_fastest_ms": 2850.03, "sqlite_indexed_median_ms": 7.61, "sqlite_indexed_fastest_ms": 7.54} diff --git a/research/experiments/033-computing/2026-10-04-queries-before-6.jsonl b/research/experiments/033-computing/2026-10-04-queries-before-6.jsonl new file mode 100644 index 0000000..74b7077 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-queries-before-6.jsonl @@ -0,0 +1,4 @@ +{"query": "per_branch", "rows": 10, "accounts": 100000, "pure_median_ms": 5.45, "pure_fastest_ms": 5.17, "sqlite_median_ms": 45.28, "sqlite_fastest_ms": 44.74, "sqlite_indexed_median_ms": 14.12, "sqlite_indexed_fastest_ms": 14.1} +{"query": "in_credit", "rows": 1, "accounts": 100000, "pure_median_ms": 0.89, "pure_fastest_ms": 0.81, "sqlite_median_ms": 5.89, "sqlite_fastest_ms": 5.86, "sqlite_indexed_median_ms": 0.16, "sqlite_indexed_fastest_ms": 0.16} +{"query": "large", "rows": 212, "accounts": 100000, "pure_median_ms": 0.38, "pure_fastest_ms": 0.36, "sqlite_median_ms": 1.47, "sqlite_fastest_ms": 1.47, "sqlite_indexed_median_ms": 1.48, "sqlite_indexed_fastest_ms": 1.47} +{"query": "ranks", "rows": 404, "accounts": 100000, "pure_median_ms": 6.82, "pure_fastest_ms": 6.69, "sqlite_median_ms": 2837.35, "sqlite_fastest_ms": 2833.45, "sqlite_indexed_median_ms": 7.58, "sqlite_indexed_fastest_ms": 7.49} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-after-1.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-after-1.jsonl new file mode 100644 index 0000000..e37727d --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-after-1.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.73, "sqlite_load_s": 1.57, "sqlite_page_size": 4096, "pure_resident_mib": 38.3, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42566, "new_orders_per_minute": 1138958, "undone_new_orders": 3633, "errors": 0, "new_order": {"done": 383286, "failed": 0, "p50_us": 1536, "p99_us": 3584}, "payment": {"done": 365831, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "order_status": {"done": 34175, "failed": 0, "p50_us": 256, "p99_us": 1152}, "delivery": {"done": 34116, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "stock_level": {"done": 33916, "failed": 0, "p50_us": 288, "p99_us": 1280}, "server_threads": "3", "cpu_us_per_transaction": 44.4, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 445.8, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 445.8, "pure_state_mib": 227.3, "pure_store_mib": 230.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 25482, "burst_events": 779680, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-after-2.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-after-2.jsonl new file mode 100644 index 0000000..98539ef --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-after-2.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.73, "sqlite_load_s": 1.57, "sqlite_page_size": 4096, "pure_resident_mib": 39.0, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42974, "new_orders_per_minute": 1149738, "undone_new_orders": 3678, "errors": 0, "new_order": {"done": 386927, "failed": 0, "p50_us": 1536, "p99_us": 3200}, "payment": {"done": 369394, "failed": 0, "p50_us": 1472, "p99_us": 3200}, "order_status": {"done": 34484, "failed": 0, "p50_us": 256, "p99_us": 1024}, "delivery": {"done": 34427, "failed": 0, "p50_us": 1472, "p99_us": 3200}, "stock_level": {"done": 34251, "failed": 0, "p50_us": 288, "p99_us": 1088}, "server_threads": "3", "cpu_us_per_transaction": 44.8, "core_shares": {"pure-owner": 0.91, "pure-checkpoint": 0.01}, "resident_mib": 450.7, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 450.7, "pure_state_mib": 229.2, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 25774, "burst_events": 787155, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-after-3.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-after-3.jsonl new file mode 100644 index 0000000..24d6e6e --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-after-3.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.74, "sqlite_load_s": 1.59, "sqlite_page_size": 4096, "pure_resident_mib": 39.0, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42788, "new_orders_per_minute": 1144782, "undone_new_orders": 3660, "errors": 0, "new_order": {"done": 385258, "failed": 0, "p50_us": 1536, "p99_us": 3584}, "payment": {"done": 367830, "failed": 0, "p50_us": 1472, "p99_us": 3456}, "order_status": {"done": 34327, "failed": 0, "p50_us": 256, "p99_us": 1152}, "delivery": {"done": 34269, "failed": 0, "p50_us": 1472, "p99_us": 3456}, "stock_level": {"done": 34090, "failed": 0, "p50_us": 288, "p99_us": 1152}, "server_threads": "3", "cpu_us_per_transaction": 44.0, "core_shares": {"pure-owner": 0.91, "pure-checkpoint": 0.01}, "resident_mib": 448.9, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 448.9, "pure_state_mib": 228.3, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 25826, "burst_events": 783755, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-after-4.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-after-4.jsonl new file mode 100644 index 0000000..1de2fd7 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-after-4.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.73, "sqlite_load_s": 1.61, "sqlite_page_size": 4096, "pure_resident_mib": 38.3, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42171, "new_orders_per_minute": 1128494, "undone_new_orders": 3606, "errors": 0, "new_order": {"done": 379771, "failed": 0, "p50_us": 1536, "p99_us": 3840}, "payment": {"done": 362393, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "order_status": {"done": 33861, "failed": 0, "p50_us": 256, "p99_us": 1152}, "delivery": {"done": 33794, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "stock_level": {"done": 33596, "failed": 0, "p50_us": 288, "p99_us": 1344}, "server_threads": "3", "cpu_us_per_transaction": 44.9, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 443.2, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 443.2, "pure_state_mib": 225.4, "pure_store_mib": 230.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 25588, "burst_events": 772438, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-after-5.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-after-5.jsonl new file mode 100644 index 0000000..50c0153 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-after-5.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.73, "sqlite_load_s": 1.55, "sqlite_page_size": 4096, "pure_resident_mib": 39.0, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 41855, "new_orders_per_minute": 1120166, "undone_new_orders": 3574, "errors": 0, "new_order": {"done": 377003, "failed": 0, "p50_us": 1536, "p99_us": 3840}, "payment": {"done": 359738, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "order_status": {"done": 33609, "failed": 0, "p50_us": 256, "p99_us": 1344}, "delivery": {"done": 33528, "failed": 0, "p50_us": 1536, "p99_us": 3840}, "stock_level": {"done": 33321, "failed": 0, "p50_us": 288, "p99_us": 1344}, "server_threads": "3", "cpu_us_per_transaction": 45.1, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 440.5, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 440.5, "pure_state_mib": 223.9, "pure_store_mib": 230.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 25542, "burst_events": 766718, "checkpoints": 37}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-after-6.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-after-6.jsonl new file mode 100644 index 0000000..690ffd0 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-after-6.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.75, "sqlite_load_s": 1.56, "sqlite_page_size": 4096, "pure_resident_mib": 38.3, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 41800, "new_orders_per_minute": 1118709, "undone_new_orders": 3582, "errors": 0, "new_order": {"done": 376506, "failed": 0, "p50_us": 1536, "p99_us": 3968}, "payment": {"done": 359209, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "order_status": {"done": 33555, "failed": 0, "p50_us": 272, "p99_us": 1344}, "delivery": {"done": 33485, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "stock_level": {"done": 33291, "failed": 0, "p50_us": 304, "p99_us": 1536}, "server_threads": "3", "cpu_us_per_transaction": 45.0, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 440.1, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 440.1, "pure_state_mib": 223.7, "pure_store_mib": 230.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 25646, "burst_events": 765702, "checkpoints": 37}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-before-1.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-before-1.jsonl new file mode 100644 index 0000000..6a1e9da --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-before-1.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.75, "sqlite_load_s": 1.57, "sqlite_page_size": 4096, "pure_resident_mib": 39.0, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 43239, "new_orders_per_minute": 1157086, "undone_new_orders": 3694, "errors": 0, "new_order": {"done": 389391, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "payment": {"done": 371590, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "order_status": {"done": 34708, "failed": 0, "p50_us": 272, "p99_us": 1344}, "delivery": {"done": 34629, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "stock_level": {"done": 34465, "failed": 0, "p50_us": 304, "p99_us": 1536}, "server_threads": "3", "cpu_us_per_transaction": 44.2, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 453.6, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 453.6, "pure_state_mib": 230.6, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 26588, "burst_events": 792001, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-before-2.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-before-2.jsonl new file mode 100644 index 0000000..64d5c59 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-before-2.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.72, "sqlite_load_s": 1.58, "sqlite_page_size": 4096, "pure_resident_mib": 38.3, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42977, "new_orders_per_minute": 1149805, "undone_new_orders": 3682, "errors": 0, "new_order": {"done": 386989, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "payment": {"done": 369458, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "order_status": {"done": 34494, "failed": 0, "p50_us": 256, "p99_us": 1216}, "delivery": {"done": 34448, "failed": 0, "p50_us": 1472, "p99_us": 3456}, "stock_level": {"done": 34242, "failed": 0, "p50_us": 304, "p99_us": 1280}, "server_threads": "3", "cpu_us_per_transaction": 45.0, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 450.5, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 450.5, "pure_state_mib": 229.3, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 26174, "burst_events": 787259, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-before-3.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-before-3.jsonl new file mode 100644 index 0000000..5a24819 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-before-3.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.73, "sqlite_load_s": 1.57, "sqlite_page_size": 4096, "pure_resident_mib": 38.3, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 43325, "new_orders_per_minute": 1159094, "undone_new_orders": 3706, "errors": 0, "new_order": {"done": 390071, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "payment": {"done": 372433, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "order_status": {"done": 34750, "failed": 0, "p50_us": 256, "p99_us": 1152}, "delivery": {"done": 34711, "failed": 0, "p50_us": 1472, "p99_us": 3584}, "stock_level": {"done": 34532, "failed": 0, "p50_us": 288, "p99_us": 1216}, "server_threads": "3", "cpu_us_per_transaction": 44.3, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 453.8, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 453.8, "pure_state_mib": 230.9, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 26169, "burst_events": 793593, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-before-4.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-before-4.jsonl new file mode 100644 index 0000000..0f56786 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-before-4.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.74, "sqlite_load_s": 1.57, "sqlite_page_size": 4096, "pure_resident_mib": 38.3, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42851, "new_orders_per_minute": 1146425, "undone_new_orders": 3672, "errors": 0, "new_order": {"done": 385815, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "payment": {"done": 368369, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "order_status": {"done": 34372, "failed": 0, "p50_us": 256, "p99_us": 1344}, "delivery": {"done": 34330, "failed": 0, "p50_us": 1472, "p99_us": 3840}, "stock_level": {"done": 34143, "failed": 0, "p50_us": 288, "p99_us": 1472}, "server_threads": "3", "cpu_us_per_transaction": 44.1, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 449.3, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 449.3, "pure_state_mib": 228.7, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 26308, "burst_events": 784917, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-before-5.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-before-5.jsonl new file mode 100644 index 0000000..308896a --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-before-5.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.73, "sqlite_load_s": 1.6, "sqlite_page_size": 4096, "pure_resident_mib": 39.0, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 42807, "new_orders_per_minute": 1145115, "undone_new_orders": 3665, "errors": 0, "new_order": {"done": 385372, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "payment": {"done": 368000, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "order_status": {"done": 34336, "failed": 0, "p50_us": 272, "p99_us": 1344}, "delivery": {"done": 34321, "failed": 0, "p50_us": 1472, "p99_us": 3968}, "stock_level": {"done": 34109, "failed": 0, "p50_us": 304, "p99_us": 1344}, "server_threads": "3", "cpu_us_per_transaction": 44.7, "core_shares": {"pure-owner": 0.9, "pure-checkpoint": 0.01}, "resident_mib": 450.0, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 450.0, "pure_state_mib": 228.4, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 26497, "burst_events": 784111, "checkpoints": 38}} diff --git a/research/experiments/033-computing/2026-10-04-tpcc-before-6.jsonl b/research/experiments/033-computing/2026-10-04-tpcc-before-6.jsonl new file mode 100644 index 0000000..a3ad968 --- /dev/null +++ b/research/experiments/033-computing/2026-10-04-tpcc-before-6.jsonl @@ -0,0 +1,3 @@ +{"step": "load", "directory": "/dev/shm", "warehouses": 1, "rows": 568758, "generate_s": 0.56, "pure_load_s": 0.72, "sqlite_load_s": 1.57, "sqlite_page_size": 4096, "pure_resident_mib": 39.0, "sqlite_file_mib": 13.8} +{"step": "run", "system": "pure", "warehouses": 1, "terminals": 64, "transactions_per_second": 43579, "new_orders_per_minute": 1166369, "undone_new_orders": 3734, "errors": 0, "new_order": {"done": 392525, "failed": 0, "p50_us": 1472, "p99_us": 3456}, "payment": {"done": 374493, "failed": 0, "p50_us": 1472, "p99_us": 3328}, "order_status": {"done": 34950, "failed": 0, "p50_us": 256, "p99_us": 1088}, "delivery": {"done": 34879, "failed": 0, "p50_us": 1472, "p99_us": 3200}, "stock_level": {"done": 34737, "failed": 0, "p50_us": 288, "p99_us": 1216}, "server_threads": "3", "cpu_us_per_transaction": 44.2, "core_shares": {"pure-owner": 0.91, "pure-checkpoint": 0.01}, "resident_mib": 457.8, "written_bytes_per_transaction": 0.0, "device_bytes_per_transaction": null, "consistency_failures": []} +{"step": "end", "pure_resident_mib": 457.8, "pure_state_mib": 232.2, "pure_store_mib": 238.7, "sqlite_files_mib": 13.8, "grouped_sqlite_files_mib": 0.0, "pure_counts": {"bursts": 26554, "burst_events": 798222, "checkpoints": 39}} diff --git a/research/experiments/033-computing/bfs.c b/research/experiments/033-computing/bfs.c new file mode 100644 index 0000000..0c2c518 --- /dev/null +++ b/research/experiments/033-computing/bfs.c @@ -0,0 +1,57 @@ +/* The C baseline of research 118: a breadth first search over the graph + * bfs.py writes (u32le nodes, u32le edges, then u32le from and to of each, + * sorted), adjacency as offsets into one array, from each start given. + * bfs GRAPH FROM TO [FROM TO ...]: per search a JSON line, hops, reached + * and the median of ROUNDS runs in microseconds. */ +#define _POSIX_C_SOURCE 200809L +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <time.h> + +static double now_us(void) { + struct timespec t; + clock_gettime(CLOCK_MONOTONIC, &t); + return t.tv_sec * 1e6 + t.tv_nsec / 1e3; +} + +static int compare(const void *a, const void *b) { + double x = *(const double *)a, y = *(const double *)b; + return (x > y) - (x < y); +} + +int main(int argc, char **argv) { + FILE *f = fopen(argv[1], "rb"); + uint32_t n, m; + if (!f || fread(&n, 4, 1, f) != 1 || fread(&m, 4, 1, f) != 1) return 1; + uint32_t *from = malloc(4ull * m), *to = malloc(4ull * m), *start = calloc(n + 1, 4); + for (uint32_t k = 0; k < m; ++k) + if (fread(&from[k], 4, 1, f) != 1 || fread(&to[k], 4, 1, f) != 1) return 1; + fclose(f); + for (uint32_t k = 0; k < m; ++k) ++start[from[k] + 1]; + for (uint32_t v = 0; v < n; ++v) start[v + 1] += start[v]; + int32_t *depth = malloc(4ull * n); + uint32_t *queue = malloc(4ull * n); + for (int a = 2; a + 1 < argc; a += 2) { + uint32_t s = (uint32_t)atoi(argv[a]), t = (uint32_t)atoi(argv[a + 1]); + double runs[21]; + uint32_t reached = 0; + for (int r = 0; r < 21; ++r) { + double began = now_us(); + for (uint32_t v = 0; v < n; ++v) depth[v] = -1; + uint32_t head = 0, tail = 0; + queue[tail++] = s; + depth[s] = 0; + while (head < tail) { + uint32_t v = queue[head++]; + for (uint32_t k = start[v]; k < start[v + 1]; ++k) + if (depth[to[k]] < 0) { depth[to[k]] = depth[v] + 1; queue[tail++] = to[k]; } + } + runs[r] = now_us() - began; + reached = tail; + } + qsort(runs, 21, sizeof(*runs), compare); + printf("{\"system\":\"c\",\"from\":%u,\"to\":%u,\"hops\":%d,\"reached\":%u,\"us\":%.1f}\n", s, t, depth[t], reached, runs[10]); + } + return 0; +} diff --git a/research/experiments/033-computing/bfs.py b/research/experiments/033-computing/bfs.py new file mode 100755 index 0000000..8df19a8 --- /dev/null +++ b/research/experiments/033-computing/bfs.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 +"""A breadth first search in one event (docs/design/018 stage 2, research +118). A random graph of NODES nodes and EDGES edges (from and to uniform, +no loops, each pair once; seed 118) goes into graph.aup on pure-serve +(store in RAM, cores 0-2) as rows; then SEARCHES searches from random +nodes, each one event (POST /inputs/route), timed by the client (the +request on a kept connection; the event is nearly all of it), ROUNDS +times each. The same searches run in C (bfs.c, adjacency as offsets) and +in CPython (lists and a deque). All three must find the same hops and +reach the same nodes. + +bfs.py PURE_SERVE AUP NODES EDGES SEARCHES ROUNDS a JSON line per search and system, then medians +""" +import collections +import http.client +import json +import random +import shutil +import statistics +import struct +import subprocess +import sys +import tempfile +import time +from pathlib import Path + +HERE = Path(__file__).resolve().parent + + +def main(): + serve, aup = Path(sys.argv[1]).resolve(), Path(sys.argv[2]).resolve() + nodes, edges_wanted, searches, rounds = (int(a) for a in sys.argv[3:7]) + rng = random.Random(118) + pairs = set() + while len(pairs) < edges_wanted: + a, b = rng.randrange(nodes), rng.randrange(nodes) + if a != b: + pairs.add((a, b)) + edges = sorted(pairs) + out = [[] for _ in range(nodes)] + for a, b in edges: + out[a].append(b) + queries = [(rng.randrange(nodes), rng.randrange(nodes)) for _ in range(searches)] + work = Path(tempfile.mkdtemp(prefix='pure-033-', dir='/dev/shm')) + try: + with open(work / 'graph.bin', 'wb') as f: + f.write(struct.pack('<II', nodes, len(edges))) + for a, b in edges: + f.write(struct.pack('<II', a, b)) + subprocess.run(['cc', '-O2', '-o', str(work / 'bfs'), str(HERE / 'bfs.c')], check=True) + c_runs = subprocess.run(['taskset', '-c', '1', str(work / 'bfs'), str(work / 'graph.bin')] + + [str(v) for q in queries for v in q], capture_output=True, text=True, check=True).stdout + found = {} + for line in c_runs.splitlines(): + r = json.loads(line) + found[(r['from'], r['to'])] = (r['hops'], r['reached']) + print(json.dumps(r), flush=True) + times = {'c': [json.loads(line)['us'] for line in c_runs.splitlines()], 'python': [], 'pure': []} + for s, t in queries: + runs = [] + for _ in range(rounds): + began = time.perf_counter() + depth = {s: 0} + queue = collections.deque([s]) + while queue: + v = queue.popleft() + for w in out[v]: + if w not in depth: + depth[w] = depth[v] + 1 + queue.append(w) + runs.append((time.perf_counter() - began) * 1e6) + assert (depth.get(t, -1), len(depth)) == found[(s, t)], (s, t) + times['python'].append(statistics.median(runs)) + print(json.dumps({'system': 'python', 'from': s, 'to': t, 'us': round(statistics.median(runs), 1)}), flush=True) + subprocess.run([str(aup), 'build', str(HERE / 'graph.aup'), '-o', str(work / 'graph.pmod')], check=True) + host = subprocess.Popen(['taskset', '-c', '0-2', str(serve), '--module', str(work / 'graph.pmod'), '--store', + str(work / 'store'), '--port', '0'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + port = json.loads(host.stdout.readline())['port'] + connection = http.client.HTTPConnection('127.0.0.1', port, timeout=600) + + def request(method, path, body=b''): + connection.request(method, path, body, {'Content-Length': str(len(body))}) + answer = connection.getresponse() + data = answer.read() + assert answer.status == 200, (path, answer.status, answer.getheader('X-Pure-Error'), data[:200]) + return data + + request('POST', f'/inputs/size?nodes={nodes}') + for k in range(0, len(edges), 80000): + request('POST', '/inputs/load', b''.join(struct.pack('<dd', a * 1048576 + b, b) for a, b in edges[k:k + 80000])) + for s, t in queries: + runs = [] + for _ in range(rounds): + began = time.perf_counter() + request('POST', f'/inputs/route?from={s}&to={t}') + runs.append((time.perf_counter() - began) * 1e6) + got = (int(request('GET', '/views/far')), int(request('GET', '/views/found'))) + assert got == found[(s, t)], (s, t, got, found[(s, t)]) + times['pure'].append(statistics.median(runs)) + print(json.dumps({'system': 'pure', 'from': s, 'to': t, 'hops': got[0], 'reached': got[1], + 'us': round(statistics.median(runs), 1)}), flush=True) + host.terminate() + host.communicate(timeout=60) + medians = {k: round(statistics.median(v), 1) for k, v in times.items()} + print(json.dumps({'nodes': nodes, 'edges': len(edges), 'median_us': medians, + 'pure_over_c': round(medians['pure'] / medians['c'], 1), + 'pure_over_python': round(medians['pure'] / medians['python'], 2)}), flush=True) + finally: + shutil.rmtree(work) + + +if __name__ == '__main__': + main() diff --git a/research/experiments/033-computing/graph.aup b/research/experiments/033-computing/graph.aup new file mode 100644 index 0000000..a19d96d --- /dev/null +++ b/research/experiments/033-computing/graph.aup @@ -0,0 +1,56 @@ +# The graph of research 118 (docs/design/018 stage 2): edges keyed by +# from * 1048576 + to, loaded in bulk as rows; a breadth first search in +# one event, its queue and what it has seen the event's own lists. +record Edge { + link = 0 + to = 0 +} +record Seen { + node = 0 + depth = 0 +} +record Step { + node = 0 +} +state edges: list of Edge by link +state nodes = 0 +state hops = -1 +state reached = 0 +input size = message { + nodes: u32 +} +input load = message { + rows: list of Edge +} +input route = message { + from: u32 + to: u32 +} +on size { + nodes = size.nodes +} +on load { + for r in load.rows { + edges.add(Edge { ..r }) + } +} +on route { + let seen: list of Seen by node + let queue: list of Step + queue.append(Step { node: route.from }) + seen.add(Seen { node: route.from }) + for i in 0 .. nodes { + if i >= queue.count { break } + let q = queue.first + i + for e in edges[q.node * 1048576 .. q.node * 1048576 + 1048576] { + if !seen.has(e.to) { + seen.add(Seen { node: e.to, depth: seen[q.node].depth + 1 }) + queue.append(Step { node: e.to }) + } + } + } + hops = if seen.has(route.to) { seen[route.to].depth } else { -1 } + reached = seen.count +} +view far = hops +view found = reached diff --git a/research/experiments/033-computing/pairs.py b/research/experiments/033-computing/pairs.py new file mode 100644 index 0000000..edadcec --- /dev/null +++ b/research/experiments/033-computing/pairs.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +"""The pairs of runs.sh pairs as a table (research 118): each round's TPC-C +(transactions a second, CPU a transaction, the owner's core share) before +and after, the medians and the bank queries' median times. + +pairs.py DATE from DATE-tpcc-*.jsonl and DATE-queries-*.jsonl beside it +""" +import json +import statistics +import sys +from pathlib import Path + +HERE = Path(__file__).resolve().parent +day = sys.argv[1] + + +def tpcc(version, round_): + for line in (HERE / f'{day}-tpcc-{version}-{round_}.jsonl').read_text().splitlines(): + r = json.loads(line) + if r.get('step') == 'run' and r.get('system') == 'pure': + owner = max((share for name, share in r['core_shares'].items() if 'owner' in name), default=None) \ + if isinstance(r['core_shares'], dict) else None + return r['transactions_per_second'], r['cpu_us_per_transaction'], owner + + +def queries(version, round_): + return {r['query']: r['pure_median_ms'] for r in map(json.loads, (HERE / f'{day}-queries-{version}-{round_}.jsonl') + .read_text().splitlines()) if 'query' in r} + + +rounds = sorted({int(p.stem.rsplit('-', 1)[1]) for p in HERE.glob(f'{day}-tpcc-before-*.jsonl')}) +rows = {'before': [], 'after': []} +for round_ in rounds: + b, a = tpcc('before', round_), tpcc('after', round_) + rows['before'].append(b), rows['after'].append(a) + print(json.dumps({'round': round_, 'tps': [b[0], a[0]], 'change': round((a[0] / b[0] - 1) * 100, 1), + 'cpu_us': [b[1], a[1]], 'owner_share': [b[2], a[2]]})) +med = {v: statistics.median(t for t, _, _ in rows[v]) for v in rows} +cpu = {v: statistics.median(c for _, c, _ in rows[v]) for v in rows} +names = queries('before', rounds[0]).keys() +q = {v: {n: statistics.median(queries(v, r)[n] for r in rounds) for n in names} for v in rows} +print(json.dumps({'tps_median': [med['before'], med['after']], 'change': round((med['after'] / med['before'] - 1) * 100, 1), + 'cpu_us_median': [cpu['before'], cpu['after']], + 'queries_median_ms': {n: [q['before'][n], q['after'][n], + round((q['after'][n] / q['before'][n] - 1) * 100, 1)] for n in names}})) diff --git a/research/experiments/033-computing/record.py b/research/experiments/033-computing/record.py new file mode 100755 index 0000000..7450fa6 --- /dev/null +++ b/research/experiments/033-computing/record.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +"""The pure-runs of aup's checks of docs/design/018 (transients and +computing: the examples routes.aup and numbers.aup against their models), +each recorded by 029's recorded-pure-run, so two machines' records compare +run by run (029's compare.py). + +record.py AUP_ROOT PURE_ROOT OUT.jsonl the checks' report on stdout""" +import importlib.util +import json +import os +import subprocess +import sys +import tempfile +from pathlib import Path + +aup_root, pure_root, out = (Path(a).resolve() for a in sys.argv[1:4]) +subprocess.run(['make', '-s', '-C', str(pure_root), 'build/pure-run'], check=True) +subprocess.run(['make', '-s', '-C', str(aup_root), 'build/aup'], check=True) +out.unlink(missing_ok=True) +os.environ['PURE_RUN'] = str(pure_root / 'build' / 'pure-run') +os.environ['PURE_RUN_LOG'] = str(out) +recorded = pure_root / 'research' / 'experiments' / '029-across-machines' / 'recorded-pure-run' +spec = importlib.util.spec_from_file_location('check', aup_root / 'tests' / 'check.py') +check = importlib.util.module_from_spec(spec) +spec.loader.exec_module(check) +with tempfile.TemporaryDirectory(prefix='aup-check-') as directory: + work = Path(directory) + report = {'transients': check.transients(aup_root / 'build' / 'aup', recorded, work), + 'computing': check.computing(aup_root / 'build' / 'aup', recorded, work)} +print(json.dumps(report)) diff --git a/research/experiments/033-computing/runs.sh b/research/experiments/033-computing/runs.sh new file mode 100755 index 0000000..ead9848 --- /dev/null +++ b/research/experiments/033-computing/runs.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# The runs of research 118 (docs/design/018's stage 2), from the repository's +# root, in steps, each under research/guard.py: +# runs.sh build NAME COMMIT pure-serve of COMMIT, with its pure-crypto.so, +# in ~/.cache/pure-033/NAME +# runs.sh pairs FIRST LAST a host of one app, the builds before (850f783, +# stage 2's criteria's parent) and after in +# turns, as 026 ran them: TPC-C in RAM (W=1, +# 64 terminals, 20 s) and the bank's queries +# runs.sh counts the bank queries' instructions before and +# after (025's count.py) +# runs.sh bfs NODES EDGES SEARCHES ROUNDS bfs.py on the after build +set -e +out=research/experiments/033-computing +builds=$HOME/.cache/pure-033 +day=$(date +%F) +case "$1" in +build) + rm -rf "$builds/src-$2" + git worktree add -f -q --detach "$builds/src-$2" "$3" + make -s -C "$builds/src-$2" build/pure-serve build/pure-crypto.so + mkdir -p "$builds/$2" + cp "$builds/src-$2/build/pure-serve" "$builds/src-$2/build/pure-crypto.so" "$builds/$2/" + git worktree remove --force "$builds/src-$2" ;; +pairs) + for round in $(seq "$2" "$3"); do + first=before second=after + if [ $((round % 2)) = 0 ]; then first=after second=before; fi + for version in $first $second; do + until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done + echo "$round $version $(uptime)" >> "$out/$day-load.txt" + python3 research/guard.py -- python3 benchmarks/tpcc/run.py --serve "$builds/$version/pure-serve" --warehouses 1 \ + --check 0 --terminals 64 --sqlite-threads '' --sqlite-group '' --seconds 20 \ + > "$out/$day-tpcc-$version-$round.jsonl" + python3 research/guard.py -- python3 benchmarks/bank/queries.py --serve "$builds/$version/pure-serve" \ + > "$out/$day-queries-$version-$round.jsonl" + done + done ;; +counts) + python3 research/guard.py -- python3 research/experiments/025-i64-cost/count.py "$builds/before/pure-serve" \ + "$builds/after/pure-serve" "$builds/before/pure-serve" "$builds/after/pure-serve" > "$out/$day-counts.jsonl" ;; +bfs) + until awk '{ exit !($1 < 1.5) }' /proc/loadavg; do sleep 10; done + python3 research/guard.py --most 2048 -- python3 $out/bfs.py "$builds/after/pure-serve" ../aup/build/aup "$2" "$3" "$4" "$5" \ + > "$out/$day-bfs-$2-$3.jsonl" ;; +*) echo "runs.sh build NAME COMMIT | pairs FIRST LAST | counts | bfs NODES EDGES SEARCHES ROUNDS" >&2 + exit 2 ;; +esac |
