Hi Marten,
I am currently working on a paper for my bachellor thesis regarding the computation of basin stability for dynamical systems which requires crazy batches of ODEs. In order to find the best solver I am comparing TorchODE, TorchDiffEq, and Diffrax (from JAX).
I am currently having issues getting TorchODE to work for big payloads, for example Diffrax runs in O(1) independently of the batch size which is quite amazing. When running TorchODE for 5k and 10k I get constant time around 30s but when I run it for 100k I get 300s.
I noticed that I was using the wrong controller PIDController instead of IntegralController which is recommended https://torchode.readthedocs.io/en/latest/step-size-controllers/ and improve the time from 1100 seconds to 600 seconds.
Then I noticed that the GPU memory was not clear between benchmarks runs and now it went down to 310 seconds but I have not being able to improve it from there. It could be that I am f...ing it up somewhere since I am quite new to Pytorch.
You can find there results here https://adrianwix.github.io/pyBasin/benchmarks/solvers/.
The code to generate that is https://github.com/adrianwix/pyBasin/blob/main/benchmarks/solver_comparison/benchmark_solver_comparison.py.
Do you think you could take a look at it? I need to submit my paper (and the benchmarks) by the end of February, so I can only change it before that.
Best regards,
Adrian
Hi Marten,
I am currently working on a paper for my bachellor thesis regarding the computation of basin stability for dynamical systems which requires crazy batches of ODEs. In order to find the best solver I am comparing TorchODE, TorchDiffEq, and Diffrax (from JAX).
I am currently having issues getting TorchODE to work for big payloads, for example Diffrax runs in O(1) independently of the batch size which is quite amazing. When running TorchODE for 5k and 10k I get constant time around 30s but when I run it for 100k I get 300s.
I noticed that I was using the wrong controller
PIDControllerinstead ofIntegralControllerwhich is recommended https://torchode.readthedocs.io/en/latest/step-size-controllers/ and improve the time from 1100 seconds to 600 seconds.Then I noticed that the GPU memory was not clear between benchmarks runs and now it went down to 310 seconds but I have not being able to improve it from there. It could be that I am f...ing it up somewhere since I am quite new to Pytorch.
You can find there results here https://adrianwix.github.io/pyBasin/benchmarks/solvers/.
The code to generate that is https://github.com/adrianwix/pyBasin/blob/main/benchmarks/solver_comparison/benchmark_solver_comparison.py.
Do you think you could take a look at it? I need to submit my paper (and the benchmarks) by the end of February, so I can only change it before that.
Best regards,
Adrian