Julia DifferentialEquations

Setup

Install DiffEq Packages

VERSION
0.4s
Julia DifferentialEquations (Julia)
v"1.5.2"
]up
12.6s
Julia DifferentialEquations (Julia)
]add DifferentialEquations BoundaryValueDiffEq DelayDiffEq DiffEqBase DiffEqCallbacks DiffEqFinancial DiffEqJump DiffEqNoiseProcess DiffEqPhysics DimensionalPlotRecipes OrdinaryDiffEq SteadyStateDiffEq StochasticDiffEq
18.2s
Julia DifferentialEquations (Julia)
]build
33.7s
Julia DifferentialEquations (Julia)
]precompile
625.8s
Julia DifferentialEquations (Julia)

Build a new System Image

Precompilation code in a Code Listing, mounted as a file to the runtime.

pc_pkgs = "Parameters, GR, Plots, StatsBase, StatsPlots, WGLMakie, ProgressMeter, BenchmarkTools, DifferentialEquations, BoundaryValueDiffEq, DelayDiffEq, DiffEqBase, DiffEqCallbacks, DiffEqFinancial, DiffEqJump, DiffEqNoiseProcess, DiffEqPhysics, DimensionalPlotRecipes, OrdinaryDiffEq, SteadyStateDiffEq, StochasticDiffEq"
for pkg in split(pc_pkgs, ",")
  pkg = String(strip(pkg))
  ps = Base.find_package(pkg)
  if !isnothing(ps)
    psym = Symbol(pkg)
    eval(:(using $psym))
    try
      include(abspath(joinpath(dirname(ps), "../test/runtests.jl")))
    catch; end
  end
end
Plots.plot([1,2,3])
precompile.jl
Julia

Target Broadwell CPUs, as those are the oldest we could possibly get allocated on GCE.

using PackageCompiler
pc_pkgs = "Parameters, GR, Plots, StatsBase, StatsPlots, WGLMakie, ProgressMeter, BenchmarkTools, DifferentialEquations, BoundaryValueDiffEq, DelayDiffEq, DiffEqBase, DiffEqCallbacks, DiffEqFinancial, DiffEqJump, DiffEqNoiseProcess, DiffEqPhysics, DimensionalPlotRecipes, OrdinaryDiffEq, SteadyStateDiffEq, StochasticDiffEq"
create_sysimage([Symbol(String(strip(pkg))) for pkg in split(pc_pkgs, ",")],
  replace_default=true,
  precompile_execution_file="/root/precompile.jl",
  cpu_target="broadwell")
1657.4s
Julia DifferentialEquations (Julia)

Test

"$VERSION"
0.7s
Test DiffEq (Julia)
Julia DifferentialEquations
"1.5.2"

Should be fast:

using Parameters, GR, Plots, StatsBase, StatsPlots, WGLMakie, ProgressMeter, BenchmarkTools, DifferentialEquations, BoundaryValueDiffEq, DelayDiffEq, DiffEqBase, DiffEqCallbacks, DiffEqFinancial, DiffEqJump, DiffEqNoiseProcess, DiffEqPhysics, DimensionalPlotRecipes, OrdinaryDiffEq, SteadyStateDiffEq, StochasticDiffEq
0.2s
Test DiffEq (Julia)
Julia DifferentialEquations
Runtimes (2)