clone

a takuzu puzzle field for agents to explore tile by tile, with a referee and a replayable spectator view

plan: scaling study results and hosting guidance

dami committed a58d774
commit
a58d774ae0f50b8aaca90c52342558a05714cf0d
parent
bfa50b5785352a338370c444723d05bb3d95ef43
author
dami <gazey55@gmail.com>
1 file changed, +30 -4
MPLAN.md34++++++++++++++++++++++++++----
M PLAN.md +30 -4
@@ -615,10 +615,36 @@ per-tile incremental SAT solvers, bound the problem cache; target
615615 per-chunk instrumentation (wall, phases, SAT calls, waves, attempts,616616 regivens, peak RSS, fixed-context size) across ring index 1-4, chunk617617 size 40/60/80, jobs 2/4/6 and band 8/16/24, to see what is linear,618-what is worse, and which levers move it; tables go here when they619-land. Until then the hosted daily consumes fields generated on the Mac620-and pushed (`deno task push-day <date>`), starting with a 3x3 of G=60621-with two rings ahead.618+what is worse, and which levers move it; tables below. Until then the hosted daily consumed fields generated on619+the Mac and pushed (`deno task push-day <date>`).620+621+**Scaling study results (engine fork, 2026-08-27; 18-core Mac, `--jobs 6`,622+G=1000, 3x3 of G=60, gen-v6):**623+624+| ring | new tiles | wall | before tonight's fixes |625+|-----:|----------:|-----:|-----------------------:|626+| base | 233 | 12 s | - |627+| 1 | 396 | 17 s | 1826 s |628+| 2 | 577 | 20 s | 30 s |629+| 3 | 736 | 28 s | 43 s |630+| 4 | 938 | 35 s | 1262 s (then stopped at 60 min in ring 5) |631+632+2888 tiles after ring 4; max chunk 10 s; one chunk in 90 needed a second633+attempt. Readings: cost is ~37 ms per tile regardless of chunk size634+(40/60/80 neutral); `--jobs` beyond 4 gains nothing (a chunk uses635+1.5-2.6 cores); band 8 doubles tiles and RSS, band 24 is cheapest;636+memory per chunk 130-250 MB on a region-sized board (was 618 MB, and637+2 GB on the full canvas), spikes under CPU starvation are GC overshoot,638+not working set. Hosting guidance for a 2 GB box: `--jobs` = cores/2639+with `GOMEMLIMIT=256MiB`. The pathological chunks were each a real640+bug, now fixed: seed placed on infeasible context, clipped regions too641+thin, drops accepted without a joint completion with the new tiles642+they touch, the "complete alone" fallback thrashing after a one-hop643+joint UNSAT; small boards (<= 48 new tiles) are now filled by one joint644+SAT completion (`sat.CompleteAll`) and a bad layout is a 150 ms verdict645+at pack time. `manifest.field` carries `origin`, `occupied`, `grown`,646+`seed_tiles`; a grow delta appends tiles and reverse overlaps (never647+reorders: pins index the lists).622648 623649 ### Items 13-14 landed (2026-08-27): hosted at mosaic-daily.fly.dev624650