Skip to content

Solve the OG-Core steady state serially in the worker - #553

Open
error9098x wants to merge 1 commit into
EAPD-DRB:mainfrom
error9098x:fix/og-worker-serial-steady-state
Open

error9098x wants to merge 1 commit into
EAPD-DRB:mainfrom
error9098x:fix/og-worker-serial-steady-state

Conversation

@error9098x

@error9098x error9098x commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Linked issue (if applicable)

Validation

  • Tests: not applicable. The worker imports ogcore, which the MUIOGO test suite does not install. uv run ruff check . passes and uv run pytest passes (358 passed, 2 skipped) on this branch.
  • Manual verification: ran the worker's run mode directly with OG-PHL's interpreter (ogcore 0.20.0) on two copies of the same real steady-state baseline (macOS 26.5.1, 10 cores):
    • main: stalled. After ~4 minutes the log had repeated the same 9 GE loop errors lines 34 times with no progress; the run was stopped.
    • this branch: completed in 31 seconds (exit 0, SS_vars.pkl written).
    • Transition path on this branch, same baseline: completed in 431 seconds (exit 0, TPI_vars.pkl written).

Checklist

  • Change is scoped — no unrelated refactors
  • Branched from main; PR targets EAPD-DRB/MUIOGO:main
  • Docs updated for any setup, workflow, or architecture change (not applicable)

Notes for reviewers

  • execute.runner calls SS.run_SS through the module (ogcore/execute.py:46), so wrapping it takes effect. OG-Core 0.20.0's run_TPI calls client.scatter without checking for a client (TPI.py:969), which is why transition-path runs still get one.
  • Upstream keeps the steady state parallel and only sends the parameters once; this workaround makes it serial instead.

OG-Core's steady-state solve re-broadcasts the model parameters to every
dask worker on each iteration. Run it without a dask client, and start the
client only for the transition path, where parallel work pays off. The
client's dashboard is disabled so a run never binds an extra port.
@error9098x error9098x added the Track: OG Onboarding Onboarding, first-run UX, and contributor/user guidance label Sep 30, 2026
@error9098x error9098x self-assigned this Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Track: OG Onboarding Onboarding, first-run UX, and contributor/user guidance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Steady-state solve re-sends model parameters to every dask worker on each iteration (OG-Core 0.20.0)

1 participant