SciML / JumpProcesses.jl

Build and simulate jump equations like Gillespie simulations and jump diffusions with constant and state-dependent rates and mix with differential equations and scientific machine learning (SciML)
https://docs.sciml.ai/JumpProcesses/stable/
Other
135 stars 35 forks source link

Add / use cache-optimized indexed priority queue in NRM-based methods. #405

Open isaacsas opened 4 months ago

isaacsas commented 4 months ago

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.

isaacsas commented 4 months ago

This + the Sanft-Othmer project seem like a good GSOC for someone interested in data structures.