SciML / SciML/SimpleDiffEq.jl

Small overhead checking benchmarks

Open
#36 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
23
Forks
13
Avg merge
5h 16m
Merged PRs (30d)
9

Description


using OrdinaryDiffEq, StochasticDiffEq, BenchmarkTools, SimpleDiffEq, BridgeDiffEq, StaticArrays

u0=1/2
f(u,p,t) = u
g(u,p,t) = u
dt = 1/2^(4)
tspan = (0.0,1.0)

prob = ODEProblem(f,u0,(0.0,1.0))
@btime sol = solve(prob,BridgeBS3(),dt=dt)
@btime sol = solve(prob,BS3(),dt=dt,adaptive=false,dense=false)

prob = ODEProblem(f,u0,(0.0,100.0))
@btime sol = solve(prob,BridgeBS3(),dt=dt)
@btime sol = solve(prob,BS3(),dt=dt,adaptive=false,dense=false)

prob = SDEProblem(f,g,u0,(0.0,1.0))
@btime sol = solve(prob,EM(),dt=dt)
@btime sol = solve(prob,SimpleEM(),dt=dt)
@btime sol = solve(prob,BridgeEuler(),dt=dt)

prob = SDEProblem(f,g,u0,(0.0,100.0))
@btime sol = solve(prob,EM(),dt=dt)
@btime sol = solve(prob,SimpleEM(),dt=dt)
@btime sol = solve(prob,BridgeEuler(),dt=dt)

u0 = @SVector [2.0,3.0]
prob = ODEProblem(f,u0,(0.0,1.0))
@btime sol = solve(prob,BridgeBS3(),dt=dt)
@btime sol = solve(prob,BS3(),dt=dt,adaptive=false,dense=false)

prob = SDEProblem(f,g,u0,(0.0,1.0))
@btime sol = solve(prob,EM(),dt=dt)
@btime sol = solve(prob,SimpleEM(),dt=dt)
@btime sol = solve(prob,BridgeEuler(),dt=dt)

prob = SDEProblem(f,g,u0,(0.0,100.0))
@btime sol = solve(prob,EM(),dt=dt)
@btime sol = solve(prob,SimpleEM(),dt=dt)
@btime sol = solve(prob,BridgeEuler(),dt=dt)


function lorenzoop(u,p,t)
 SA[10.0(u[2]-u[1]),u[1]*(28.0-u[3]) - u[2],u[1]*u[2] - (8/3)*u[3]]
end
u0 = SA[1.0;0.0;0.0]
tspan = (0.0,100.0)
prob = ODEProblem(lorenzoop,u0,tspan)

@btime sol = solve(prob,BridgeBS3(),dt=dt)
@btime sol = solve(prob,BS3(),dt=dt,adaptive=false,dense=false)

@btime sol = solve(prob,Tsit5(),dt=dt,adaptive=false,dense=false)
@btime sol = solve(prob,SimpleTsit5(),dt=dt)


function σ_lorenz(u,p,t)
 SA[3.0,3.0,3.0]
end

prob = SDEProblem(lorenzoop,σ_lorenz,u0,(0.0,100.0))
dt = 1/2^6
@btime sol = solve(prob,EM(),dt=dt)
@btime sol = solve(prob,SimpleEM(),dt=dt)
@btime sol = solve(prob,BridgeEuler(),dt=dt)


Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the supplied Julia BenchmarkTools script, which compares OrdinaryDiffEq, StochasticDiffEq, SimpleDiffEq, and BridgeDiffEq solvers across scalar, static-array, ODE, and SDE cases. The issue names no source file, test, expected result, or completion condition, so first determine what overhead is being reported and which comparison needs follow-up.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.