Skip to content

Commit 97c8465

Browse files
Add SIMD RK methods to NonStiffODE benchmarks
- Add OrdinaryDiffEqSIMDRK package dependency (v1.4.0) - Add MER5v2, MER6v2, and RK6v4 methods to FitzhughNagumo benchmark - Add MER5v2, MER6v2, and RK6v4 methods to LotkaVolterra benchmark - Add MER5v2, MER6v2, and RK6v4 methods to RigidBody benchmark - Add MER5v2, MER6v2, and RK6v4 methods to linear benchmark - These SIMD methods provide improved performance for static array problems
1 parent 1c9d66d commit 97c8465

File tree

6 files changed

+89
-41
lines changed

6 files changed

+89
-41
lines changed

benchmarks/NonStiffODE/FitzhughNagumo_wpd.jmd

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ The purpose of this is to see how the errors scale on a standard nonlinear probl
1010
```julia
1111
using OrdinaryDiffEq, ParameterizedFunctions, ODEInterface,
1212
ODEInterfaceDiffEq, LSODA, Sundials, DiffEqDevTools,
13-
StaticArrays
13+
StaticArrays, OrdinaryDiffEqSIMDRK
1414
using Plots;
1515
gr()
1616

@@ -46,7 +46,10 @@ setups = [Dict(:alg=>DP5())
4646
Dict(:alg=>Tsit5())
4747
Dict(:alg=>Vern6())
4848
Dict(:alg=>Tsit5(), :prob_choice => 2)
49-
Dict(:alg=>Vern6(), :prob_choice => 2)]
49+
Dict(:alg=>Vern6(), :prob_choice => 2)
50+
Dict(:alg=>MER5v2(), :prob_choice => 2)
51+
Dict(:alg=>MER6v2(), :prob_choice => 2)
52+
Dict(:alg=>RK6v4(), :prob_choice => 2)]
5053
wp = WorkPrecisionSet(probs, abstols, reltols, setups; appxsol = test_sol,
5154
save_everystep = false, numruns = 100, maxiters = 1000)
5255
plot(wp)

benchmarks/NonStiffODE/LotkaVolterra_wpd.jmd

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ The purpose of this problem is to test the performance on easy problems. Since i
99

1010
```julia
1111
using OrdinaryDiffEq, ParameterizedFunctions, ODEInterfaceDiffEq, LSODA,
12-
Sundials, DiffEqDevTools, StaticArrays
12+
Sundials, DiffEqDevTools, StaticArrays, OrdinaryDiffEqSIMDRK
1313

1414
f = @ode_def LotkaVolterra begin
1515
dx = a*x - b*x*y
@@ -43,7 +43,10 @@ setups = [Dict(:alg=>DP5())
4343
Dict(:alg=>Tsit5())
4444
Dict(:alg=>Vern6())
4545
Dict(:alg=>Tsit5(), :prob_choice => 2)
46-
Dict(:alg=>Vern6(), :prob_choice => 2)]
46+
Dict(:alg=>Vern6(), :prob_choice => 2)
47+
Dict(:alg=>MER5v2(), :prob_choice => 2)
48+
Dict(:alg=>MER6v2(), :prob_choice => 2)
49+
Dict(:alg=>RK6v4(), :prob_choice => 2)]
4750
wp = WorkPrecisionSet(probs, abstols, reltols, setups; appxsol = test_sol,
4851
save_everystep = false, maxiters = 10000, numruns = 100)
4952
plot(wp)

0 commit comments

Comments
 (0)