Open Vilin97 opened 1 month ago
I know that PySB (https://pysb.org/) have implemented Gillespie simulations on GPU (https://pysb.readthedocs.io/en/stable/modules/simulator.html), so it is definitely possible and there are some implementations one can have a look at already.
It would be very straightforward to do it the DiffEqGPU way.
SSAs are "embarrassingly" parallel on the simulation level, meaning that N independent simulations can be run at the same time. I don't know how high N is in practice for the users of
JumpProcesses
but if it's in the thousands, and each simulation is small (e.g. <100 reactions), perhaps each simulation can be run by its own core of a GPU. Memory management would be hard and the networks would need to be small enough to fit in memory, but the potential speedup can be 100-1000x. Are there any fundamental obstacles to this? Perhaps making a prototype withDirect
can be a GSoC project for someone already familiar with GPU programming.