Skip to content

Conversation

ChrisRackauckas
Copy link
Member

This can be used in order to test correctness and differences with the nlstep interface as it should exactly match the NonlinearSolveAlg

This can be used in order to test correctness and differences with the nlstep interface as it should exactly match the NonlinearSolveAlg
Copy link
Contributor

github-actions bot commented Aug 6, 2025

Benchmark Results (Julia vlts)

Time benchmarks
master 610e13e... master / 610e13e...
ODEProblem 0.0823 ± 0.0061 s 0.0817 ± 0.0059 s 1.01 ± 0.1
init 0.0604 ± 0.0017 ms 0.0615 ± 0.0017 ms 0.983 ± 0.039
large_parameter_init/ODEProblem 0.693 ± 0.009 s 0.697 ± 0.0069 s 0.995 ± 0.016
large_parameter_init/init 0.111 ± 0.0026 ms 0.113 ± 0.003 ms 0.984 ± 0.035
mtkcompile 0.0346 ± 0.0005 s 0.0342 ± 0.00063 s 1.01 ± 0.024
time_to_load 4.81 ± 0.042 s 4.82 ± 0.015 s 0.997 ± 0.0092
Memory benchmarks
master 610e13e... master / 610e13e...
ODEProblem 0.588 M allocs: 20 MB 0.588 M allocs: 20 MB 1
init 0.908 k allocs: 0.0479 MB 0.908 k allocs: 0.0479 MB 1
large_parameter_init/ODEProblem 4.61 M allocs: 0.176 GB 4.61 M allocs: 0.176 GB 1
large_parameter_init/init 1.75 k allocs: 0.0874 MB 1.75 k allocs: 0.0874 MB 1
mtkcompile 0.233 M allocs: 8.6 MB 0.233 M allocs: 8.6 MB 1
time_to_load 0.153 k allocs: 14.5 kB 0.153 k allocs: 14.5 kB 1

Copy link
Contributor

github-actions bot commented Aug 6, 2025

Benchmark Results (Julia v1)

Time benchmarks
master 610e13e... master / 610e13e...
ODEProblem 0.0806 ± 0.006 s 0.0824 ± 0.0051 s 0.979 ± 0.095
init 0.0568 ± 0.012 ms 0.0569 ± 0.012 ms 0.999 ± 0.3
large_parameter_init/ODEProblem 0.73 ± 0.023 s 0.709 ± 0.016 s 1.03 ± 0.04
large_parameter_init/init 0.0994 ± 0.011 ms 0.101 ± 0.011 ms 0.986 ± 0.15
mtkcompile 0.0338 ± 0.0012 s 0.034 ± 0.0011 s 0.995 ± 0.048
time_to_load 4.75 ± 0.087 s 4.87 ± 0.086 s 0.976 ± 0.025
Memory benchmarks
master 610e13e... master / 610e13e...
ODEProblem 0.578 M allocs: 18.8 MB 0.578 M allocs: 18.8 MB 1
init 0.815 k allocs: 0.0318 MB 0.815 k allocs: 0.0318 MB 1
large_parameter_init/ODEProblem 4.68 M allocs: 0.168 GB 4.68 M allocs: 0.168 GB 1
large_parameter_init/init 1.66 k allocs: 0.0712 MB 1.66 k allocs: 0.0712 MB 1
mtkcompile 0.232 M allocs: 8.04 MB 0.232 M allocs: 8.04 MB 1
time_to_load 0.159 k allocs: 11.2 kB 0.159 k allocs: 11.2 kB 1

@@ -3,7 +3,7 @@
t = nothing, eval_expression = false, eval_module = @__MODULE__, sparse = false,
steady_state = false, checkbounds = false, sparsity = false, analytic = nothing,
simplify = false, cse = true, initialization_data = nothing, expression = Val{false},
check_compatibility = true, nlstep = false, kwargs...) where {iip, spec}
check_compatibility = true, nlstep = false, nlstep_compile = true, kwargs...) where {iip, spec}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[JuliaFormatter] reported by reviewdog 🐶

Suggested change
check_compatibility = true, nlstep = false, nlstep_compile = true, kwargs...) where {iip, spec}
check_compatibility = true, nlstep = false, nlstep_compile = true, kwargs...) where {
iip, spec}

@@ -1,5 +1,5 @@
function generate_ODENLStepData(sys::System, u0, p, mm = calculate_massmatrix(sys))
nlsys, outer_tmp, inner_tmp = inner_nlsystem(sys, mm)
function generate_ODENLStepData(sys::System, u0, p, mm = calculate_massmatrix(sys), nlstep_compile::Bool = true)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[JuliaFormatter] reported by reviewdog 🐶

Suggested change
function generate_ODENLStepData(sys::System, u0, p, mm = calculate_massmatrix(sys), nlstep_compile::Bool = true)
function generate_ODENLStepData(
sys::System, u0, p, mm = calculate_massmatrix(sys), nlstep_compile::Bool = true)

@ChrisRackauckas ChrisRackauckas merged commit f454584 into master Aug 7, 2025
94 of 105 checks passed
@ChrisRackauckas ChrisRackauckas deleted the nlstep_compile branch August 7, 2025 01:45
@ChrisRackauckas
Copy link
Member Author

@oscardssmith

@oscardssmith
Copy link
Member

shouldn't this be labeled nlstep_simplify?

@ChrisRackauckas
Copy link
Member Author

Well we call it mtkcompile in v10, not structural_simplify. It should only be internal though, I don't think it should be documented since there isn't a user level reason to run nlstep without simplification.

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