-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove unneeded state from Runge-Kutta stepper #871
Conversation
554f470
to
1f22b6b
Compare
Yeah I think this should increase the performance. You can also roughly measure the performance change by running the benchmark executable |
27faa83
to
0178c3c
Compare
9730ab2
to
36ff827
Compare
This resolves the internal compiler error in #871.
36ff827
to
82d8c6e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good as far as I can tell
82d8c6e
to
882214c
Compare
Currently, the Runge-Kutta stepper holds a lot of state which is used only internally. The size of this state is 164 bytes, of which only 140 bytes are needed after the step. Keeping the remaining state between steps is therefore taking up a lot of memory. In this PR, I remove this internal state from the externally facing stepper state and turn it into an intermediate struct which is not stored persistently, saving 140 bytes on the size of the stepper state (and, with it, the propagator state).
Quality Gate passedIssues Measures |
Currently, the Runge-Kutta stepper holds a lot of state which is used only internally. The size of this state is 164 bytes, of which only 140 bytes are needed after the step. Keeping the remaining state between steps is therefore taking up a lot of memory.
In this PR, I remove this internal state from the externally facing stepper state and turn it into an intermediate struct which is not stored persistently, saving 140 bytes on the size of the stepper state (and, with it, the propagator state).