Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Has benchmarking system size vs, time and computational space required to solve, been done? #404

Open
DrVogt opened this issue Jan 23, 2022 · 2 comments

Comments

@DrVogt
Copy link

DrVogt commented Jan 23, 2022

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).

@ChrisRackauckas
Copy link
Member

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.

@DrVogt
Copy link
Author

DrVogt commented Jan 23, 2022

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants