Fix MultiPodBuilder external input accounting and scheduling - #540
Open
robknight wants to merge 4 commits into
Open
Fix MultiPodBuilder external input accounting and scheduling#540robknight wants to merge 4 commits into
robknight wants to merge 4 commits into
Conversation
Every generated POD after the first installs its predecessor in input slot 0, even when it imports no statements from that POD. Charge this slot in both partitioners, report total input-POD usage in diagnostics, and verify that materialization agrees with the solver.
Track external dependencies by builder input position instead of public-statement hash. Distinct input PODs can expose the same statement tree, so hash-based coalescing can undercount input slots and attach the wrong concrete POD during materialization.
External imports are already represented by assigned Open or synthetic nodes, which consume their statement-table slots. Only cross-POD chain imports create additional statements, so remove the duplicate external-import charge from the heuristic, MILP model, and diagnostics.
Add an external-opening-first topological ordering candidate so POD 0 can use its external input slots before later PODs reserve one for their predecessor. Mark frontend Open operations and synthetic republishes in the symbolic costs, retain the existing candidates, and cover a plan that drops from three PODs to two.
robknight
force-pushed
the
fix_too_many_input_pods
branch
from
August 27, 2026 14:16
77b1be6 to
25f086f
Compare
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.
Correct several related issues in how MultiPodBuilder accounts for and schedules external inputs.
Both the heuristic and MILP partitioners now use consistent input-POD and statement accounting. Diagnostics report total input-POD usage, and materialization asserts that its concrete input list agrees with the solver.