Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions benchmarks/NonStiffODE/EnrightPryce_wpd.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The purpose of this benchmark is to test explicit Runge-Kutta methods on the Enr
```julia
using OrdinaryDiffEq, ParameterizedFunctions, ODEInterface,
ODEInterfaceDiffEq, LSODA, Sundials, DiffEqDevTools,
StaticArrays
StaticArrays, OrdinaryDiffEqSIMDRK
using Plots
gr()

Expand All @@ -21,17 +21,14 @@ abstols = 1.0 ./ 10.0 .^ (6:13)
reltols = 1.0 ./ 10.0 .^ (3:10)
```

### SIMD Algorithms (Currently Disabled)

Note: The SIMD RK methods will be added once the OrdinaryDiffEqSIMDRK package is publicly available.
### SIMD Algorithms

```julia
# simdrkalgs = [
# Dict(:alg=>MER5v2()),
# Dict(:alg=>MER6v2()),
# Dict(:alg=>RK6v4())
# ]
simdrkalgs = []
simdrkalgs = [
Dict(:alg=>MER5v2()),
Dict(:alg=>MER6v2()),
Dict(:alg=>RK6v4())
]
```

### Low Order Setup
Expand Down
7 changes: 5 additions & 2 deletions benchmarks/NonStiffODE/FitzhughNagumo_wpd.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The purpose of this is to see how the errors scale on a standard nonlinear probl
```julia
using OrdinaryDiffEq, ParameterizedFunctions, ODEInterface,
ODEInterfaceDiffEq, LSODA, Sundials, DiffEqDevTools,
StaticArrays
StaticArrays, OrdinaryDiffEqSIMDRK
using Plots;
gr()

Expand Down Expand Up @@ -46,7 +46,10 @@ setups = [Dict(:alg=>DP5())
Dict(:alg=>Tsit5())
Dict(:alg=>Vern6())
Dict(:alg=>Tsit5(), :prob_choice => 2)
Dict(:alg=>Vern6(), :prob_choice => 2)]
Dict(:alg=>Vern6(), :prob_choice => 2)
Dict(:alg=>MER5v2(), :prob_choice => 2)
Dict(:alg=>MER6v2(), :prob_choice => 2)
Dict(:alg=>RK6v4(), :prob_choice => 2)]
wp = WorkPrecisionSet(probs, abstols, reltols, setups; appxsol = test_sol,
save_everystep = false, numruns = 100, maxiters = 1000)
plot(wp)
Expand Down
7 changes: 5 additions & 2 deletions benchmarks/NonStiffODE/LotkaVolterra_wpd.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The purpose of this problem is to test the performance on easy problems. Since i

```julia
using OrdinaryDiffEq, ParameterizedFunctions, ODEInterfaceDiffEq, LSODA,
Sundials, DiffEqDevTools, StaticArrays
Sundials, DiffEqDevTools, StaticArrays, OrdinaryDiffEqSIMDRK

f = @ode_def LotkaVolterra begin
dx = a*x - b*x*y
Expand Down Expand Up @@ -43,7 +43,10 @@ setups = [Dict(:alg=>DP5())
Dict(:alg=>Tsit5())
Dict(:alg=>Vern6())
Dict(:alg=>Tsit5(), :prob_choice => 2)
Dict(:alg=>Vern6(), :prob_choice => 2)]
Dict(:alg=>Vern6(), :prob_choice => 2)
Dict(:alg=>MER5v2(), :prob_choice => 2)
Dict(:alg=>MER6v2(), :prob_choice => 2)
Dict(:alg=>RK6v4(), :prob_choice => 2)]
wp = WorkPrecisionSet(probs, abstols, reltols, setups; appxsol = test_sol,
save_everystep = false, maxiters = 10000, numruns = 100)
plot(wp)
Expand Down
44 changes: 34 additions & 10 deletions benchmarks/NonStiffODE/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

julia_version = "1.10.10"
manifest_format = "2.0"
project_hash = "65282984342ab67ee881191028a5586e6f0b8834"
project_hash = "fedc28d1f200e9777f20b0ae68e6b540ef1f551b"

[[deps.ADTypes]]
git-tree-sha1 = "60665b326b75db6517939d0e1875850bc4a54368"
Expand Down Expand Up @@ -367,10 +367,10 @@ uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
version = "1.9.1"

[[deps.DiffEqBase]]
deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "TruncatedStacktraces"]
git-tree-sha1 = "1b1e070e57681d1176d99a5ec455717e24686612"
deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "TruncatedStacktraces"]
git-tree-sha1 = "529087a10b502502201c7bf4e8769e40d7c15a17"
uuid = "2b5f629d-d688-5b77-993f-72d75c75574e"
version = "6.183.2"
version = "6.184.0"

[deps.DiffEqBase.extensions]
DiffEqBaseCUDAExt = "CUDA"
Expand Down Expand Up @@ -560,9 +560,9 @@ version = "1.6.0"

[[deps.DynamicPolynomials]]
deps = ["Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Reexport", "Test"]
git-tree-sha1 = "98c4bb95af37e5d980129261fdd6dab0392c6607"
git-tree-sha1 = "ca693f8707a77a0e365d49fe4622203b72b6cf1d"
uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07"
version = "0.6.2"
version = "0.6.3"

[[deps.DynamicQuantities]]
deps = ["DispatchDoctor", "PrecompileTools", "TestItems", "Tricks"]
Expand Down Expand Up @@ -884,6 +884,12 @@ git-tree-sha1 = "9e13b8d8b1367d9692a90ea4711b4278e4755c32"
uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72"
version = "0.5.3"

[[deps.HostCPUFeatures]]
deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"]
git-tree-sha1 = "8e070b599339d622e9a081d17230d74a5c473293"
uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0"
version = "0.1.17"

[[deps.HypergeometricFunctions]]
deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"]
git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec"
Expand All @@ -892,9 +898,9 @@ version = "0.3.28"

[[deps.IJulia]]
deps = ["Base64", "Conda", "Dates", "InteractiveUtils", "JSON", "Logging", "Markdown", "Pkg", "PrecompileTools", "Printf", "REPL", "Random", "SHA", "Sockets", "UUIDs", "ZMQ"]
git-tree-sha1 = "2004107fe26a14a37c7bd9b51c006809b177b913"
git-tree-sha1 = "66b1f8d8b870814a079da381dd20416c53e73839"
uuid = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
version = "1.30.0"
version = "1.30.1"

[[deps.IfElse]]
git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1"
Expand Down Expand Up @@ -1728,6 +1734,12 @@ git-tree-sha1 = "6b941dba1c669f8dbb24faf951e5ec8665ff5019"
uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf"
version = "1.6.0"

[[deps.OrdinaryDiffEqSIMDRK]]
deps = ["MuladdMacro", "OrdinaryDiffEqCore", "Reexport", "SLEEFPirates", "Static", "UnPack", "VectorizationBase"]
git-tree-sha1 = "fb521b8b352d534b7ac2558e8ffda9e2d3378090"
uuid = "dc97f408-7a72-40e4-9b0d-228a53b292f8"
version = "1.1.0"

[[deps.OrdinaryDiffEqSSPRK]]
deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"]
git-tree-sha1 = "af955c61407631d281dd4c2e8331cdfea1af49be"
Expand Down Expand Up @@ -2075,11 +2087,17 @@ git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c"
uuid = "94e857df-77ce-4151-89e5-788b33177be4"
version = "0.1.0"

[[deps.SLEEFPirates]]
deps = ["IfElse", "Static", "VectorizationBase"]
git-tree-sha1 = "456f610ca2fbd1c14f5fcf31c6bfadc55e7d66e0"
uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa"
version = "0.6.43"

[[deps.SciMLBase]]
deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"]
git-tree-sha1 = "a06d451a6d0fa6e6da34d047d61af8beb187b0f1"
git-tree-sha1 = "33786c33502a6652fba239d3062ccc5e4cdd30c4"
uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
version = "2.112.0"
version = "2.114.0"

[deps.SciMLBase.extensions]
SciMLBaseChainRulesCoreExt = "ChainRulesCore"
Expand Down Expand Up @@ -2561,6 +2579,12 @@ git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78"
uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d"
version = "0.2.0"

[[deps.VectorizationBase]]
deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"]
git-tree-sha1 = "4ab62a49f1d8d9548a1c8d1a75e5f55cf196f64e"
uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f"
version = "0.21.71"

[[deps.VersionParsing]]
git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868"
uuid = "81def892-9a0e-5fdd-b105-ffc91e053289"
Expand Down
5 changes: 3 additions & 2 deletions benchmarks/NonStiffODE/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
IfElse = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
LSODA = "7f56f5a3-f504-529b-bc02-0b1fe5e64312"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
ODEInterface = "54ca160b-1b9f-5127-a996-1867f4bc2a2c"
ODEInterfaceDiffEq = "09606e27-ecf5-54fc-bb29-004bd9f985bf"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
OrdinaryDiffEqSIMDRK = "dc97f408-7a72-40e4-9b0d-228a53b292f8"
ParameterizedFunctions = "65888b18-ceab-5e60-b2b9-181511a3b968"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Expand All @@ -24,7 +25,7 @@ LSODA = "0.7"
ModelingToolkit = "9"
ODEInterface = "0.5"
ODEInterfaceDiffEq = "3.10"
OrdinaryDiffEq = "6.19"
OrdinaryDiffEq = "6"
ParameterizedFunctions = "5.3"
Plots = "1.4"
SciMLBenchmarks = "0.1"
Expand Down
7 changes: 5 additions & 2 deletions benchmarks/NonStiffODE/RigidBody_wpd.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ author: Chris Rackauckas

```julia
using OrdinaryDiffEq, ParameterizedFunctions, ODEInterfaceDiffEq, LSODA,
Sundials, DiffEqDevTools, StaticArrays
Sundials, DiffEqDevTools, StaticArrays, OrdinaryDiffEqSIMDRK

k(t) = 0.25*sin(t)^2

Expand Down Expand Up @@ -40,7 +40,10 @@ setups = [Dict(:alg=>DP5())
Dict(:alg=>Tsit5())
Dict(:alg=>Vern6())
Dict(:alg=>Tsit5(), :prob_choice => 2)
Dict(:alg=>Vern6(), :prob_choice => 2)]
Dict(:alg=>Vern6(), :prob_choice => 2)
Dict(:alg=>MER5v2(), :prob_choice => 2)
Dict(:alg=>MER6v2(), :prob_choice => 2)
Dict(:alg=>RK6v4(), :prob_choice => 2)]
wp = WorkPrecisionSet(probs, abstols, reltols, setups; appxsol = test_sol,
save_everystep = true, numruns = 100, maxiters = 10000)
plot(wp)
Expand Down
9 changes: 6 additions & 3 deletions benchmarks/NonStiffODE/linear_wpd.jmd
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ rapid development has its advantages.
## Setup

```julia
using OrdinaryDiffEq, Sundials, DiffEqDevTools, Plots, ODEInterfaceDiffEq, LSODA
using OrdinaryDiffEq, Sundials, DiffEqDevTools, Plots, ODEInterfaceDiffEq, LSODA, OrdinaryDiffEqSIMDRK
using Random
Random.seed!(123)
gr()
Expand Down Expand Up @@ -56,9 +56,12 @@ setups = [Dict(:alg=>DP5())
Dict(:alg=>ode45())
Dict(:alg=>dopri5())
Dict(:alg=>ARKODE(Sundials.Explicit(), etable = Sundials.DORMAND_PRINCE_7_4_5))
Dict(:alg=>Tsit5())]
Dict(:alg=>Tsit5())
Dict(:alg=>MER5v2())
Dict(:alg=>MER6v2())
Dict(:alg=>RK6v4())]
solnames = ["OrdinaryDiffEq"; "ODE"; "ODEInterface"; "Sundials ARKODE";
"OrdinaryDiffEq Tsit5"]
"OrdinaryDiffEq Tsit5"; "MER5v2"; "MER6v2"; "RK6v4"]
wp = WorkPrecisionSet(
prob, abstols, reltols, setups; names = solnames, save_everystep = false, numruns = 100)
plot(wp)
Expand Down
Loading