Count each runner's simulation time separately - #333
Merged
Conversation
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
enabled auto-merge (squash)
August 26, 2026 17:31
sjoelund
disabled auto-merge
August 26, 2026 18:11
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.
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)