Skip to content
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

Improve slow startup with large reaction networks #97

Merged
merged 1 commit into from
Aug 7, 2023

Conversation

sjdaines
Copy link
Member

@sjdaines sjdaines commented Aug 7, 2023

Use a container DispatchMethodLists with untyped fields instead of a NamedTuple for dispatch lists returned by create_dispatch_methodlists(), so the typed Tuple of methods is only dispatched on at the final call to dispatch_methodlist() (a generated function)

This seems to improve the time for the first call to 'do_deriv', so the startup time for generated_dispatch = true is now similar to generated_dispatch = false. Presumably it was passing around large typed Tuples or NamedTuples that was causing problems, not the @generated dispatch_methodlist()
NB: there is now a dynamic dispatch in do_deriv (one for each of list_initialize, list_do).

Use a container DispatchMethodLists with untyped fields instead of a NamedTuple for
dispatch lists returned by create_dispatch_methodlists(), so the
typed Tuple of methods is only dispatched on at the final call to
dispatch_methodlist() (a generated function)

This seems to improve the time for the first call to 'do_deriv',
so the startup time for generated_dispatch = true is now similar to
generated_dispatch = false. Presumably it was passing around large
typed Tuples or NamedTuples that was causing problems, not the
@generated dispatch_methodlist()
NB: there is now a dynamic dispatch in do_deriv (one for each of
list_initialize, list_do).
@sjdaines sjdaines merged commit af3f1c1 into main Aug 7, 2023
3 checks passed
@sjdaines sjdaines deleted the startup_time_fix branch August 7, 2023 11:00
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.

None yet

1 participant