diff options
| author | eunhhu <[email protected]> | 2026-10-18 22:33:19 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-18 22:33:19 +0100 |
| commit | 1d255b735e92c2d6b360ed5ea150a1e42f6dd535 (patch) | |
| tree | 211072355a181bc9ddfa20ecfcb5beda27021ffe /research | |
| parent | a72a1a7acdf6c5ecc4a6668f6b9a3af16ce48555 (diff) | |
| download | pure-1d255b735e92c2d6b360ed5ea150a1e42f6dd535.tar.gz pure-1d255b735e92c2d6b360ed5ea150a1e42f6dd535.zip | |
027's 4f-1: a module's tables sized to it: PureModule's thirty-four tables of states, inputs, message fields, views (the columns the load makes among them, counted from the view and record entries first), handlers, records, record fields, functions and signature items point into one block the load lays out (lay_tables) and pure_module_release gives back, so PureModule is 2,752 bytes, not 24,320; a sanitized build poisons 16 bytes between tables, so reading past one is caught (none was); limits as they were; a test and five of research 044's timers gave the load a module never zeroed (it gives back what one holds), now zeroed; counts: b38 against b37 with batches within 0.25%, without batches matmul -0.45%, join +0.36%, knapsack +0.28%, BFS -0.25%; the bank's queries (s37 and s38 on one aup module in turns, three each) field -0.68%, found -0.51%, large -0.47%, the rest -0.11% to -0.20%; 027's 4f designed in four steps and 4f-1 as made
Diffstat (limited to 'research')
| -rw-r--r-- | research/experiments/040-against-c/2026-10-18-counts-s38.jsonl | 6 | ||||
| -rw-r--r-- | research/experiments/041-batches/2026-10-18-counts.jsonl | 10 | ||||
| -rw-r--r-- | research/experiments/044-specs/append_cost.c | 2 | ||||
| -rw-r--r-- | research/experiments/044-specs/json_rec_time.c | 2 | ||||
| -rw-r--r-- | research/experiments/044-specs/json_time.c | 2 | ||||
| -rw-r--r-- | research/experiments/044-specs/json_tree_time.c | 2 | ||||
| -rw-r--r-- | research/experiments/044-specs/time.c | 2 |
7 files changed, 21 insertions, 5 deletions
diff --git a/research/experiments/040-against-c/2026-10-18-counts-s38.jsonl b/research/experiments/040-against-c/2026-10-18-counts-s38.jsonl new file mode 100644 index 0000000..1f42341 --- /dev/null +++ b/research/experiments/040-against-c/2026-10-18-counts-s38.jsonl @@ -0,0 +1,6 @@ +{"serve": "pure-serve", "per_branch": {"instructions": 26882993, "cycles": 11591444}, "in_credit": {"instructions": 3463530, "cycles": 1578356}, "large": {"instructions": 1431957, "cycles": 606184}, "ranks": {"instructions": 24353508, "cycles": 14592354}, "none": {"instructions": 617958, "cycles": 194299}, "field": {"instructions": 9130366, "cycles": 3276393}, "found": {"instructions": 14283102, "cycles": 10549487}} +{"serve": "pure-serve", "per_branch": {"instructions": 26981160, "cycles": 11735192}, "in_credit": {"instructions": 3485848, "cycles": 1600650}, "large": {"instructions": 1425150, "cycles": 615394}, "ranks": {"instructions": 24395965, "cycles": 14718379}, "none": {"instructions": 616741, "cycles": 192127}, "field": {"instructions": 9068166, "cycles": 3309134}, "found": {"instructions": 14210927, "cycles": 10867715}} +{"serve": "pure-serve", "per_branch": {"instructions": 27279333, "cycles": 11875510}, "in_credit": {"instructions": 3552478, "cycles": 1606311}, "large": {"instructions": 1431845, "cycles": 608216}, "ranks": {"instructions": 24571658, "cycles": 14808241}, "none": {"instructions": 617958, "cycles": 190338}, "field": {"instructions": 9130469, "cycles": 3268205}, "found": {"instructions": 14280287, "cycles": 10521880}} +{"serve": "pure-serve", "per_branch": {"instructions": 27199381, "cycles": 11813156}, "in_credit": {"instructions": 3534764, "cycles": 1608765}, "large": {"instructions": 1425086, "cycles": 608142}, "ranks": {"instructions": 24516404, "cycles": 14877701}, "none": {"instructions": 616741, "cycles": 190908}, "field": {"instructions": 9068063, "cycles": 3313632}, "found": {"instructions": 14207590, "cycles": 10633858}} +{"serve": "pure-serve", "per_branch": {"instructions": 27230259, "cycles": 11911492}, "in_credit": {"instructions": 3541457, "cycles": 1606705}, "large": {"instructions": 1431789, "cycles": 602954}, "ranks": {"instructions": 24545122, "cycles": 14981424}, "none": {"instructions": 617950, "cycles": 191656}, "field": {"instructions": 9130358, "cycles": 3268257}, "found": {"instructions": 14279831, "cycles": 10508190}} +{"serve": "pure-serve", "per_branch": {"instructions": 27329624, "cycles": 12359635}, "in_credit": {"instructions": 3563802, "cycles": 2339609}, "large": {"instructions": 1425094, "cycles": 749512}, "ranks": {"instructions": 24586049, "cycles": 15314398}, "none": {"instructions": 616733, "cycles": 190282}, "field": {"instructions": 9068158, "cycles": 3309742}, "found": {"instructions": 14207319, "cycles": 10912495}} diff --git a/research/experiments/041-batches/2026-10-18-counts.jsonl b/research/experiments/041-batches/2026-10-18-counts.jsonl index f493618..7b29e36 100644 --- a/research/experiments/041-batches/2026-10-18-counts.jsonl +++ b/research/experiments/041-batches/2026-10-18-counts.jsonl @@ -128,3 +128,13 @@ {"version":"b37","way":"rounds","work":"matmul","instructions":21259969629,"cycles":6204053361} {"version":"b37","way":"batches","work":"bfs","instructions":3347488616,"cycles":1663777730} {"version":"b37","way":"rounds","work":"bfs","instructions":4709044317,"cycles":2143909347} +{"version":"b38","way":"batches","work":"roots","instructions":157248661,"cycles":109895799} +{"version":"b38","way":"rounds","work":"roots","instructions":2719817740,"cycles":1102038842} +{"version":"b38","way":"batches","work":"knapsack","instructions":348023990,"cycles":106312579} +{"version":"b38","way":"rounds","work":"knapsack","instructions":22053584918,"cycles":8200983416} +{"version":"b38","way":"batches","work":"join","instructions":1783615210,"cycles":1338885351} +{"version":"b38","way":"rounds","work":"join","instructions":7705975089,"cycles":4071828568} +{"version":"b38","way":"batches","work":"matmul","instructions":702228751,"cycles":227165183} +{"version":"b38","way":"rounds","work":"matmul","instructions":21163848735,"cycles":7467484636} +{"version":"b38","way":"batches","work":"bfs","instructions":3339436314,"cycles":1648001735} +{"version":"b38","way":"rounds","work":"bfs","instructions":4697444852,"cycles":2103018632} diff --git a/research/experiments/044-specs/append_cost.c b/research/experiments/044-specs/append_cost.c index a3ef0bb..d91e82e 100644 --- a/research/experiments/044-specs/append_cost.c +++ b/research/experiments/044-specs/append_cost.c @@ -9,7 +9,7 @@ #include <time.h> static double now_ns(void) { struct timespec t; clock_gettime(CLOCK_MONOTONIC, &t); return t.tv_sec * 1e9 + t.tv_nsec; } int main(int argc, char **argv) { - PureModule m; char error[160]; + PureModule m = {0}; char error[160]; if (pure_module_read(argv[1], &m, error, sizeof(error)) != PURE_OK) { fprintf(stderr, "%s\n", error); return 1; } PureApp app; if (pure_app_start(&app, &m, (PureData){0}) != PURE_OK) return 1; diff --git a/research/experiments/044-specs/json_rec_time.c b/research/experiments/044-specs/json_rec_time.c index 03c02c4..0d5b225 100644 --- a/research/experiments/044-specs/json_rec_time.c +++ b/research/experiments/044-specs/json_rec_time.c @@ -73,7 +73,7 @@ int main(int argc, char **argv) { n += (size_t)sprintf(doc + n, "%s{\"key%d\": [1.5e3, true, null, \"text \\u00e9 %d\"]}", k ? "," : "", k, k); doc[n++] = ']'; doc[n] = 0; - PureModule module; + PureModule module = {0}; char error[160]; if (pure_module_read(argv[1], &module, error, sizeof(error)) != PURE_OK) { fprintf(stderr, "%s\n", error); return 1; } PureApp app; diff --git a/research/experiments/044-specs/json_time.c b/research/experiments/044-specs/json_time.c index b401ece..b4b2eae 100644 --- a/research/experiments/044-specs/json_time.c +++ b/research/experiments/044-specs/json_time.c @@ -100,7 +100,7 @@ int main(int argc, char **argv) { for (int k = 0; k < 2000; ++k) n += (size_t)sprintf((char *)doc + n, "%s{\"key%d\": [1.5e3, true, null, \"text \\u00e9 %d\"]}", k ? "," : "", k, k); doc[n++] = ']'; - PureModule module; + PureModule module = {0}; char error[160]; if (pure_module_read(argv[1], &module, error, sizeof(error)) != PURE_OK) { fprintf(stderr, "%s\n", error); return 1; } PureApp app; diff --git a/research/experiments/044-specs/json_tree_time.c b/research/experiments/044-specs/json_tree_time.c index 1cac21a..0ec4bec 100644 --- a/research/experiments/044-specs/json_tree_time.c +++ b/research/experiments/044-specs/json_tree_time.c @@ -73,7 +73,7 @@ int main(int argc, char **argv) { n += (size_t)sprintf(doc + n, "%s{\"key%d\": [1.5e3, true, null, \"text \\u00e9 %d\"]}", k ? "," : "", k, k); doc[n++] = ']'; doc[n] = 0; - PureModule module; + PureModule module = {0}; char error[160]; if (pure_module_read(argv[1], &module, error, sizeof(error)) != PURE_OK) { fprintf(stderr, "%s\n", error); return 1; } PureApp app; diff --git a/research/experiments/044-specs/time.c b/research/experiments/044-specs/time.c index 248889b..f296ece 100644 --- a/research/experiments/044-specs/time.c +++ b/research/experiments/044-specs/time.c @@ -83,7 +83,7 @@ int main(int argc, char **argv) { uint32_t seed = 140; for (size_t i = 0; i < size; ++i) seed = seed * 1664525u + 1013904223u, data[i] = (unsigned char)(seed >> 24); - PureModule module; + PureModule module = {0}; char error[160]; if (pure_module_read(argv[1], &module, error, sizeof(error)) != PURE_OK) { fprintf(stderr, "%s\n", error); return 1; } PureApp app; |
