Open isaacsas opened 5 years ago
In fact, across several reaction networks too I'm never seeing an advantage to using FunctionWrapper
s. At a minimum it seems we can probably drop DirectFW
and FRMFW
.
It would also be good to benchmark the difference between MassActionJump
s and pure ConstantRateJump
s again on the latest Julia versions. For Direct
they may no longer be needed (as opposed to methods that only update a small subset of rates).
I wonder who would know the answer to what changed. Maybe we can ask Jameson tomorrow. I have no idea why this would be different in 1.1.
Was this ever investigated again?
Won’t we still need it in the non-Direct
SSAs since they won’t have the recursion trick to build a single nested chain of calls to all constant rate jumps?
On Jun 5, 2020, at 9:02 PM, Christopher Rackauckas notifications@github.com wrote:
Was this ever investigated again?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
yes, they'll need it to not dynamic dispatch
In redoing benchmarks with stock Julia 1.1 I'm finding that on a Cartesian grid random walk simulation (32^3 mesh, so ~6*32^3 jumps)
Direct
consistently beatsDirectFW
. So it seems like Julia can now handle very deep recursion efficiently (how the jumps are evaluated to ensure type stability).I'm not sure how to exploit this in methods using dependency graphs, where only a few jumps would be evaluated per time-step and we don't know them at compile time, but it would be great to be able to ditch function wrappers for
ConstantRateJump
s in the non-Direct
SSAs.