docs(perf): flop subgame OOM measurement — 4-config wall+RSS sweep#186
Merged
Conversation
Quantifies PR #183's "5+ min, killed" deferral via an empirical 4-config sweep at the J7o A♦8♥9♦ flop after SB-opens-3bb → BB-calls: | Config | top_k | iters | Wall to terminal | Peak RSS | Outcome | |---|---|---|---|---|---| | 0 (floor) | 2 | 2 | 20:00 (timeout) | 2.62 GB | TIMEOUT | | 1 (minimal) | 4 | 5 | ~5:00 | 2.31 GB | OOM (sig 9) | | 2 (moderate) | 8 | 20 | ~2:00-2:30 | 2.93 GB | OOM (sig 9) | | 3 (light-prod) | 15 | 50 | ~10-20 s | (sub-sample) | OOM (sig 9) | Validates: realtime flop subgame is NOT feasible at any tested config on the current implementation. Even the floor (3×2 classes, 2 iters) cannot complete in 20 minutes, ruling out "shrink top_k further" as a fix — decision-node count dominates regardless of class count. Defers to docs/v1_10_postflop_optimization_plan.md (da38888) for authoritative root-cause analysis (dcfr_vector.rs:591-835 allocator pressure) and 4-PR remediation roadmap. Confirms v1.9.0 ship recommendation: flop = blueprint-only (PR #183's framing), live flop deferred to v1.10. Ships: - docs/flop_subgame_perf_measurement_2026-05-28.md (this measurement) - scripts/measure_flop_subgame_perf.py (reproducible single-flop driver) - scripts/run_flop_perf_measurements.sh (RSS watcher + 20-min hard kill) Engine and blueprint_subgame.py untouched. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 28, 2026
amaster97
added a commit
that referenced
this pull request
May 28, 2026
Updates README + USAGE to reflect v1.10.0 ship state (combined v1.9.0 Premium-A + v1.10 postflop optimization MINOR bump) per the v1.9.0 audit (task #69) findings. v1.9.0 was drafted but never tagged; both docs were stuck at v1.8.x prose. README.md (+150/-80 net): - Status: bump v1.8.0 -> v1.10.0; strike v1.6.0 fork-bomb warning (resolved in v1.8.0 PR #42 727206e; left a historical mention of what was fixed) - Preflop blueprint mode: expand from 3 sentences to a full section covering the four-API surface (BlueprintLoader/interp/subgame/ SolverRouter), Phase 6 UI wiring (PR #178 chart widget source badges + chained tab + live-solve confirmation modal), B10 per-combo editor (PRs #149/#154/#158/#160), Phase 7+8 docs (PRs #175/#176), and v1.10 flop unblock (task #70) - "What's new in v1.10.0" replaces "Recent changes (since v1.8.0)"; cites per-PR for Premium-A train + v1.10 postflop optimization - UI section: chart widget + chained tab now consume real solver (PR #178); standalone ad-hoc tab still mock (PR 10b pending) - Known issues: strike v1.6.0 fork-bomb (resolved), replace with ad-hoc-signing + arm64-only framing USAGE.md (+185/-100 net): - Header: v1.8.x -> v1.10.0; rewrite document baseline + v1.10.0 section pointer paragraph - Path A (.dmg): remove "DO NOT LAUNCH" warning, document Gatekeeper override flow for ad-hoc-signed bundle - New §5.10 "CLI BB-normalization (v1.9.0; canonical in v1.10.0)" covering --pot N --stack M canonical flags + --pot-bb/--stack-bb deprecation warning (PR #152) - §5.9 Preflop blueprint: extend with chained postflop subgame example (solve_postflop_from_blueprint, PR #177) + top-level SolverRouter example (PR #181) + honest perf framing (flop unblocked but benchmark numbers TBD) - §7b Known perf cliffs: bump from v1.7.x to v1.10.0; document flop unblock from v1.9.0 OOM-killed; preserve aggregator-recommended framing for production-scale chart generation - §7 Known limitations: bump from v1.0.0 to v1.10.0; UI partial-real framing (chart widget + chained tab real; standalone tab still mock) - §8 What's coming: drop completed items; flag v1.10 perf benchmark publication as next-up + PR 10b standalone-tab swap - --version output: bump 1.8.0 -> 1.10.0 Ship date: 2026-MM-DD placeholder; honest framing throughout that flop top_k=169 wall numbers are TBD by combined-stack benchmark (task #70 PRs #186-#190 + PR-1 arena + PR-3 vector flop). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
docs/v1_10_postflop_optimization_plan.md(da38888) for root-cause analysis and remediation roadmap.Results
Verdict: realtime flop subgame is NOT feasible at any tested configuration on the current implementation. Even the floor (3×2 classes, 2 iters) cannot complete in 20 minutes, ruling out "shrink top_k further" as a v1.9.0 fix.
Recommendation: v1.9.0 ships with flop = blueprint-only (PR #183's framing — already in v1.9.0 release-notes draft #185). Live flop deferred to v1.10 per
docs/v1_10_postflop_optimization_plan.mdCandidate A (arena) + Candidate C (vector-form flop forward walk).Files
docs/flop_subgame_perf_measurement_2026-05-28.md— 4-config measurement docscripts/measure_flop_subgame_perf.py— single-flop driver (variant of PR docs: J7o player-POV walkthrough with postflop solves (#179 follow-up) #183's full-POV script)scripts/run_flop_perf_measurements.sh— RSS watcher + 20-min hard killEngine and
blueprint_subgame.pyuntouched. Uses PR #182's b/r token fix from main.Test plan
da38888) for authoritative root causeorigin/main(HEADf9dfd1dv1.9.0 release-notes draft)Auto-merge OK — docs-only, doesn't touch engine.
🤖 Generated with Claude Code