SciMLBenchmarks.jl
SciMLBenchmarks.jl copied to clipboard
Has benchmarking system size vs, time and computational space required to solve, been done?
Howdy, I see ODE benchmarks for specific ODE problems, but I was curious if for a general linear system: x'=A(t)x if i) you've ploted N (size of ode system), versus time to solve the system and maximam space required to solve the problem; ii) you've pushed to see how big of a NxN system you can solve on HPC (assuming a non trivial amount of time steps - perhaps thousands to millions).
but I was curious if for a general linear system: x'=A(t)x
We don't have any benchmarks on the Magnus methods, which is probably what you'd want to use in that kind of case. https://diffeq.sciml.ai/stable/solvers/nonautonomous_linear_ode/
So x'=A(t)x is very different from most ODEs and would become it's own category whenever someone has time.
N (size of ode system), versus time to solve the system and maximam space required to solve the problem; ii) you've pushed to see how big of a NxN system you can solve on HPC
We'd have to reconfigure the benchmarking system in order to have it test multi-node MPI stuff, so instead we should do this single node for now. Yes, it's a good thing to add, and we should do it with the PDE benchmarks (Bruss, Grier-Meinhardt, etc.), showing all of the tricks from https://diffeq.sciml.ai/stable/tutorials/advanced_ode_example/ and seeing how things differ as the scale changes. This would be a good GSoC.
How these conversations have been going me: can your suite do x? @ChrisRackauckas : yea here is a link and we already have latex written.
Haha this is a great project, and boy are you a great source for what kind of packages exist in your suite or externally. Yes, as you mentioned, I think applying method of lines via your ODE suite, and comparing it versus your PDE solvers would be interesting, as you continually discretize the PDE is space more and more. I'd persoanlly find it interesting to observe that if you had a big enough machine it would be wiser to discretize a system of PDE in space and solve the large ODE system, versus doing the PDE itself. Theorectically there shouldn't be a big difference, but as often noticed, theory and practice tend to diverge rather than converge. I think observations you make for a well behaving A(t) (i.e assuming A(t) is never ill-posed numerically for all t) can tell you something for the class of well posed A(t). It isn't clear to me though if you were to redo the analysis for a specific A(x,t) if you can say anything in general for that class of operators. Probably in that case it will be problem to problem specific, due to "insert the headache that is newton methods" here.
I agree it would be a good GSoC. I don't know what computing resources you could get access to - I know us in the U.S department of energy (national labs) would be extremely interested in knowing some of these answers. It would be interesting to see how this library performs againist other libraries going from powers of 10-10^9. My hunch is yours will be extremely competitive, if not the best. Sure maybe some Fortran library out there is better for ODE, but the fact that I could solve big problems in your suite, and then do optimization, optimal control, UQ, etc, in a clean workflow is extremely attractive ¯_(ツ)_/¯.
Ryan