Skip to content

Make the simulation recorder cheap and readable while it runs - #1697

Merged
jd-lara merged 2 commits into
psy6from
jd/recorder-perf
Oct 14, 2026
Merged

jd-lara merged 2 commits into
psy6from
jd/recorder-perf

Conversation

@jd-lara

@jd-lara jd-lara commented Oct 14, 2026

Copy link
Copy Markdown
Member

Objective

Reduce the recorder cost in long simulations, and let a person or an agent follow a run from simulation_status.log while it runs.

Changes

  • Events build no strings: type names come from IS.strip_module_name on type parameters, and model_name is a Symbol.
  • Parameter update tags come from the strings that the IOM parameter attributes store.
  • One InitialConditionUpdateEvent per initial-condition key per execution, with one vector entry per device. A missing value is null.
  • ProblemExecutionEvent adds termination_status, objective_value, solve_time_s, and exec_time_s.
  • A model execution that throws writes a "failed" line.
  • list_simulation_events filters by exact model and step, not by time windows.
  • The show_* functions honor wall_time, and show initial-condition events with one row per device.
  • Update the recorder how-to page.

Requires Sienna-Platform/InfrastructureSystems.jl#656 and Sienna-Platform/InfrastructureOptimizationModels.jl#201.

Closes #915

Build no strings when an event is recorded.
Record one initial-condition event per key per execution.
Add solver health to ProblemExecutionEvent and write a failed line.
Filter simulation events by exact model and step.
Filter by step in list_simulation_events without a helper function.
Build the excluded columns for the event tables in fewer lines.
@jd-lara
jd-lara merged commit cd85e37 into psy6 Oct 14, 2026
4 of 9 checks passed
@jd-lara
jd-lara deleted the jd/recorder-perf branch October 14, 2026 20:21
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