SciML / SciML/JumpProcesses.jl
Add / use cache-optimized indexed priority queue in NRM-based methods.
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 150
- Forks
- 41
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 28
Description
NRM and CoEvolve are often bottlenecked by the cost of updating next event times within their data structures. I suspect swapping out the indexed priority queue we use for another data structure could give much better performance. A reason this would be advantageous is that it seems like these are easier methods to use / implement with variable rates and delays compared to direct type methods. This ties into implementing the Sanft-Othmer method (https://arxiv.org/abs/1503.05832) which is already mentioned in another issue and is NRM via a table-based data structure.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the indexed priority queue implementations used by NRM and CoEvolve, then read the Sanft-Othmer paper linked in the issue and the related issue on that method. Compare the current update costs with a cache-optimized table-based structure. Done should include an implemented replacement and evidence that NRM-based methods improve without breaking variable-rate or delay behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100