Skip to content

Count each runner's simulation time separately - #333

Merged
sjoelund merged 1 commit into
masterfrom
separate-runner-times
Aug 26, 2026
Merged

Count each runner's simulation time separately#333
sjoelund merged 1 commit into
masterfrom
separate-runner-times

Conversation

@sjoelund

Copy link
Copy Markdown
Member

A model built once and simulated several ways - an FMU handed to several tools, or a wasm artifact run as a simulation, as FMI 3.0 ME and as CS - wrote the same exectime into every one of its branch tables, because exectime is the wall clock of the whole run of the model. The overview therefore gave wasm-jit, wasm-jit-me and wasm-jit-cs one identical execution time that was really all three of them added together.

Only the simulation and the verification differ between the runners; everything up to the build is shared. Each runner now reports the shared part plus what it alone simulated and verified. testmodel.py records a simwall beside sim for that subtraction: sim is what the tool says it spent, which for the artifact runners is omc's timeSimulation and leaves out the loading around it, and that overhead would otherwise land in the shared part and be counted once per runner.

The overview's branch table also gains a simulation time and a number of verified models, so the two figures that differ between runners of the same artifact can be read directly:

| Branch | Version | Build time | Execution time | Simulation time | # Simulate | # Verify | # Total | | --- | --- | --- | --- | --- | --- | --- | --- |

Rows already in the database keep the exectime they were written with; the new columns are correct for them, since simulate and finalphase have always been per runner.

Assisted-by: Claude Opus 5 (1M context)

A model built once and simulated several ways - an FMU handed to
several tools, or a wasm artifact run as a simulation, as FMI 3.0
ME and as CS - wrote the same exectime into every one of its
branch tables, because exectime is the wall clock of the whole
run of the model. The overview therefore gave wasm-jit,
wasm-jit-me and wasm-jit-cs one identical execution time that was
really all three of them added together.

Only the simulation and the verification differ between the
runners; everything up to the build is shared. Each runner now
reports the shared part plus what it alone simulated and
verified. testmodel.py records a simwall beside sim for that
subtraction: sim is what the tool says it spent, which for the
artifact runners is omc's timeSimulation and leaves out the
loading around it, and that overhead would otherwise land in the
shared part and be counted once per runner.

The overview's branch table also gains a simulation time and a
number of verified models, so the two figures that differ between
runners of the same artifact can be read directly:

| Branch | Version | Build time | Execution time | Simulation time | # Simulate | # Verify | # Total |
| --- | --- | --- | --- | --- | --- | --- | --- |

Rows already in the database keep the exectime they were written
with; the new columns are correct for them, since simulate and
finalphase have always been per runner.

Assisted-by: Claude Opus 5 (1M context)
@sjoelund
sjoelund enabled auto-merge (squash) August 26, 2026 17:31
@sjoelund
sjoelund disabled auto-merge August 26, 2026 18:11
@sjoelund
sjoelund merged commit dfeeafd into master Aug 26, 2026
7 checks passed
@sjoelund
sjoelund deleted the separate-runner-times branch August 26, 2026 18:11
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