Central frontier scheduler parity and within-decision scaling check
At fixed completed depth, seven chance strata, policy seed, leaf, and deterministic reduction order, a central prefix-frontier scheduler will return bit-identical per-column values and actions to the existing root-column scheduler while exposing at least 32 runnable tasks per worker.
On this page
- Created
- Updated
No explanation has been written for this record yet.
Technical recordThe registered protocol
- Hypothesis
- At fixed completed depth, seven chance strata, policy seed, leaf, and deterministic reduction order, a central prefix-frontier scheduler will return bit-identical per-column values and actions to the existing root-column scheduler while exposing at least 32 runnable tasks per worker. On the local host at depth 5 it will reduce median decision wall time by at least 10% and sustain at least 75% worker busy time at the maximum available worker count. This is a CHECK-tier engineering comparison only; logical work may differ because private worker tables see a different schedule, and no policy-strength or 192-core performance claim follows until the same frozen harness is run on that x86 host.
- Arms
Arm Name Entry point Manifest Candidate rust-central-frontier-scheduler approaches/fair-expectimax/rust-engine/src/parallel.rs– Comparator rust-root-column-scheduler approaches/fair-expectimax/rust-engine/src/bin/decide.rs– - Classification
- engineering
- Information boundary
- public-policy
- Benchmark tier
- CHECK
- Lifecycle
- preregistered
- Theories tested
- Primary metric
- Bit-identical per-column f64 values and selected actions versus the sequential Rust search and existing root-column scheduler, followed by median end-to-end decision wall-time ratio frontier/root at depth 5, seven strata, the same roots, worker count, compiler, cache capacity, and machine profile.
- Secondary metrics
- frontier task count and exactly-once completion count
- worker busy fraction, per-worker busy seconds, task-count spread, and tail idle core-seconds
- logical work, nodes, leaf calls, move calls, and cache hits, reported rather than assumed equal
- scaling at 1, 2, 4, 8, and every locally available logical CPU, bounded by detected availability
- planner construction time, task execution time, reduction time, initialization time, and peak resident memory
- projected table memory and explicit thread/cache settings for a later 192-core x86 run
- Statistical unit
- root
- Uncertainty method
- Exact equality for values/actions/tasks; three interleaved timing repeats per scheduler and worker count, reporting all repeats and the median.
- Data role
- no-gameplay
- Seed leases
- none recorded
- Whole-origin split
- yes
- Reuse disclosure
- No new seed is opened. Correctness and timing use only realistic roots regenerated from the already-opened Rust gate sub-block 0xa5276000-0xa5276fff of SEEDLEASE-A52-FAST, plus seed-free constructed unit fixtures. These roots are reusable development diagnostics and cannot support a strength claim.
- Pass criteria
- Across at least 8 realistic d4s7 roots, sequential, root-column, and frontier schedulers have identical legal-column lists, identical f64 value bits for every column, and identical selected actions at 1 and maximum local workers, with 0 missing or duplicate frontier tasks.
- Three repeated frontier runs return byte-identical values/actions at each tested worker count; worker count changes no value or action.
- At maximum local workers on at least 3 realistic d5s7 roots, the frontier scheduler's median wall time is at least 10% lower than the root-column scheduler's median, and aggregate worker busy seconds divided by workers times task-phase wall seconds is at least 0.75.
- The command line accepts an explicit 192-worker configuration, rejects zero or memory-unsafe settings before allocation, bounds the prefix frontier, reports per-worker table memory and total projected table memory, and never silently reduces depth or chance strata.
- Cargo release tests, the existing Rust/C++ search-value gate, determinism/reflection checks, npm test, and make test pass; pre-existing repository-validator failures from missing gitignored historical artifacts remain disclosed separately.
- On pass
- Record valid + pass at mechanics-only tier, make the frontier scheduler the Rust decide binary's default with an explicit root-scheduler fallback, and provide the frozen scaling command for the 192-core x86 host. Open no gameplay cohort and make no strength claim.
- On fail
- Record valid + fail for the exact scheduler configuration, keep the existing root scheduler as default, and open no gameplay cohort. A parity failure stops timing immediately.
- Gate fixed before controlled data
- yes
- Resources
Wall seconds 7200 CPU threads 12 Max host bytes 8589934592 Max GPU bytes – GPU devices – - Stop conditions
- Stop timing on any rules, information-boundary, legality, determinism, reflection, value-bit, action, or exactly-once task failure.
- Stop the local run at 2 hours wall, 8 GiB peak host memory, or any worker panic; record partial rather than weakening the gate.
- Do not access protected/final seeds or any new seed range; do not tune split depth on a gameplay-strength cohort.
- Do not claim 192-core saturation from the 12-logical-CPU arm64 workstation; that requires a separate retained machine profile and execution of the frozen scaling harness on the target x86 server.
- Expected artifacts
approaches/fair-expectimax/rust-engine/src/parallel.rsapproaches/fair-expectimax/rust-engine/src/bin/decide.rsapproaches/fair-expectimax/rust-engine/src/bin/bench.rsruns/<run-id>/central-frontier/{machine-profile.json,parity.json,timings.json,summary.json}research/runs/<run-id>.jsonresearch/results/<result-id>.json
- Amendments
- none recorded
Technical recordResults recorded against this protocol
A deterministic central-frontier scheduler replaced at-most-seven root-column jobs with a bounded shared registry of continuation subtrees while retaining ordered floating-point reduction and the old root scheduler as a fallback. On one retained 12-logical-CPU arm64 profile, exact root/frontier comparisons had zero value, action, or task mismatches. The preregistered D5/S7 bounded split reduced the three-repeat median for three roots from 22.034955 s to 19.410905 s (1.1352x) with 0.8823 median worker busy fraction; D4/S7 over eight roots improved from 4.076978 s to 3.232507 s (1.2612x) with 0.9951 busy fraction. A deliberately over-expanded D5 prefix reached 0.9963 busy fraction but created about 41% more logical work and achieved only 1.0102x, which falsified that split and motivated the adaptive coarse split for expensive continuations. This supports the refactor strategy locally but is not a 192-core saturation or policy-strength result.
- ✓Sequential/C++-equivalent, root-column, and central-frontier values and actions are exact across at least eight realistic D4/S7 roots at one and maximum local workers, with every task completed exactly once. — observed: Eight strict-FP C++/Rust roots had 0 mismatches. Root/frontier comparisons covered 24 paired decisions at one worker and 24 at 12 workers with 0 value/action/task mismatches; registered and completed task counts matched in every row.
- ✓Three repeats are value/action deterministic at each tested worker count. — observed: Three repeats at one and 12 workers produced 0 semantic mismatches; worker count changed timing and task placement only.
- ✓At maximum local workers on at least three D5/S7 roots, median wall time improves at least 10% and worker busy fraction is at least 0.75. — observed: Three roots x three repeats: 22.034955 s root median versus 19.410905 s bounded-frontier median, 1.1352x speedup and 0.8823 median busy fraction.
- ✓The scheduler safely expresses 192 workers, bounds the frontier and memory, and rejects unsafe memory before allocation. — observed: The allocation-free D7/S7 192-worker plan selected split 1, bounded the worst frontier at 2,401 tasks and projected 2,418,377,728 bytes under an 8 GiB cap. A 16,777,216-entry cache per worker was rejected at 154,618,822,656 bytes; the Rust unit test covers the same fail-closed path.
- –Release Rust tests, native parity, determinism/reflection, npm test, and repository test integration pass or any pre-existing artifact failure is disclosed. — observed: Cargo release tests passed 22/22 after the analytics reflection test was added; npm test passed 137 with 1 unrelated native-binary skip and exercised the Rust decision binary. `make test` stopped at `research-validate`: after this run record was completed, 72 pre-existing gitignored historical artifacts remain absent in this checkout, so the aggregate target cannot reach later steps. The default arm64 C++ build also differed by 1-3 ULP on 7/20 roots because of contraction; the retained -ffp-contract=off comparison passed 8/8 with no action changes in the default build.
Technical recordRecorded metrics
- rootsPerRepeat
- 8
- repeats
- 3
- rootMedianSeconds
- 4.0770
- frontierMedianSeconds
- 3.2325
- speedup
- 1.2612
- frontierBusyMedian
- 0.9951
- pairedDecisions
- 24
- mismatches
- 0
- rootsPerRepeat
- 3
- repeats
- 3
- rootMedianSeconds
- 22.0350
- frontierMedianSeconds
- 19.4109
- speedup
- 1.1352
- frontierBusyMedian
- 0.8823
- pairedDecisions
- 9
- mismatches
- 0
- rootMedianSeconds
- 24.9596
- frontierMedianSeconds
- 24.7075
- speedup
- 1.0102
- frontierBusyMedian
- 0.9963
- rootLogicalWork
- 381,642,037
- frontierLogicalWorkMedian
- 539,523,663
- rootsPerRepeat
- 8
- repeats
- 3
- rootMedianSeconds
- 13.7221
- frontierMedianSeconds
- 13.5473
- pairedDecisions
- 24
- mismatches
- 0
- Mechanics-only CHECK result on one shared 12-logical-CPU arm64 workstation; no x86 or 192-core timing was performed.
- The timing corpus is eight reusable diagnostic roots at D4 and three at D5, not complete games or a strength cohort.
- Private worker tables make logical work schedule-dependent. Fine granularity is not monotonically better: the over-expanded D5 arm increased logical work about 41% and failed the speed gate.
- Worker busy fraction measures timed search-task occupancy and excludes coordinator planning, initialization, and reduction; end-to-end wall time is the primary speed metric.
- Peak RSS and CPU seconds were not retained. Memory values are exact table-layout projections plus a conservative planner allowance.
- The default arm64 C++ compiler contracted floating operations; bit-exact native parity on this host required -ffp-contract=off. Actions did not change in the default 20-root diagnostic.
Agent contextHow to extend this record
To add a reader-facing explanation, write web/content/research/EX-20260825-central-frontier-scheduler-check-df116702.mdx; it renders above this record on the next request. The registered protocol itself is in the technical record above.
Record file: research/experiments/EX-20260825-central-frontier-scheduler-check-df116702.json, validated against research/schemas/experiment-v1.schema.json. Protocol hash: 97eb46930709425d1abedfd45ee9700d31d19369698b738fe391d5c93fda942a.
Registered by Codex / unknown (root).