Skip to content

Stream completed exact-ensemble boundaries - #237

Open
Alexander-Mitrofanov wants to merge 2 commits into
refactor-to-c++23from
refactor/phase4-ensemble-streaming
Open

Stream completed exact-ensemble boundaries#237
Alexander-Mitrofanov wants to merge 2 commits into
refactor-to-c++23from
refactor/phase4-ensemble-streaming

Conversation

@Alexander-Mitrofanov

Copy link
Copy Markdown
Collaborator

Implements the selected Phase 4 architecture change from discussion #232.

The exact non-seed ensemble recurrence finalizes each four-boundary partition exactly once. This branch sends those completed values directly into candidate selection instead of retaining an unordered-map entry for every boundary. Seeded and heuristic predictors remain buffered. Tracker-enabled exact predictions also retain the established buffered callback path.

Modularity and science:

  • filter order, Boltzmann conversion, Zall addition order, recurrence, and CLI/output schema are unchanged
  • virtual updateZ dispatch is retained for derived predictors
  • a scoped per-instance mode restores itself during exception unwinding
  • all four overlap policies, streamed/buffered outputs, trackers, override dispatch, and reuse are covered
  • the added mode flag changes PredictorMfeEns object layout, so downstream C++ clients must rebuild; the binary-program CLI is unchanged

Validation at 9184083:

  • GCC 14.4 strict C++23 focused ensemble test: 54 assertions
  • full API: 4,319 assertions in 36 cases
  • all 20 CLI golden cases
  • fresh benchmark parent/candidate build and test gates passed
  • raw and canonical benchmark output bytes are identical

Same-host exact 80-by-80 ensemble benchmark:

  • wall: 3.110 +/- 0.098 s -> 2.347 +/- 0.023 s (1.325x; 24.5% reduction)
  • mean peak RSS: 89,184 KiB -> 7,595 KiB (91.5% reduction; about 11.7x lower)

Evidence: private benchmark commit 30730f0d0932d31019d8461087f921c7e5497ea5. The separate architecture decision record will link this PR and the same evidence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant