Skip to content

Split Shooting methods into subpackage #215

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

Merged
merged 2 commits into from
Sep 30, 2024

Conversation

ErikQQY
Copy link
Member

@ErikQQY ErikQQY commented Sep 29, 2024

Continue #214

Signed-off-by: Qingyu Qu <2283984853@qq.com>
Signed-off-by: Qingyu Qu <2283984853@qq.com>
Copy link
Contributor

github-actions bot commented Sep 29, 2024

Benchmark Results

master 7783f84... master/7783f84e1c57bb...
Simple Pendulum/IIP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK2() 6.44 ± 0.16 ms 6.54 ± 0.16 ms 0.984
Simple Pendulum/IIP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK3() 2.33 ± 0.053 ms 2.34 ± 0.05 ms 0.996
Simple Pendulum/IIP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK4() 0.81 ± 0.017 ms 0.816 ± 0.016 ms 0.993
Simple Pendulum/IIP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK5() 0.859 ± 0.02 ms 0.873 ± 0.02 ms 0.983
Simple Pendulum/IIP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK6() 0.979 ± 0.022 ms 0.986 ± 0.017 ms 0.993
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = false) 1.38 ± 0.18 ms 1.39 ± 0.17 ms 0.994
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = true) 2.66 ± 0.19 ms 2.68 ± 0.17 ms 0.993
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0371 ± 0.013 s 0.0376 ± 0.013 s 0.987
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.0451 ± 0.012 s 0.0444 ± 0.011 s 1.02
Simple Pendulum/IIP/Shooting(Tsit5()) 0.208 ± 0.013 ms 0.209 ± 0.014 ms 0.995
Simple Pendulum/OOP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK2() 0.0394 ± 0.00068 s 0.04 ± 0.00075 s 0.985
Simple Pendulum/OOP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK3() 11.4 ± 0.13 ms 11.6 ± 0.14 ms 0.979
Simple Pendulum/OOP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK4() 3.32 ± 0.069 ms 3.35 ± 0.069 ms 0.989
Simple Pendulum/OOP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK5() 3.38 ± 0.085 ms 3.41 ± 0.079 ms 0.993
Simple Pendulum/OOP/BoundaryValueDiffEq.BoundaryValueDiffEqMIRK.MIRK6() 3.52 ± 0.088 ms 3.56 ± 0.099 ms 0.99
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = false) 3.94 ± 2.8 ms 3.82 ± 2.8 ms 1.03
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = true) 6.84 ± 3.2 ms 6.53 ± 2.6 ms 1.05
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.141 ± 0.0049 s 0.141 ± 0.009 s 1
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.163 ± 0.013 s 0.169 ± 0.012 s 0.966
Simple Pendulum/OOP/Shooting(Tsit5()) 0.751 ± 0.18 ms 0.764 ± 0.13 ms 0.984
time_to_load 9.34 ± 0.042 s 9.87 ± 0.024 s 0.946

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR.
Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

@ErikQQY
Copy link
Member Author

ErikQQY commented Sep 29, 2024

Ready to go now

@ErikQQY
Copy link
Member Author

ErikQQY commented Sep 29, 2024

There are still some questions though:

  1. Are we going to leave the extension algorithms from ODEInterface.jl in BoundaryValueDiffEq.jl or make them into a subpackage too?
  2. I noticed NonlinearSolve.jl is putting SimpleNonlinearSolve.jl into a subpackage, should we also do the same?

@ChrisRackauckas ChrisRackauckas merged commit 09eb346 into SciML:master Sep 30, 2024
10 checks passed
@ChrisRackauckas
Copy link
Member

I noticed SciML/NonlinearSolve.jl#456 (comment), should we also do the same?

No harm either way. I think the key is to make a core that is very lean.

Are we going to leave the extension algorithms from ODEInterface.jl in BoundaryValueDiffEq.jl or make them into a subpackage too?

Having them as extensions is fine if the core is lean.

@ErikQQY ErikQQY deleted the qqy/split_shooting branch September 30, 2024 11:18
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

Successfully merging this pull request may close these issues.

2 participants