Core benchmark
Ubuntu Latest
This benchmark suite evaluates 14 optimal control problems on a standard CPU platform using GitHub Actions runners.
Benchmark Configuration:
- Solvers: Ipopt and MadNLP
- Models: JuMP, ADNLPModels, ExaModels (CPU)
- Grid sizes: 200, 500, 1000 discretisation points
- Discretisation: Trapeze method
- Tolerance: 1e-6
- Ipopt strategy: Adaptive barrier parameter
- Limits: 1000 iterations max, 500s wall time
This configuration focuses on CPU-based solvers and provides a comprehensive comparison across different modelling frameworks.
🖥️ Environment
📅 Timestamp : 2025-11-09 00:25:11 UTC
🔧 Julia version : 1.11.7
💻 OS : Linux
🖥️ Machine : runnervmw9dnmYou can download the exact environment used for this benchmark:
📦 Project.toml - Package dependencies
📋 Manifest.toml - Complete dependency tree with versions
📜 Benchmark script - Julia script to run the benchmark
These files allow you to reproduce the benchmark environment and results exactly.
ℹ️ Version info
Julia Version 1.11.7
Commit f2b3dbda30a (2025-09-08 12:10 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 4 × AMD EPYC 7763 64-Core Processor
WORD_SIZE: 64
LLVM: libLLVM-16.0.6 (ORCJIT, znver3)
Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)
Environment:
JULIA_PKG_SERVER_REGISTRY_PREFERENCE = eager📦 Package status
Project CTBenchmarks v0.2.3
Status `~/work/CTBenchmarks.jl/CTBenchmarks.jl/Project.toml`
[6e4b80f9] BenchmarkTools v1.6.3
[052768ef] CUDA v5.9.2
[a93c6f00] DataFrames v1.8.1
[b6b21f68] Ipopt v1.12.1
[682c06a0] JSON v1.2.1
[4076af6c] JuMP v1.29.2
[d72a61cc] MadNLPGPU v0.7.16
[3b83494e] MadNLPMumps v0.5.1
[f4238b75] NLPModelsIpopt v0.11.0
[5f98b655] OptimalControl v1.1.6
[59046045] OptimalControlProblems v0.3.2
[bd369af6] Tables v1.12.1
[ade2ca70] Dates v1.11.0
[b77e0a4c] InteractiveUtils v1.11.0
[44cfe95a] Pkg v1.11.0
[de0858da] Printf v1.11.0
[6462fe0b] Sockets v1.11.0📚 Complete manifest
Project CTBenchmarks v0.2.3
Status `~/work/CTBenchmarks.jl/CTBenchmarks.jl/Manifest.toml`
[54578032] ADNLPModels v0.8.13
[47edcb42] ADTypes v1.18.0
[14f7f29c] AMD v0.5.3
[621f4979] AbstractFFTs v1.5.0
[79e6a3ab] Adapt v4.4.0
[a9b6321e] Atomix v1.1.2
[13072b0f] AxisAlgorithms v1.1.0
[ab4f0b2a] BFloat16s v0.6.0
[6e4b80f9] BenchmarkTools v1.6.3
[fa961155] CEnum v0.5.0
⌃ [54762871] CTBase v0.16.2
[790bbbee] CTDirect v0.17.4
[1c39547c] CTFlows v0.8.9
[34c4fa32] CTModels v0.6.9
[32681960] CTParser v0.7.1
[052768ef] CUDA v5.9.2
[1af6417a] CUDA_Runtime_Discovery v1.0.0
[45b445bb] CUDSS v0.6.1
[d360d2e6] ChainRulesCore v1.26.0
[523fee87] CodecBzip2 v0.8.5
[944b1d66] CodecZlib v0.7.8
[3da002f7] ColorTypes v0.12.1
[5ae59095] Colors v0.13.1
[38540f10] CommonSolve v0.2.4
[bbf7d656] CommonSubexpressions v0.3.1
[34da2185] Compat v4.18.1
[a8cc5b0e] Crayons v4.1.1
[9a962f9c] DataAPI v1.16.0
[a93c6f00] DataFrames v1.8.1
[864edb3b] DataStructures v0.19.3
[e2d170a0] DataValueInterfaces v1.0.0
[163ba53b] DiffResults v1.1.0
[b552c78f] DiffRules v1.15.1
[ffbed154] DocStringExtensions v0.9.5
[1037b233] ExaModels v0.9.2
[e2ba6199] ExprTools v0.1.10
[9aa1b823] FastClosures v0.3.2
[1a297f60] FillArrays v1.15.0
[53c48c17] FixedPointNumbers v0.8.5
[f6369f11] ForwardDiff v1.2.2
[069b7b12] FunctionWrappers v1.1.3
[0c68f7d7] GPUArrays v11.2.6
[46192b85] GPUArraysCore v0.2.0
[61eb1bfa] GPUCompiler v1.7.2
[096a3bc2] GPUToolbox v1.0.0
[34c5aeac] HSL v0.5.1
[076d061b] HashArrayMappedTries v0.2.0
[842dd82b] InlineStrings v1.4.5
[a98d9a8b] Interpolations v0.16.2
[41ab1584] InvertedIndices v1.3.1
[b6b21f68] Ipopt v1.12.1
[92d709cd] IrrationalConstants v0.2.6
[82899510] IteratorInterfaceExtensions v1.0.0
[692b3bcd] JLLWrappers v1.7.1
[682c06a0] JSON v1.2.1
[0f8b85d8] JSON3 v1.14.3
[4076af6c] JuMP v1.29.2
[63c18a36] KernelAbstractions v0.9.39
[40e66cde] LDLFactorizations v0.10.1
[929cbde3] LLVM v9.4.4
[8b046642] LLVMLoopInfo v1.0.0
[b964fa9f] LaTeXStrings v1.4.0
[5c8ed15e] LinearOperators v2.11.0
[2ab3a3ac] LogExpFunctions v0.3.29
[33e6dc65] MKL v0.9.0
[d8e11817] MLStyle v0.4.17
[1914dd2f] MacroTools v0.5.16
[2621e9c9] MadNLP v0.8.12
[d72a61cc] MadNLPGPU v0.7.16
[3b83494e] MadNLPMumps v0.5.1
[b8f27783] MathOptInterface v1.46.0
[2679e427] Metis v1.5.0
[e1d29d7a] Missings v1.2.0
[d8a4904e] MutableArithmetics v1.6.7
[a4795742] NLPModels v0.21.5
[f4238b75] NLPModelsIpopt v0.11.0
[e01155f1] NLPModelsModifiers v0.7.2
[5da4648a] NVTX v1.0.1
[77ba4419] NaNMath v1.1.3
[6fe1bfb0] OffsetArrays v1.17.0
[5f98b655] OptimalControl v1.1.6
[59046045] OptimalControlProblems v0.3.2
[bac558e1] OrderedCollections v1.8.1
[d96e819e] Parameters v0.12.3
[69de0a69] Parsers v2.8.3
[2dfb63ee] PooledArrays v1.4.3
⌅ [aea7be01] PrecompileTools v1.2.1
[21216c6a] Preferences v1.5.0
[08abe8d2] PrettyTables v3.1.0
[be4d8f0f] Quadmath v0.5.13
[74087812] Random123 v1.7.1
[e6cf234a] RandomNumbers v1.6.0
[c84ed2f1] Ratios v0.4.5
[3cdcf5f2] RecipesBase v1.3.4
[189a3867] Reexport v1.2.2
[ae029012] Requires v1.3.1
[37e2e3b7] ReverseDiff v1.16.1
[7e506255] ScopedValues v1.5.0
[6c6a2e73] Scratch v1.3.0
[91c51154] SentinelArrays v1.4.8
[ff4d7338] SolverCore v0.3.8
[a2af1166] SortingAlgorithms v1.2.2
[9f842d2f] SparseConnectivityTracer v1.1.2
[0a514795] SparseMatrixColorings v0.4.23
[276daf66] SpecialFunctions v2.6.1
[90137ffa] StaticArrays v1.9.15
[1e83bf80] StaticArraysCore v1.4.4
[10745b16] Statistics v1.11.1
[892a3eda] StringManipulation v0.4.1
[856f2bd8] StructTypes v1.11.0
[ec057cc2] StructUtils v2.6.0
[3783bdb8] TableTraits v1.0.1
[bd369af6] Tables v1.12.1
[a759f4b9] TimerOutputs v0.5.29
[e689c965] Tracy v0.1.6
[3bb67fe8] TranscodingStreams v0.11.3
[3a884ed6] UnPack v1.0.2
[013be700] UnsafeAtomics v0.3.0
[efce3f68] WoodburyMatrices v1.0.0
[ae81ac8f] ASL_jll v0.1.3+0
[6e34b625] Bzip2_jll v1.0.9+0
[d1e2174e] CUDA_Compiler_jll v0.3.0+0
[4ee394cb] CUDA_Driver_jll v13.0.2+0
[76a88914] CUDA_Runtime_jll v0.19.2+0
[4889d778] CUDSS_jll v0.7.1+0
[017b0a0e] HSL_jll v4.0.4+0
[e33a78d0] Hwloc_jll v2.12.2+0
[1d5cc7b8] IntelOpenMP_jll v2025.2.0+0
[9cc047cb] Ipopt_jll v300.1400.1900+0
[9c1d0b0a] JuliaNVTXCallbacks_jll v0.2.1+0
[dad2f222] LLVMExtra_jll v0.0.38+0
[ad6e5548] LibTracyClient_jll v0.9.1+6
[94ce4f54] Libiconv_jll v1.18.0+0
[d00139f3] METIS_jll v5.1.3+0
[856f044c] MKL_jll v2025.2.0+0
[d7ed1dd3] MUMPS_seq_jll v500.800.100+0
[e98f9f5b] NVTX_jll v3.2.2+0
[656ef2d0] OpenBLAS32_jll v0.3.29+0
[efe28fd5] OpenSpecFun_jll v0.5.6+0
⌅ [319450e9] SPRAL_jll v2025.5.20+0
⌅ [02c8fc9c] XML2_jll v2.13.9+0
[a65dc6b1] Xorg_libpciaccess_jll v0.18.1+0
[1e29f10c] demumble_jll v1.3.0+0
[1317d2d5] oneTBB_jll v2022.0.0+1
[0dad84c5] ArgTools v1.1.2
[56f22d72] Artifacts v1.11.0
[2a0f44e3] Base64 v1.11.0
[ade2ca70] Dates v1.11.0
[8ba89e20] Distributed v1.11.0
[f43a241f] Downloads v1.6.0
[7b1f6079] FileWatching v1.11.0
[9fa8497b] Future v1.11.0
[b77e0a4c] InteractiveUtils v1.11.0
[4af54fe1] LazyArtifacts v1.11.0
[b27032c2] LibCURL v0.6.4
[76f85450] LibGit2 v1.11.0
[8f399da3] Libdl v1.11.0
[37e2e46d] LinearAlgebra v1.11.0
[56ddb016] Logging v1.11.0
[d6f4376e] Markdown v1.11.0
[a63ad114] Mmap v1.11.0
[ca575930] NetworkOptions v1.2.0
[44cfe95a] Pkg v1.11.0
[de0858da] Printf v1.11.0
[9abbd945] Profile v1.11.0
[3fa0cd96] REPL v1.11.0
[9a3f8284] Random v1.11.0
[ea8e919c] SHA v0.7.0
[9e88b42a] Serialization v1.11.0
[1a1011a3] SharedArrays v1.11.0
[6462fe0b] Sockets v1.11.0
[2f01184e] SparseArrays v1.11.0
[f489334b] StyledStrings v1.11.0
[4607b0f0] SuiteSparse
[fa267f1f] TOML v1.0.3
[a4e569a6] Tar v1.10.0
[8dfed614] Test v1.11.0
[cf7118a7] UUIDs v1.11.0
[4ec0a83e] Unicode v1.11.0
[e66e0078] CompilerSupportLibraries_jll v1.1.1+0
[deac9b47] LibCURL_jll v8.6.0+0
[e37daf67] LibGit2_jll v1.7.2+0
[29816b5a] LibSSH2_jll v1.11.0+1
[c8ffd9c3] MbedTLS_jll v2.28.6+0
[14a3606d] MozillaCACerts_jll v2023.12.12
[4536629a] OpenBLAS_jll v0.3.27+1
[05823500] OpenLibm_jll v0.8.5+0
[bea87d4a] SuiteSparse_jll v7.7.0+0
[83775a58] Zlib_jll v1.2.13+1
[8e850b90] libblastrampoline_jll v5.11.0+0
[8e850ede] nghttp2_jll v1.59.0+0
[3f19e933] p7zip_jll v17.4.0+2
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`📊 Results
Benchmarks results:
┌─ Problem: beam
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 11.767 ms | iters: 12 | obj: 8.891342e+00 | CPU: 13.08 KiB
│ │ ✓ | adnlp | time: 15.649 ms | iters: 12 | obj: 8.891342e+00 | CPU: 1.84 MiB
│ │ ✓ | exa | time: 11.957 ms | iters: 12 | obj: 8.891342e+00 | CPU: 68.36 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 30.774 ms | iters: 15 | obj: 8.889302e+00 | CPU: 15.89 KiB
│ │ ✓ | adnlp | time: 40.447 ms | iters: 15 | obj: 8.889302e+00 | CPU: 5.50 MiB
│ │ ✓ | exa | time: 29.735 ms | iters: 15 | obj: 8.889302e+00 | CPU: 134.52 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 91.493 ms | iters: 25 | obj: 8.888998e+00 | CPU: 24.36 KiB
│ │ ✓ | adnlp | time: 126.322 ms | iters: 26 | obj: 8.889037e+00 | CPU: 18.03 MiB
│ │ ✓ | exa | time: 91.997 ms | iters: 26 | obj: 8.889037e+00 | CPU: 251.55 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 157.845 ms | iters: 22 | obj: 8.888988e+00 | CPU: 21.83 KiB
│ │ ✓ | adnlp | time: 227.516 ms | iters: 22 | obj: 8.889019e+00 | CPU: 30.83 MiB
│ │ ✓ | exa | time: 150.867 ms | iters: 21 | obj: 8.888958e+00 | CPU: 457.33 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 10.527 ms | iters: 18 | obj: 8.891339e+00 | CPU: 2.02 MiB
│ │ ✓ | adnlp | time: 15.380 ms | iters: 18 | obj: 8.891339e+00 | CPU: 4.38 MiB
│ │ ✓ | exa | time: 10.850 ms | iters: 18 | obj: 8.891339e+00 | CPU: 1.93 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 20.796 ms | iters: 16 | obj: 8.889296e+00 | CPU: 4.00 MiB
│ │ ✓ | adnlp | time: 31.592 ms | iters: 16 | obj: 8.889296e+00 | CPU: 9.26 MiB
│ │ ✓ | exa | time: 21.733 ms | iters: 16 | obj: 8.889296e+00 | CPU: 3.84 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 52.812 ms | iters: 22 | obj: 8.889005e+00 | CPU: 8.93 MiB
│ │ ✓ | adnlp | time: 82.167 ms | iters: 22 | obj: 8.889006e+00 | CPU: 23.14 MiB
│ │ ✓ | exa | time: 55.056 ms | iters: 22 | obj: 8.889005e+00 | CPU: 8.45 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 135.021 ms | iters: 24 | obj: 8.888951e+00 | CPU: 18.65 MiB
│ │ ✓ | adnlp | time: 204.832 ms | iters: 24 | obj: 8.888951e+00 | CPU: 49.09 MiB
│ │ ✓ | exa | time: 139.670 ms | iters: 22 | obj: 8.888951e+00 | CPU: 16.35 MiB
│ └─
└─
┌─ Problem: chain
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 11.274 ms | iters: 6 | obj: 5.068916e+00 | CPU: 13.83 KiB
│ │ ✓ | adnlp | time: 14.360 ms | iters: 6 | obj: 5.068916e+00 | CPU: 3.91 MiB
│ │ ✓ | exa | time: 8.708 ms | iters: 6 | obj: 5.068916e+00 | CPU: 69.03 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 53.889 ms | iters: 13 | obj: 5.068578e+00 | CPU: 29.19 KiB
│ │ ✓ | adnlp | time: 65.018 ms | iters: 13 | obj: 5.068578e+00 | CPU: 19.17 MiB
│ │ ✓ | exa | time: 38.103 ms | iters: 13 | obj: 5.068578e+00 | CPU: 145.53 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 53.605 ms | iters: 6 | obj: 5.068510e+00 | CPU: 13.83 KiB
│ │ ✓ | adnlp | time: 65.051 ms | iters: 6 | obj: 5.068510e+00 | CPU: 19.35 MiB
│ │ ✓ | exa | time: 39.029 ms | iters: 6 | obj: 5.068510e+00 | CPU: 250.28 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 125.834 ms | iters: 5 | obj: 5.068487e+00 | CPU: 11.97 KiB
│ │ ✓ | adnlp | time: 133.694 ms | iters: 5 | obj: 5.068487e+00 | CPU: 33.72 MiB
│ │ ✓ | exa | time: 80.394 ms | iters: 5 | obj: 5.068487e+00 | CPU: 475.81 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 12.321 ms | iters: 6 | obj: 5.068916e+00 | CPU: 6.31 MiB
│ │ ✓ | adnlp | time: 12.127 ms | iters: 6 | obj: 5.068916e+00 | CPU: 5.32 MiB
│ │ ✓ | exa | time: 7.624 ms | iters: 6 | obj: 5.068916e+00 | CPU: 1.71 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 53.280 ms | iters: 13 | obj: 5.068578e+00 | CPU: 15.97 MiB
│ │ ✓ | adnlp | time: 56.490 ms | iters: 13 | obj: 5.068578e+00 | CPU: 22.67 MiB
│ │ ✓ | exa | time: 33.965 ms | iters: 13 | obj: 5.068578e+00 | CPU: 4.21 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 56.379 ms | iters: 6 | obj: 5.068510e+00 | CPU: 32.19 MiB
│ │ ✓ | adnlp | time: 53.383 ms | iters: 6 | obj: 5.068510e+00 | CPU: 24.73 MiB
│ │ ✓ | exa | time: 30.302 ms | iters: 6 | obj: 5.068510e+00 | CPU: 6.74 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 150.769 ms | iters: 5 | obj: 5.068487e+00 | CPU: 61.85 MiB
│ │ ✓ | adnlp | time: 137.379 ms | iters: 5 | obj: 5.068487e+00 | CPU: 43.75 MiB
│ │ ✓ | exa | time: 95.125 ms | iters: 5 | obj: 5.068487e+00 | CPU: 12.72 MiB
│ └─
└─
┌─ Problem: double_oscillator
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 8.071 ms | iters: 4 | obj: 9.103363e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 14.513 ms | iters: 4 | obj: 9.103363e-04 | CPU: 4.44 MiB
│ │ ✓ | exa | time: 9.386 ms | iters: 4 | obj: 9.103363e-04 | CPU: 101.77 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 17.262 ms | iters: 4 | obj: 9.109247e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 32.626 ms | iters: 4 | obj: 9.109247e-04 | CPU: 11.03 MiB
│ │ ✓ | exa | time: 20.981 ms | iters: 4 | obj: 9.109247e-04 | CPU: 212.14 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 32.496 ms | iters: 4 | obj: 9.110179e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 66.809 ms | iters: 4 | obj: 9.110179e-04 | CPU: 22.02 MiB
│ │ ✓ | exa | time: 40.533 ms | iters: 4 | obj: 9.110179e-04 | CPU: 395.52 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 63.873 ms | iters: 4 | obj: 9.110782e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 144.433 ms | iters: 4 | obj: 9.110782e-04 | CPU: 44.00 MiB
│ │ ✓ | exa | time: 79.804 ms | iters: 4 | obj: 9.110782e-04 | CPU: 762.70 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 7.830 ms | iters: 5 | obj: 9.103362e-04 | CPU: 2.93 MiB
│ │ ✓ | adnlp | time: 15.054 ms | iters: 5 | obj: 9.103362e-04 | CPU: 7.10 MiB
│ │ ✓ | exa | time: 8.301 ms | iters: 5 | obj: 9.103362e-04 | CPU: 3.03 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 17.333 ms | iters: 5 | obj: 9.109230e-04 | CPU: 6.80 MiB
│ │ ✓ | adnlp | time: 35.308 ms | iters: 5 | obj: 9.109230e-04 | CPU: 17.06 MiB
│ │ ✓ | exa | time: 19.093 ms | iters: 5 | obj: 9.109230e-04 | CPU: 6.88 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 33.580 ms | iters: 5 | obj: 9.110070e-04 | CPU: 11.30 MiB
│ │ ✓ | adnlp | time: 75.688 ms | iters: 5 | obj: 9.110070e-04 | CPU: 33.65 MiB
│ │ ✓ | exa | time: 37.358 ms | iters: 5 | obj: 9.110070e-04 | CPU: 13.30 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 108.371 ms | iters: 5 | obj: 9.110284e-04 | CPU: 23.67 MiB
│ │ ✓ | adnlp | time: 221.210 ms | iters: 5 | obj: 9.110284e-04 | CPU: 66.84 MiB
│ │ ✓ | exa | time: 153.993 ms | iters: 5 | obj: 9.110284e-04 | CPU: 26.12 MiB
│ └─
└─
┌─ Problem: electric_vehicle
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 5.845 ms | iters: 4 | obj: 1.228699e+03 | CPU: 9.84 KiB
│ │ ✓ | adnlp | time: 8.795 ms | iters: 4 | obj: 1.228699e+03 | CPU: 2.71 MiB
│ │ ✓ | exa | time: 4.540 ms | iters: 4 | obj: 1.228699e+03 | CPU: 58.31 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 12.579 ms | iters: 4 | obj: 1.228599e+03 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 19.698 ms | iters: 4 | obj: 1.228599e+03 | CPU: 6.74 MiB
│ │ ✓ | exa | time: 9.301 ms | iters: 4 | obj: 1.228599e+03 | CPU: 107.38 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 19.339 ms | iters: 3 | obj: 1.228585e+03 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 32.359 ms | iters: 3 | obj: 1.228585e+03 | CPU: 11.14 MiB
│ │ ✓ | exa | time: 14.575 ms | iters: 3 | obj: 1.228585e+03 | CPU: 188.53 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 40.813 ms | iters: 3 | obj: 1.228582e+03 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 68.853 ms | iters: 3 | obj: 1.228582e+03 | CPU: 22.26 MiB
│ │ ✓ | exa | time: 28.126 ms | iters: 3 | obj: 1.228582e+03 | CPU: 352.59 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 6.843 ms | iters: 4 | obj: 1.228699e+03 | CPU: 4.64 MiB
│ │ ✓ | adnlp | time: 7.704 ms | iters: 4 | obj: 1.228699e+03 | CPU: 3.86 MiB
│ │ ✓ | exa | time: 3.776 ms | iters: 4 | obj: 1.228699e+03 | CPU: 1.65 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 15.562 ms | iters: 4 | obj: 1.228599e+03 | CPU: 10.71 MiB
│ │ ✓ | adnlp | time: 17.906 ms | iters: 4 | obj: 1.228599e+03 | CPU: 8.98 MiB
│ │ ✓ | exa | time: 8.129 ms | iters: 4 | obj: 1.228599e+03 | CPU: 3.46 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 27.741 ms | iters: 3 | obj: 1.228585e+03 | CPU: 22.09 MiB
│ │ ✓ | adnlp | time: 29.564 ms | iters: 3 | obj: 1.228585e+03 | CPU: 15.10 MiB
│ │ ✓ | exa | time: 12.869 ms | iters: 3 | obj: 1.228585e+03 | CPU: 6.35 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 79.408 ms | iters: 3 | obj: 1.228582e+03 | CPU: 42.22 MiB
│ │ ✓ | adnlp | time: 87.785 ms | iters: 3 | obj: 1.228582e+03 | CPU: 29.77 MiB
│ │ ✓ | exa | time: 46.777 ms | iters: 3 | obj: 1.228582e+03 | CPU: 12.26 MiB
│ └─
└─
┌─ Problem: glider
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 7.978 s | iters: 305 | obj: 1.248896e+03 | CPU: 573.98 KiB
│ │ ✓ | adnlp | time: 6.620 s | iters: 341 | obj: 1.248896e+03 | CPU: 332.66 MiB
│ │ ✓ | exa | time: 5.553 s | iters: 344 | obj: 1.248896e+03 | CPU: 544.89 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 22.487 s | iters: 675 | obj: 1.247978e+03 | CPU: 1.25 MiB
│ │ ✓ | adnlp | time: 17.184 s | iters: 877 | obj: 1.247978e+03 | CPU: 2.06 GiB
│ │ ✓ | exa | time: 7.170 s | iters: 688 | obj: 1.247978e+03 | CPU: 1012.45 KiB
│ │
│ │ N = 1000
│ │ ✗ | JuMP | time: 71.748 s | iters: 1000 | obj: 4.568775e+02 | CPU: 1.86 MiB
│ │ ✗ | adnlp | time: 46.334 s | iters: 1000 | obj: 4.570726e+02 | CPU: 4.68 GiB
│ │ ✗ | exa | time: 25.182 s | iters: 1000 | obj: 4.551521e+02 | CPU: 1.49 MiB
│ │
│ │ N = 2000
│ │ ✗ | JuMP | time: 155.302 s | iters: 1000 | obj: 6.695914e+02 | CPU: 1.86 MiB
│ │ ✗ | adnlp | time: 129.179 s | iters: 1000 | obj: 7.154264e+02 | CPU: 9.34 GiB
│ │ ✗ | exa | time: 62.186 s | iters: 1000 | obj: 6.512920e+02 | CPU: 1.85 MiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 3.581 s | iters: 321 | obj: 1.248809e+03 | CPU: 72.66 MiB
│ │ ✓ | adnlp | time: 1.556 s | iters: 263 | obj: 1.248809e+03 | CPU: 286.90 MiB
│ │ ✓ | exa | time: 1.011 s | iters: 320 | obj: 1.248809e+03 | CPU: 33.51 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 23.405 s | iters: 690 | obj: 1.247978e+03 | CPU: 254.22 MiB
│ │ ✓ | adnlp | time: 12.093 s | iters: 679 | obj: 1.247978e+03 | CPU: 1.75 GiB
│ │ ✓ | exa | time: 2.719 s | iters: 365 | obj: 1.247978e+03 | CPU: 91.39 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 50.342 s | iters: 726 | obj: 1.247985e+03 | CPU: 516.47 MiB
│ │ ✓ | adnlp | time: 37.519 s | iters: 707 | obj: 1.247985e+03 | CPU: 3.63 GiB
│ │ ✓ | exa | time: 11.157 s | iters: 713 | obj: 1.247985e+03 | CPU: 310.20 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 68.087 s | iters: 476 | obj: 1.247987e+03 | CPU: 837.44 MiB
│ │ ✓ | adnlp | time: 52.426 s | iters: 461 | obj: 1.247987e+03 | CPU: 4.82 GiB
│ │ ✓ | exa | time: 14.346 s | iters: 392 | obj: 1.247987e+03 | CPU: 384.03 MiB
│ └─
└─
┌─ Problem: insurance
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 222.590 ms | iters: 54 | obj: 2.058581e+00 | CPU: 103.47 KiB
│ │ ✓ | adnlp | time: 317.920 ms | iters: 54 | obj: 2.058581e+00 | CPU: 71.58 MiB
│ │ ✓ | exa | time: 181.669 ms | iters: 54 | obj: 2.058581e+00 | CPU: 204.22 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 1.090 s | iters: 101 | obj: 2.059214e+00 | CPU: 190.86 KiB
│ │ ✓ | adnlp | time: 1.406 s | iters: 93 | obj: 2.059214e+00 | CPU: 302.44 MiB
│ │ ✓ | exa | time: 877.079 ms | iters: 106 | obj: 2.059214e+00 | CPU: 438.41 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 2.592 s | iters: 111 | obj: 2.058960e+00 | CPU: 212.19 KiB
│ │ ✓ | adnlp | time: 4.244 s | iters: 128 | obj: 2.059312e+00 | CPU: 831.45 MiB
│ │ ✓ | exa | time: 2.551 s | iters: 132 | obj: 2.059511e+00 | CPU: 767.33 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 10.127 s | iters: 206 | obj: 2.059595e+00 | CPU: 394.30 KiB
│ │ ✓ | adnlp | time: 15.433 s | iters: 192 | obj: 2.059700e+00 | CPU: 2.44 GiB
│ │ ✓ | exa | time: 5.839 s | iters: 167 | obj: 2.059547e+00 | CPU: 1.37 MiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 425.789 ms | iters: 117 | obj: 2.058569e+00 | CPU: 35.63 MiB
│ │ ✓ | adnlp | time: 598.137 ms | iters: 117 | obj: 2.058569e+00 | CPU: 196.21 MiB
│ │ ✓ | exa | time: 317.419 ms | iters: 117 | obj: 2.058569e+00 | CPU: 26.02 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 2.758 s | iters: 252 | obj: 2.059179e+00 | CPU: 137.15 MiB
│ │ ✓ | adnlp | time: 6.258 s | iters: 416 | obj: 2.059179e+00 | CPU: 1.55 GiB
│ │ ✓ | exa | time: 3.085 s | iters: 345 | obj: 2.059179e+00 | CPU: 153.99 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 13.116 s | iters: 534 | obj: 2.059433e+00 | CPU: 501.22 MiB
│ │ ✓ | adnlp | time: 20.753 s | iters: 689 | obj: 2.059433e+00 | CPU: 4.91 GiB
│ │ ✓ | exa | time: 9.072 s | iters: 521 | obj: 2.059433e+00 | CPU: 442.19 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 8.466 s | iters: 156 | obj: 2.059568e+00 | CPU: 391.50 MiB
│ │ ✓ | adnlp | time: 12.734 s | iters: 156 | obj: 2.059568e+00 | CPU: 2.34 GiB
│ │ ✓ | exa | time: 5.935 s | iters: 162 | obj: 2.059568e+00 | CPU: 307.74 MiB
│ └─
└─
┌─ Problem: jackson
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 20.989 ms | iters: 14 | obj: 1.918604e-01 | CPU: 28.70 KiB
│ │ ✓ | adnlp | time: 30.737 ms | iters: 14 | obj: 1.918604e-01 | CPU: 3.86 MiB
│ │ ✓ | exa | time: 21.631 ms | iters: 14 | obj: 1.918604e-01 | CPU: 94.20 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 60.651 ms | iters: 18 | obj: 1.918218e-01 | CPU: 36.14 KiB
│ │ ✓ | adnlp | time: 92.808 ms | iters: 18 | obj: 1.918218e-01 | CPU: 11.97 MiB
│ │ ✓ | exa | time: 62.722 ms | iters: 18 | obj: 1.918218e-01 | CPU: 184.95 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 95.066 ms | iters: 16 | obj: 1.918162e-01 | CPU: 32.42 KiB
│ │ ✓ | adnlp | time: 165.857 ms | iters: 16 | obj: 1.918162e-01 | CPU: 21.45 MiB
│ │ ✓ | exa | time: 101.008 ms | iters: 16 | obj: 1.918162e-01 | CPU: 327.52 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 199.820 ms | iters: 17 | obj: 1.918148e-01 | CPU: 34.28 KiB
│ │ ✓ | adnlp | time: 397.647 ms | iters: 17 | obj: 1.918148e-01 | CPU: 45.23 MiB
│ │ ✓ | exa | time: 209.694 ms | iters: 17 | obj: 1.918148e-01 | CPU: 617.61 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 18.198 ms | iters: 20 | obj: 1.918580e-01 | CPU: 5.21 MiB
│ │ ✓ | adnlp | time: 33.125 ms | iters: 20 | obj: 1.918580e-01 | CPU: 9.00 MiB
│ │ ✓ | exa | time: 19.222 ms | iters: 20 | obj: 1.918580e-01 | CPU: 4.77 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 40.389 ms | iters: 19 | obj: 1.918158e-01 | CPU: 11.93 MiB
│ │ ✓ | adnlp | time: 74.488 ms | iters: 19 | obj: 1.918158e-01 | CPU: 20.73 MiB
│ │ ✓ | exa | time: 42.682 ms | iters: 19 | obj: 1.918158e-01 | CPU: 10.83 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 81.774 ms | iters: 20 | obj: 1.918046e-01 | CPU: 25.23 MiB
│ │ ✓ | adnlp | time: 161.349 ms | iters: 20 | obj: 1.918046e-01 | CPU: 42.61 MiB
│ │ ✓ | exa | time: 87.524 ms | iters: 20 | obj: 1.918046e-01 | CPU: 21.63 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 204.083 ms | iters: 20 | obj: 1.917922e-01 | CPU: 43.28 MiB
│ │ ✓ | adnlp | time: 432.308 ms | iters: 20 | obj: 1.917922e-01 | CPU: 84.62 MiB
│ │ ✓ | exa | time: 236.099 ms | iters: 20 | obj: 1.917922e-01 | CPU: 42.69 MiB
│ └─
└─
┌─ Problem: robbins
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 15.710 ms | iters: 12 | obj: 1.962627e+01 | CPU: 13.36 KiB
│ │ ✓ | adnlp | time: 21.392 ms | iters: 12 | obj: 1.962627e+01 | CPU: 2.29 MiB
│ │ ✓ | exa | time: 15.599 ms | iters: 12 | obj: 1.962627e+01 | CPU: 87.92 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 39.183 ms | iters: 14 | obj: 1.946667e+01 | CPU: 15.05 KiB
│ │ ✓ | adnlp | time: 56.252 ms | iters: 14 | obj: 1.946667e+01 | CPU: 6.47 MiB
│ │ ✓ | exa | time: 40.840 ms | iters: 14 | obj: 1.946667e+01 | CPU: 176.80 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 107.662 ms | iters: 22 | obj: 1.944023e+01 | CPU: 21.83 KiB
│ │ ✓ | adnlp | time: 162.296 ms | iters: 22 | obj: 1.944023e+01 | CPU: 19.31 MiB
│ │ ✓ | exa | time: 113.840 ms | iters: 22 | obj: 1.944023e+01 | CPU: 329.48 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 288.776 ms | iters: 30 | obj: 1.943391e+01 | CPU: 28.58 KiB
│ │ ✓ | adnlp | time: 474.836 ms | iters: 30 | obj: 1.943391e+01 | CPU: 51.38 MiB
│ │ ✓ | exa | time: 307.083 ms | iters: 30 | obj: 1.943391e+01 | CPU: 626.80 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 22.260 ms | iters: 29 | obj: 1.962627e+01 | CPU: 2.97 MiB
│ │ ✓ | adnlp | time: 35.318 ms | iters: 29 | obj: 1.962627e+01 | CPU: 7.52 MiB
│ │ ✓ | exa | time: 23.048 ms | iters: 29 | obj: 1.962627e+01 | CPU: 2.72 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 47.420 ms | iters: 27 | obj: 1.946665e+01 | CPU: 6.15 MiB
│ │ ✓ | adnlp | time: 77.779 ms | iters: 27 | obj: 1.946665e+01 | CPU: 16.98 MiB
│ │ ✓ | exa | time: 49.761 ms | iters: 27 | obj: 1.946665e+01 | CPU: 5.76 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 155.632 ms | iters: 47 | obj: 1.944023e+01 | CPU: 16.46 MiB
│ │ ✓ | adnlp | time: 265.447 ms | iters: 47 | obj: 1.944023e+01 | CPU: 53.36 MiB
│ │ ✓ | exa | time: 161.009 ms | iters: 47 | obj: 1.944023e+01 | CPU: 15.11 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 312.790 ms | iters: 40 | obj: 1.943400e+01 | CPU: 27.49 MiB
│ │ ✓ | adnlp | time: 557.994 ms | iters: 40 | obj: 1.943400e+01 | CPU: 91.78 MiB
│ │ ✓ | exa | time: 354.771 ms | iters: 40 | obj: 1.943400e+01 | CPU: 26.62 MiB
│ └─
└─
┌─ Problem: robot
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 91.353 ms | iters: 18 | obj: 9.141396e+00 | CPU: 36.14 KiB
│ │ ✗ | adnlp : ERROR: DomainError(Inf, "sincos(x) is only defined for finite x.")
│ │ ✓ | exa | time: 66.329 ms | iters: 18 | obj: 9.141396e+00 | CPU: 180.83 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 302.340 ms | iters: 21 | obj: 9.141008e+00 | CPU: 41.72 KiB
│ │ ✓ | adnlp | time: 357.963 ms | iters: 21 | obj: 9.141008e+00 | CPU: 36.89 MiB
│ │ ✓ | exa | time: 189.892 ms | iters: 21 | obj: 9.141008e+00 | CPU: 373.55 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 1.072 s | iters: 33 | obj: 9.141261e+00 | CPU: 65.59 KiB
│ │ ✓ | adnlp | time: 1.210 s | iters: 31 | obj: 9.142037e+00 | CPU: 106.70 MiB
│ │ ✓ | exa | time: 588.149 ms | iters: 29 | obj: 9.141600e+00 | CPU: 699.23 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 2.177 s | iters: 28 | obj: 9.141089e+00 | CPU: 54.73 KiB
│ │ ✓ | adnlp | time: 2.512 s | iters: 28 | obj: 9.141089e+00 | CPU: 192.33 MiB
│ │ ✓ | exa | time: 1.355 s | iters: 28 | obj: 9.141089e+00 | CPU: 1.30 MiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 101.727 ms | iters: 22 | obj: 9.141450e+00 | CPU: 23.70 MiB
│ │ ✓ | adnlp | time: 133.619 ms | iters: 22 | obj: 9.141450e+00 | CPU: 24.48 MiB
│ │ ✓ | exa | time: 66.466 ms | iters: 22 | obj: 9.141450e+00 | CPU: 8.04 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 353.732 ms | iters: 28 | obj: 9.141126e+00 | CPU: 61.76 MiB
│ │ ✓ | adnlp | time: 409.501 ms | iters: 28 | obj: 9.141126e+00 | CPU: 67.88 MiB
│ │ ✓ | exa | time: 213.134 ms | iters: 28 | obj: 9.141126e+00 | CPU: 22.21 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 868.965 ms | iters: 27 | obj: 9.141204e+00 | CPU: 124.54 MiB
│ │ ✓ | adnlp | time: 875.694 ms | iters: 28 | obj: 9.142465e+00 | CPU: 133.60 MiB
│ │ ✓ | exa | time: 518.972 ms | iters: 27 | obj: 9.141204e+00 | CPU: 42.55 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 3.687 s | iters: 43 | obj: 9.141499e+00 | CPU: 322.29 MiB
│ │ ✓ | adnlp | time: 3.310 s | iters: 43 | obj: 9.141584e+00 | CPU: 449.69 MiB
│ │ ✓ | exa | time: 2.229 s | iters: 44 | obj: 9.141503e+00 | CPU: 159.82 MiB
│ └─
└─
┌─ Problem: rocket
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 41.514 ms | iters: 16 | obj: 1.012836e+00 | CPU: 32.42 KiB
│ │ ✓ | adnlp | time: 57.574 ms | iters: 16 | obj: 1.012836e+00 | CPU: 15.20 MiB
│ │ ✓ | exa | time: 24.305 ms | iters: 16 | obj: 1.012836e+00 | CPU: 98.89 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 107.641 ms | iters: 17 | obj: 1.012836e+00 | CPU: 34.28 KiB
│ │ ✓ | adnlp | time: 149.739 ms | iters: 17 | obj: 1.012836e+00 | CPU: 39.89 MiB
│ │ ✓ | exa | time: 59.855 ms | iters: 17 | obj: 1.012836e+00 | CPU: 186.55 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 302.703 ms | iters: 20 | obj: 1.012836e+00 | CPU: 39.86 KiB
│ │ ✓ | adnlp | time: 376.013 ms | iters: 20 | obj: 1.012836e+00 | CPU: 92.29 MiB
│ │ ✓ | exa | time: 139.572 ms | iters: 20 | obj: 1.012836e+00 | CPU: 334.27 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 725.597 ms | iters: 20 | obj: 1.012836e+00 | CPU: 39.86 KiB
│ │ ✓ | adnlp | time: 837.318 ms | iters: 20 | obj: 1.012836e+00 | CPU: 184.37 MiB
│ │ ✓ | exa | time: 314.721 ms | iters: 20 | obj: 1.012836e+00 | CPU: 623.33 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 45.632 ms | iters: 18 | obj: 1.012810e+00 | CPU: 19.71 MiB
│ │ ✓ | adnlp | time: 54.266 ms | iters: 18 | obj: 1.012810e+00 | CPU: 20.32 MiB
│ │ ✓ | exa | time: 20.090 ms | iters: 18 | obj: 1.012810e+00 | CPU: 4.45 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 127.949 ms | iters: 19 | obj: 1.012773e+00 | CPU: 49.28 MiB
│ │ ✓ | adnlp | time: 146.862 ms | iters: 19 | obj: 1.012773e+00 | CPU: 52.11 MiB
│ │ ✓ | exa | time: 51.942 ms | iters: 19 | obj: 1.012773e+00 | CPU: 10.49 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 293.818 ms | iters: 18 | obj: 1.012710e+00 | CPU: 96.47 MiB
│ │ ✓ | adnlp | time: 312.513 ms | iters: 18 | obj: 1.012710e+00 | CPU: 98.86 MiB
│ │ ✓ | exa | time: 104.424 ms | iters: 18 | obj: 1.012710e+00 | CPU: 19.97 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 657.093 ms | iters: 17 | obj: 1.012585e+00 | CPU: 191.52 MiB
│ │ ✓ | adnlp | time: 662.598 ms | iters: 17 | obj: 1.012585e+00 | CPU: 187.71 MiB
│ │ ✓ | exa | time: 226.995 ms | iters: 17 | obj: 1.012585e+00 | CPU: 38.50 MiB
│ └─
└─
┌─ Problem: space_shuttle
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 3.411 s | iters: 143 | obj: 3.853784e-01 | CPU: 268.56 KiB
│ │ ✓ | adnlp | time: 1.573 s | iters: 124 | obj: 3.853783e-01 | CPU: 211.53 MiB
│ │ ✓ | exa | time: 832.743 ms | iters: 124 | obj: 3.853783e-01 | CPU: 332.83 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 6.900 s | iters: 114 | obj: 5.958750e-01 | CPU: 214.64 KiB
│ │ ✓ | adnlp | time: 3.867 s | iters: 108 | obj: 5.958750e-01 | CPU: 458.96 MiB
│ │ ✓ | exa | time: 1.812 s | iters: 108 | obj: 5.958750e-01 | CPU: 489.77 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 20.279 s | iters: 139 | obj: 3.050204e-01 | CPU: 264.25 KiB
│ │ ✓ | adnlp | time: 40.214 s | iters: 228 | obj: 3.036105e-01 | CPU: 1.88 GiB
│ │ ✓ | exa | time: 12.681 s | iters: 200 | obj: 3.037427e-01 | CPU: 874.72 KiB
│ │
│ │ N = 2000
│ │ ✗ | JuMP | time: 309.098 s | iters: 1000 | obj: -1.257847e+00 | CPU: 2.39 MiB
│ │ ✗ | adnlp | time: 511.679 s | iters: 129 | obj: -1.603350e-02 | CPU: 2.28 GiB
│ │ ✗ | exa | time: 607.339 s | iters: 122 | obj: -9.001577e-03 | CPU: 1.35 MiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 2.540 s | iters: 116 | obj: 3.853767e-01 | CPU: 149.03 MiB
│ │ ✓ | adnlp | time: 1.783 s | iters: 148 | obj: 3.854907e-01 | CPU: 300.50 MiB
│ │ ✓ | exa | time: 780.010 ms | iters: 148 | obj: 3.854907e-01 | CPU: 44.76 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 4.387 s | iters: 75 | obj: 5.958750e-01 | CPU: 342.39 MiB
│ │ ✓ | adnlp | time: 4.407 s | iters: 138 | obj: 5.958750e-01 | CPU: 683.43 MiB
│ │ ✓ | exa | time: 1.749 s | iters: 138 | obj: 5.958750e-01 | CPU: 99.36 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 191.391 s | iters: 864 | obj: 3.050207e-01 | CPU: 2.29 GiB
│ │ ✓ | adnlp | time: 25.758 s | iters: 230 | obj: 3.050207e-01 | CPU: 2.47 GiB
│ │ ✗ | exa | time: 9.419 s | iters: 254 | obj: 1.691066e-01 | CPU: 451.53 MiB
│ │
│ │ N = 2000
│ │ ✗ | JuMP | time: 296.246 s | iters: 676 | obj: 4.887933e-01 | CPU: 3.91 GiB
│ │ ✗ | adnlp : ERROR: DomainError(Inf, "sincos(x) is only defined for finite x.")
│ │ ✗ | exa | time: 13.632 s | iters: 191 | obj: 3.627423e-01 | CPU: 561.87 MiB
│ └─
└─
┌─ Problem: steering
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 33.265 ms | iters: 12 | obj: 5.545770e-01 | CPU: 25.38 KiB
│ │ ✓ | adnlp | time: 39.676 ms | iters: 12 | obj: 5.545770e-01 | CPU: 6.94 MiB
│ │ ✓ | exa | time: 28.042 ms | iters: 12 | obj: 5.545770e-01 | CPU: 106.84 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 113.032 ms | iters: 17 | obj: 5.545719e-01 | CPU: 34.67 KiB
│ │ ✓ | adnlp | time: 134.584 ms | iters: 17 | obj: 5.545719e-01 | CPU: 23.39 MiB
│ │ ✓ | exa | time: 95.475 ms | iters: 17 | obj: 5.545719e-01 | CPU: 222.38 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 261.908 ms | iters: 18 | obj: 5.545711e-01 | CPU: 36.53 KiB
│ │ ✗ | adnlp : ERROR: DomainError(Inf, "sincos(x) is only defined for finite x.")
│ │ ✓ | exa | time: 209.524 ms | iters: 18 | obj: 5.545711e-01 | CPU: 406.78 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 696.539 ms | iters: 18 | obj: 5.545709e-01 | CPU: 36.53 KiB
│ │ ✓ | adnlp | time: 656.561 ms | iters: 18 | obj: 5.545709e-01 | CPU: 98.13 MiB
│ │ ✓ | exa | time: 483.450 ms | iters: 18 | obj: 5.545709e-01 | CPU: 773.97 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 31.241 ms | iters: 13 | obj: 5.545770e-01 | CPU: 9.32 MiB
│ │ ✓ | adnlp | time: 35.228 ms | iters: 13 | obj: 5.545770e-01 | CPU: 9.83 MiB
│ │ ✓ | exa | time: 23.274 ms | iters: 13 | obj: 5.545770e-01 | CPU: 2.82 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 82.742 ms | iters: 14 | obj: 5.545718e-01 | CPU: 23.11 MiB
│ │ ✓ | adnlp | time: 92.977 ms | iters: 14 | obj: 5.545718e-01 | CPU: 25.10 MiB
│ │ ✓ | exa | time: 60.447 ms | iters: 14 | obj: 5.545718e-01 | CPU: 6.42 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 196.824 ms | iters: 15 | obj: 5.545711e-01 | CPU: 44.78 MiB
│ │ ✓ | adnlp | time: 219.524 ms | iters: 15 | obj: 5.545711e-01 | CPU: 52.36 MiB
│ │ ✓ | exa | time: 141.036 ms | iters: 15 | obj: 5.545711e-01 | CPU: 12.58 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 465.564 ms | iters: 13 | obj: 5.545708e-01 | CPU: 85.44 MiB
│ │ ✓ | adnlp | time: 437.638 ms | iters: 13 | obj: 5.545708e-01 | CPU: 93.15 MiB
│ │ ✓ | exa | time: 292.665 ms | iters: 13 | obj: 5.545708e-01 | CPU: 23.47 MiB
│ └─
└─
┌─ Problem: vanderpol
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 4.463 ms | iters: 3 | obj: 1.047836e+00 | CPU: 8.03 KiB
│ │ ✓ | adnlp | time: 6.320 ms | iters: 3 | obj: 1.047836e+00 | CPU: 955.22 KiB
│ │ ✓ | exa | time: 3.712 ms | iters: 3 | obj: 1.047836e+00 | CPU: 53.44 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 9.391 ms | iters: 3 | obj: 1.047812e+00 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 13.801 ms | iters: 3 | obj: 1.047812e+00 | CPU: 2.30 MiB
│ │ ✓ | exa | time: 7.532 ms | iters: 3 | obj: 1.047812e+00 | CPU: 102.50 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 17.423 ms | iters: 3 | obj: 1.047808e+00 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 27.183 ms | iters: 3 | obj: 1.047808e+00 | CPU: 4.58 MiB
│ │ ✓ | exa | time: 14.048 ms | iters: 3 | obj: 1.047808e+00 | CPU: 184.69 KiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 35.630 ms | iters: 3 | obj: 1.047807e+00 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 58.473 ms | iters: 3 | obj: 1.047807e+00 | CPU: 9.13 MiB
│ │ ✓ | exa | time: 27.048 ms | iters: 3 | obj: 1.047807e+00 | CPU: 348.75 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 5.629 ms | iters: 3 | obj: 1.047836e+00 | CPU: 4.55 MiB
│ │ ✓ | adnlp | time: 5.467 ms | iters: 3 | obj: 1.047836e+00 | CPU: 2.02 MiB
│ │ ✓ | exa | time: 3.112 ms | iters: 3 | obj: 1.047836e+00 | CPU: 1.65 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 12.734 ms | iters: 3 | obj: 1.047812e+00 | CPU: 10.52 MiB
│ │ ✓ | adnlp | time: 12.508 ms | iters: 3 | obj: 1.047812e+00 | CPU: 4.40 MiB
│ │ ✓ | exa | time: 6.618 ms | iters: 3 | obj: 1.047812e+00 | CPU: 3.47 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 25.710 ms | iters: 3 | obj: 1.047808e+00 | CPU: 21.94 MiB
│ │ ✓ | adnlp | time: 24.897 ms | iters: 3 | obj: 1.047808e+00 | CPU: 8.38 MiB
│ │ ✓ | exa | time: 12.506 ms | iters: 3 | obj: 1.047808e+00 | CPU: 6.51 MiB
│ │
│ │ N = 2000
│ │ ✓ | JuMP | time: 67.556 ms | iters: 3 | obj: 1.047807e+00 | CPU: 43.07 MiB
│ │ ✓ | adnlp | time: 71.456 ms | iters: 3 | obj: 1.047807e+00 | CPU: 16.34 MiB
│ │ ✓ | exa | time: 45.634 ms | iters: 3 | obj: 1.047807e+00 | CPU: 12.59 MiB
│ └─
└─Moonshot
This benchmark suite evaluates 14 optimal control problems on GPU-accelerated hardware, focusing on large-scale problems.
Benchmark Configuration:
- Solver: MadNLP (GPU-optimised)
- Models: ExaModels (CPU), ExaModels (GPU)
- Grid sizes: 1000, 5000, 10000 discretisation points
- Discretisation: Trapeze method
- Tolerance: 1e-6
- Limits: 1000 iterations max, 1000s wall time
This configuration demonstrates GPU acceleration capabilities with ExaModels on large-scale problems, comparing CPU vs GPU performance for the same modelling framework.
🚀 Environment
📅 Timestamp : 2025-11-07 16:28:41 UTC
🔧 Julia version : 1.11.7
💻 OS : Linux
🖥️ Machine : moonshotYou can download the exact environment used for this benchmark:
📦 Project.toml - Package dependencies
📋 Manifest.toml - Complete dependency tree with versions
📜 Benchmark script - Julia script to run the benchmark
These files allow you to reproduce the benchmark environment and results exactly.
ℹ️ Version info
Julia Version 1.11.7
Commit f2b3dbda30a (2025-09-08 12:10 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 144 × Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz
WORD_SIZE: 64
LLVM: libLLVM-16.0.6 (ORCJIT, skylake-avx512)
Threads: 16 default, 0 interactive, 8 GC (on 144 virtual cores)
Environment:
JULIA_PKG_SERVER_REGISTRY_PREFERENCE = eager
JULIA_DEPOT_PATH = /scratch/github-actions/julia_depot
LD_LIBRARY_PATH = /home/mschanen/local/lib:/home/mschanen/local/lib:
JULIA_NUM_THREADS = 16📦 Package status
Project CTBenchmarks v0.2.3
Status `/scratch/github-actions/actions_runner_control_toolbox/_work/CTBenchmarks.jl/CTBenchmarks.jl/Project.toml`
[6e4b80f9] BenchmarkTools v1.6.3
[052768ef] CUDA v5.9.2
[a93c6f00] DataFrames v1.8.1
[b6b21f68] Ipopt v1.12.1
[682c06a0] JSON v1.2.0
[4076af6c] JuMP v1.29.2
[d72a61cc] MadNLPGPU v0.7.16
[3b83494e] MadNLPMumps v0.5.1
[f4238b75] NLPModelsIpopt v0.11.0
[5f98b655] OptimalControl v1.1.6
[59046045] OptimalControlProblems v0.3.2
[bd369af6] Tables v1.12.1
[ade2ca70] Dates v1.11.0
[b77e0a4c] InteractiveUtils v1.11.0
[44cfe95a] Pkg v1.11.0
[de0858da] Printf v1.11.0
[6462fe0b] Sockets v1.11.0📚 Complete manifest
Project CTBenchmarks v0.2.3
Status `/scratch/github-actions/actions_runner_control_toolbox/_work/CTBenchmarks.jl/CTBenchmarks.jl/Manifest.toml`
[54578032] ADNLPModels v0.8.13
[47edcb42] ADTypes v1.18.0
[14f7f29c] AMD v0.5.3
[621f4979] AbstractFFTs v1.5.0
[79e6a3ab] Adapt v4.4.0
[a9b6321e] Atomix v1.1.2
[13072b0f] AxisAlgorithms v1.1.0
[ab4f0b2a] BFloat16s v0.6.0
[6e4b80f9] BenchmarkTools v1.6.3
[fa961155] CEnum v0.5.0
⌃ [54762871] CTBase v0.16.2
[790bbbee] CTDirect v0.17.4
[1c39547c] CTFlows v0.8.9
[34c4fa32] CTModels v0.6.9
[32681960] CTParser v0.7.1
[052768ef] CUDA v5.9.2
[1af6417a] CUDA_Runtime_Discovery v1.0.0
[45b445bb] CUDSS v0.6.1
[d360d2e6] ChainRulesCore v1.26.0
[523fee87] CodecBzip2 v0.8.5
[944b1d66] CodecZlib v0.7.8
[3da002f7] ColorTypes v0.12.1
[5ae59095] Colors v0.13.1
[38540f10] CommonSolve v0.2.4
[bbf7d656] CommonSubexpressions v0.3.1
[34da2185] Compat v4.18.1
[a8cc5b0e] Crayons v4.1.1
[9a962f9c] DataAPI v1.16.0
[a93c6f00] DataFrames v1.8.1
[864edb3b] DataStructures v0.19.3
[e2d170a0] DataValueInterfaces v1.0.0
[163ba53b] DiffResults v1.1.0
[b552c78f] DiffRules v1.15.1
[ffbed154] DocStringExtensions v0.9.5
[1037b233] ExaModels v0.9.2
[e2ba6199] ExprTools v0.1.10
[9aa1b823] FastClosures v0.3.2
[1a297f60] FillArrays v1.15.0
[53c48c17] FixedPointNumbers v0.8.5
[f6369f11] ForwardDiff v1.2.2
[069b7b12] FunctionWrappers v1.1.3
[0c68f7d7] GPUArrays v11.2.6
[46192b85] GPUArraysCore v0.2.0
[61eb1bfa] GPUCompiler v1.7.2
[096a3bc2] GPUToolbox v1.0.0
[34c5aeac] HSL v0.5.1
[076d061b] HashArrayMappedTries v0.2.0
[842dd82b] InlineStrings v1.4.5
[a98d9a8b] Interpolations v0.16.2
[41ab1584] InvertedIndices v1.3.1
[b6b21f68] Ipopt v1.12.1
[92d709cd] IrrationalConstants v0.2.6
[82899510] IteratorInterfaceExtensions v1.0.0
[692b3bcd] JLLWrappers v1.7.1
[682c06a0] JSON v1.2.0
[0f8b85d8] JSON3 v1.14.3
[4076af6c] JuMP v1.29.2
[63c18a36] KernelAbstractions v0.9.39
[40e66cde] LDLFactorizations v0.10.1
[929cbde3] LLVM v9.4.4
[8b046642] LLVMLoopInfo v1.0.0
[b964fa9f] LaTeXStrings v1.4.0
[5c8ed15e] LinearOperators v2.11.0
[2ab3a3ac] LogExpFunctions v0.3.29
[33e6dc65] MKL v0.9.0
[d8e11817] MLStyle v0.4.17
[1914dd2f] MacroTools v0.5.16
[2621e9c9] MadNLP v0.8.12
[d72a61cc] MadNLPGPU v0.7.16
[3b83494e] MadNLPMumps v0.5.1
[b8f27783] MathOptInterface v1.46.0
[2679e427] Metis v1.5.0
[e1d29d7a] Missings v1.2.0
[d8a4904e] MutableArithmetics v1.6.7
[a4795742] NLPModels v0.21.5
[f4238b75] NLPModelsIpopt v0.11.0
[e01155f1] NLPModelsModifiers v0.7.2
[5da4648a] NVTX v1.0.1
[77ba4419] NaNMath v1.1.3
[6fe1bfb0] OffsetArrays v1.17.0
[5f98b655] OptimalControl v1.1.6
[59046045] OptimalControlProblems v0.3.2
[bac558e1] OrderedCollections v1.8.1
[d96e819e] Parameters v0.12.3
[69de0a69] Parsers v2.8.3
[2dfb63ee] PooledArrays v1.4.3
⌅ [aea7be01] PrecompileTools v1.2.1
[21216c6a] Preferences v1.5.0
[08abe8d2] PrettyTables v3.1.0
[be4d8f0f] Quadmath v0.5.13
[74087812] Random123 v1.7.1
[e6cf234a] RandomNumbers v1.6.0
[c84ed2f1] Ratios v0.4.5
[3cdcf5f2] RecipesBase v1.3.4
[189a3867] Reexport v1.2.2
[ae029012] Requires v1.3.1
[37e2e3b7] ReverseDiff v1.16.1
[7e506255] ScopedValues v1.5.0
[6c6a2e73] Scratch v1.3.0
[91c51154] SentinelArrays v1.4.8
[ff4d7338] SolverCore v0.3.8
[a2af1166] SortingAlgorithms v1.2.2
[9f842d2f] SparseConnectivityTracer v1.1.2
[0a514795] SparseMatrixColorings v0.4.23
[276daf66] SpecialFunctions v2.6.1
[90137ffa] StaticArrays v1.9.15
[1e83bf80] StaticArraysCore v1.4.4
[10745b16] Statistics v1.11.1
[892a3eda] StringManipulation v0.4.1
[856f2bd8] StructTypes v1.11.0
[ec057cc2] StructUtils v2.5.1
[3783bdb8] TableTraits v1.0.1
[bd369af6] Tables v1.12.1
[a759f4b9] TimerOutputs v0.5.29
[e689c965] Tracy v0.1.6
[3bb67fe8] TranscodingStreams v0.11.3
[3a884ed6] UnPack v1.0.2
[013be700] UnsafeAtomics v0.3.0
[efce3f68] WoodburyMatrices v1.0.0
[ae81ac8f] ASL_jll v0.1.3+0
[6e34b625] Bzip2_jll v1.0.9+0
[d1e2174e] CUDA_Compiler_jll v0.3.0+0
[4ee394cb] CUDA_Driver_jll v13.0.2+0
[76a88914] CUDA_Runtime_jll v0.19.2+0
[4889d778] CUDSS_jll v0.7.1+0
[017b0a0e] HSL_jll v4.0.4+0
[e33a78d0] Hwloc_jll v2.12.2+0
[1d5cc7b8] IntelOpenMP_jll v2025.2.0+0
[9cc047cb] Ipopt_jll v300.1400.1900+0
[9c1d0b0a] JuliaNVTXCallbacks_jll v0.2.1+0
[dad2f222] LLVMExtra_jll v0.0.38+0
[ad6e5548] LibTracyClient_jll v0.9.1+6
[94ce4f54] Libiconv_jll v1.18.0+0
[d00139f3] METIS_jll v5.1.3+0
[856f044c] MKL_jll v2025.2.0+0
[d7ed1dd3] MUMPS_seq_jll v500.800.100+0
[e98f9f5b] NVTX_jll v3.2.2+0
[656ef2d0] OpenBLAS32_jll v0.3.29+0
[efe28fd5] OpenSpecFun_jll v0.5.6+0
⌅ [319450e9] SPRAL_jll v2025.5.20+0
⌅ [02c8fc9c] XML2_jll v2.13.9+0
[a65dc6b1] Xorg_libpciaccess_jll v0.18.1+0
[1e29f10c] demumble_jll v1.3.0+0
[1317d2d5] oneTBB_jll v2022.0.0+1
[0dad84c5] ArgTools v1.1.2
[56f22d72] Artifacts v1.11.0
[2a0f44e3] Base64 v1.11.0
[ade2ca70] Dates v1.11.0
[8ba89e20] Distributed v1.11.0
[f43a241f] Downloads v1.6.0
[7b1f6079] FileWatching v1.11.0
[9fa8497b] Future v1.11.0
[b77e0a4c] InteractiveUtils v1.11.0
[4af54fe1] LazyArtifacts v1.11.0
[b27032c2] LibCURL v0.6.4
[76f85450] LibGit2 v1.11.0
[8f399da3] Libdl v1.11.0
[37e2e46d] LinearAlgebra v1.11.0
[56ddb016] Logging v1.11.0
[d6f4376e] Markdown v1.11.0
[a63ad114] Mmap v1.11.0
[ca575930] NetworkOptions v1.2.0
[44cfe95a] Pkg v1.11.0
[de0858da] Printf v1.11.0
[9abbd945] Profile v1.11.0
[3fa0cd96] REPL v1.11.0
[9a3f8284] Random v1.11.0
[ea8e919c] SHA v0.7.0
[9e88b42a] Serialization v1.11.0
[1a1011a3] SharedArrays v1.11.0
[6462fe0b] Sockets v1.11.0
[2f01184e] SparseArrays v1.11.0
[f489334b] StyledStrings v1.11.0
[4607b0f0] SuiteSparse
[fa267f1f] TOML v1.0.3
[a4e569a6] Tar v1.10.0
[8dfed614] Test v1.11.0
[cf7118a7] UUIDs v1.11.0
[4ec0a83e] Unicode v1.11.0
[e66e0078] CompilerSupportLibraries_jll v1.1.1+0
[deac9b47] LibCURL_jll v8.6.0+0
[e37daf67] LibGit2_jll v1.7.2+0
[29816b5a] LibSSH2_jll v1.11.0+1
[c8ffd9c3] MbedTLS_jll v2.28.6+0
[14a3606d] MozillaCACerts_jll v2023.12.12
[4536629a] OpenBLAS_jll v0.3.27+1
[05823500] OpenLibm_jll v0.8.5+0
[bea87d4a] SuiteSparse_jll v7.7.0+0
[83775a58] Zlib_jll v1.2.13+1
[8e850b90] libblastrampoline_jll v5.11.0+0
[8e850ede] nghttp2_jll v1.59.0+0
[3f19e933] p7zip_jll v17.4.0+2
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`⚡ Results
Benchmarks results:
┌─ Problem: beam
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 58.944 ms | iters: 22 | obj: 8.889006e+00 | CPU: 8.45 MiB
│ │ ✓ | exa_gpu | time: 149.593 ms | iters: 25 | obj: 8.827707e+00 | CPU: 9.170 MiB | GPU: 11.901 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 332.734 ms | iters: 17 | obj: 8.888990e+00 | CPU: 34.86 MiB
│ │ ✓ | exa_gpu | time: 203.046 ms | iters: 31 | obj: 8.586481e+00 | CPU: 12.993 MiB | GPU: 61.717 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 709.545 ms | iters: 18 | obj: 8.889088e+00 | CPU: 71.26 MiB
│ │ ✓ | exa_gpu | time: 188.985 ms | iters: 22 | obj: 8.291850e+00 | CPU: 12.801 MiB | GPU: 116.519 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 1.195 s | iters: 13 | obj: 8.889279e+00 | CPU: 121.36 MiB
│ │ ✓ | exa_gpu | time: 278.560 ms | iters: 20 | obj: 7.725138e+00 | CPU: 17.206 MiB | GPU: 229.899 MiB
│ └─
└─
┌─ Problem: chain
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 32.404 ms | iters: 6 | obj: 5.068510e+00 | CPU: 6.74 MiB
│ │ ✓ | exa_gpu | time: 94.948 ms | iters: 13 | obj: 5.065447e+00 | CPU: 6.461 MiB | GPU: 19.022 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 293.485 ms | iters: 5 | obj: 5.068475e+00 | CPU: 31.13 MiB
│ │ ✓ | exa_gpu | time: 149.237 ms | iters: 16 | obj: 5.053179e+00 | CPU: 11.571 MiB | GPU: 96.378 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 650.831 ms | iters: 5 | obj: 5.068449e+00 | CPU: 61.82 MiB
│ │ ✓ | exa_gpu | time: 3.086 s | iters: 381 | obj: 5.037594e+00 | CPU: 190.148 MiB | GPU: 539.044 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 1.474 s | iters: 5 | obj: 5.068381e+00 | CPU: 123.19 MiB
│ │ ✓ | exa_gpu | time: 279.554 ms | iters: 10 | obj: 5.005905e+00 | CPU: 23.876 MiB | GPU: 374.863 MiB
│ └─
└─
┌─ Problem: double_oscillator
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 41.941 ms | iters: 5 | obj: 9.110070e-04 | CPU: 13.30 MiB
│ │ ✓ | exa_gpu | time: 73.931 ms | iters: 8 | obj: 8.386344e-04 | CPU: 6.157 MiB | GPU: 37.826 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 501.971 ms | iters: 5 | obj: 9.110369e-04 | CPU: 64.60 MiB
│ │ ✓ | exa_gpu | time: 105.986 ms | iters: 4 | obj: 9.079947e-04 | CPU: 13.689 MiB | GPU: 186.410 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 1.190 s | iters: 5 | obj: 9.110439e-04 | CPU: 128.74 MiB
│ │ ✓ | exa_gpu | time: 149.006 ms | iters: 4 | obj: 9.048850e-04 | CPU: 24.683 MiB | GPU: 372.791 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 2.475 s | iters: 5 | obj: 9.110587e-04 | CPU: 257.01 MiB
│ │ ✓ | exa_gpu | time: 274.168 ms | iters: 4 | obj: 8.986602e-04 | CPU: 46.576 MiB | GPU: 745.534 MiB
│ └─
└─
┌─ Problem: ducted_fan
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 1.822 s | iters: 73 | obj: 1.831625e+03 | CPU: 64.56 MiB
│ │ ✓ | exa_gpu | time: 1.990 s | iters: 128 | obj: 1.828961e+03 | CPU: 67.682 MiB | GPU: 91.199 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 18.452 s | iters: 114 | obj: 1.831617e+03 | CPU: 604.21 MiB
│ │ ✓ | exa_gpu | time: 2.450 s | iters: 39 | obj: 1.818331e+03 | CPU: 38.945 MiB | GPU: 352.288 MiB
│ │
│ │ N = 10000
│ │ ✗ | exa | time: 25.351 s | iters: 69 | obj: 1.176093e+02 | CPU: 982.00 MiB
│ │ ✓ | exa_gpu | time: 18.363 s | iters: 195 | obj: 1.805046e+03 | CPU: 129.065 MiB | GPU: 1.036 GiB
│ │
│ │ N = 20000
│ │ ✗ | exa | time: 38.219 s | iters: 51 | obj: 1.209192e+02 | CPU: 1.47 GiB
│ │ ✓ | exa_gpu | time: 8.850 s | iters: 39 | obj: 1.778428e+03 | CPU: 92.847 MiB | GPU: 1.373 GiB
│ └─
└─
┌─ Problem: electric_vehicle
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 14.249 ms | iters: 3 | obj: 1.228585e+03 | CPU: 6.35 MiB
│ │ ✓ | exa_gpu | time: 77.745 ms | iters: 11 | obj: 1.227994e+03 | CPU: 5.934 MiB | GPU: 17.560 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 133.353 ms | iters: 3 | obj: 1.228581e+03 | CPU: 29.99 MiB
│ │ ✓ | exa_gpu | time: 140.211 ms | iters: 12 | obj: 1.225635e+03 | CPU: 10.413 MiB | GPU: 88.029 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 287.375 ms | iters: 3 | obj: 1.228580e+03 | CPU: 59.53 MiB
│ │ ✓ | exa_gpu | time: 123.226 ms | iters: 12 | obj: 1.222695e+03 | CPU: 15.532 MiB | GPU: 176.041 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 615.173 ms | iters: 3 | obj: 1.228580e+03 | CPU: 118.61 MiB
│ │ ✓ | exa_gpu | time: 152.513 ms | iters: 12 | obj: 1.216825e+03 | CPU: 25.725 MiB | GPU: 352.017 MiB
│ └─
└─
┌─ Problem: glider
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 11.694 s | iters: 734 | obj: 1.247985e+03 | CPU: 318.61 MiB
│ │ ✗ | exa_gpu | time: 15.775 s | iters: 1000 | obj: 4.844329e+02 | CPU: 728.718 MiB | GPU: 229.086 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 63.954 s | iters: 522 | obj: 1.247987e+03 | CPU: 1.16 GiB
│ │ ✗ | exa_gpu | time: 51.766 s | iters: 1000 | obj: 1.608127e+02 | CPU: 815.543 MiB | GPU: 1.123 GiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 118.944 s | iters: 459 | obj: 1.247987e+03 | CPU: 2.02 GiB
│ │ ✗ | exa_gpu | time: 92.661 s | iters: 1001 | obj: 4.606562e+02 | CPU: 777.179 MiB | GPU: 2.229 GiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 478.781 s | iters: 889 | obj: 1.247987e+03 | CPU: 7.40 GiB
│ │ ✗ | exa_gpu | time: 174.547 s | iters: 1000 | obj: 2.089172e+02 | CPU: 880.450 MiB | GPU: 4.483 GiB
│ └─
└─
┌─ Problem: insurance
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 11.981 s | iters: 538 | obj: 2.059433e+00 | CPU: 462.87 MiB
│ │ ✓ | exa_gpu | time: 677.319 ms | iters: 61 | obj: 1.175172e+00 | CPU: 28.299 MiB | GPU: 57.496 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 90.931 s | iters: 752 | obj: 2.059534e+00 | CPU: 3.20 GiB
│ │ ✓ | exa_gpu | time: 3.639 s | iters: 240 | obj: 1.173336e+00 | CPU: 111.896 MiB | GPU: 586.317 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 149.618 s | iters: 558 | obj: 2.059237e+00 | CPU: 4.81 GiB
│ │ ✓ | exa_gpu | time: 8.438 s | iters: 267 | obj: 1.171076e+00 | CPU: 133.215 MiB | GPU: 1.245 GiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 417.566 s | iters: 636 | obj: 2.058537e+00 | CPU: 12.56 GiB
│ │ ✓ | exa_gpu | time: 4.110 s | iters: 78 | obj: 1.166456e+00 | CPU: 72.228 MiB | GPU: 1.227 GiB
│ └─
└─
┌─ Problem: jackson
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 100.876 ms | iters: 20 | obj: 1.918046e-01 | CPU: 21.63 MiB
│ │ ✓ | exa_gpu | time: 244.165 ms | iters: 31 | obj: -7.511061e-07 | CPU: 13.240 MiB | GPU: 34.912 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 835.547 ms | iters: 19 | obj: 1.917600e-01 | CPU: 103.29 MiB
│ │ ✓ | exa_gpu | time: 261.906 ms | iters: 22 | obj: -3.468065e-07 | CPU: 17.824 MiB | GPU: 167.117 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 1.677 s | iters: 18 | obj: 1.917093e-01 | CPU: 200.21 MiB
│ │ ✓ | exa_gpu | time: 324.103 ms | iters: 23 | obj: -7.464148e-07 | CPU: 27.904 MiB | GPU: 335.868 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 3.543 s | iters: 18 | obj: 1.916118e-01 | CPU: 399.88 MiB
│ │ ✓ | exa_gpu | time: 446.990 ms | iters: 22 | obj: 5.098141e-07 | CPU: 46.384 MiB | GPU: 667.967 MiB
│ └─
└─
┌─ Problem: robbins
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 174.625 ms | iters: 47 | obj: 1.944023e+01 | CPU: 15.11 MiB
│ │ ✓ | exa_gpu | time: 194.949 ms | iters: 25 | obj: 1.942160e+01 | CPU: 10.049 MiB | GPU: 17.509 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 2.038 s | iters: 63 | obj: 1.943235e+01 | CPU: 89.39 MiB
│ │ ✓ | exa_gpu | time: 942.448 ms | iters: 107 | obj: 1.934096e+01 | CPU: 39.955 MiB | GPU: 130.364 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 3.105 s | iters: 43 | obj: 1.943232e+01 | CPU: 136.58 MiB
│ │ ✓ | exa_gpu | time: 943.781 ms | iters: 88 | obj: 1.925063e+01 | CPU: 37.557 MiB | GPU: 240.557 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 8.603 s | iters: 60 | obj: 1.943274e+01 | CPU: 342.63 MiB
│ │ ✓ | exa_gpu | time: 2.443 s | iters: 203 | obj: 1.907192e+01 | CPU: 82.754 MiB | GPU: 719.872 MiB
│ └─
└─
┌─ Problem: robot
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 629.781 ms | iters: 27 | obj: 9.141204e+00 | CPU: 42.55 MiB
│ │ ✓ | exa_gpu | time: 567.558 ms | iters: 30 | obj: 9.123238e+00 | CPU: 18.604 MiB | GPU: 66.837 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 8.045 s | iters: 41 | obj: 9.142359e+00 | CPU: 307.02 MiB
│ │ ✓ | exa_gpu | time: 1.656 s | iters: 27 | obj: 9.053093e+00 | CPU: 29.255 MiB | GPU: 329.227 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 20.004 s | iters: 47 | obj: 9.143634e+00 | CPU: 754.05 MiB
│ │ ✓ | exa_gpu | time: 3.635 s | iters: 32 | obj: 8.965878e+00 | CPU: 47.582 MiB | GPU: 672.443 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 31.611 s | iters: 40 | obj: 9.146361e+00 | CPU: 1.22 GiB
│ │ ✓ | exa_gpu | time: 8.687 s | iters: 45 | obj: 8.792951e+00 | CPU: 86.753 MiB | GPU: 1.383 GiB
│ └─
└─
┌─ Problem: rocket
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 120.784 ms | iters: 18 | obj: 1.012710e+00 | CPU: 19.97 MiB
│ │ ✓ | exa_gpu | time: 487.402 ms | iters: 45 | obj: 1.000000e+00 | CPU: 19.685 MiB | GPU: 43.252 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 765.380 ms | iters: 18 | obj: 1.012223e+00 | CPU: 97.64 MiB
│ │ ✓ | exa_gpu | time: 791.115 ms | iters: 27 | obj: 1.000007e+00 | CPU: 21.805 MiB | GPU: 201.423 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 1.569 s | iters: 17 | obj: 1.011682e+00 | CPU: 190.76 MiB
│ │ ✓ | exa_gpu | time: 1.237 s | iters: 24 | obj: 1.000001e+00 | CPU: 31.669 MiB | GPU: 397.830 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 3.708 s | iters: 17 | obj: 1.010835e+00 | CPU: 380.97 MiB
│ │ ✓ | exa_gpu | time: 2.196 s | iters: 26 | obj: 9.999998e-01 | CPU: 54.043 MiB | GPU: 801.869 MiB
│ └─
└─
┌─ Problem: space_shuttle
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 13.974 s | iters: 340 | obj: 3.050195e-01 | CPU: 599.44 MiB
│ │ ✓ | exa_gpu | time: 7.936 s | iters: 313 | obj: -8.632556e-02 | CPU: 227.357 MiB | GPU: 272.192 MiB
│ │
│ │ N = 5000
│ │ ✗ | exa | time: 77.126 s | iters: 301 | obj: -9.202651e-01 | CPU: 1.95 GiB
│ │ ✗ | exa_gpu | time: 26.056 s | iters: 318 | obj: -7.180258e-01 | CPU: 306.997 MiB | GPU: 1.329 GiB
│ │
│ │ N = 10000
│ │ ✗ | exa | time: 92.599 s | iters: 185 | obj: 2.310158e-01 | CPU: 2.92 GiB
│ │ ✗ | exa_gpu | time: 24.083 s | iters: 181 | obj: 6.151902e-01 | CPU: 262.857 MiB | GPU: 2.235 GiB
│ │
│ │ N = 20000
│ │ ✗ | exa | time: 148.867 s | iters: 147 | obj: 6.185205e-01 | CPU: 4.85 GiB
│ │ ✗ | exa_gpu | time: 55.286 s | iters: 230 | obj: -2.953102e-03 | CPU: 431.684 MiB | GPU: 4.737 GiB
│ └─
└─
┌─ Problem: steering
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 151.281 ms | iters: 15 | obj: 5.545711e-01 | CPU: 12.58 MiB
│ │ ✓ | exa_gpu | time: 225.975 ms | iters: 14 | obj: 5.545599e-01 | CPU: 8.125 MiB | GPU: 27.359 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 1.248 s | iters: 16 | obj: 5.545709e-01 | CPU: 62.15 MiB
│ │ ✓ | exa_gpu | time: 817.556 ms | iters: 16 | obj: 5.545179e-01 | CPU: 14.275 MiB | GPU: 138.008 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 2.995 s | iters: 18 | obj: 5.545709e-01 | CPU: 129.56 MiB
│ │ ✓ | exa_gpu | time: 1.260 s | iters: 16 | obj: 5.544658e-01 | CPU: 21.192 MiB | GPU: 275.910 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 11.733 s | iters: 34 | obj: 5.545709e-01 | CPU: 351.46 MiB
│ │ ✓ | exa_gpu | time: 2.869 s | iters: 19 | obj: 5.543620e-01 | CPU: 36.279 MiB | GPU: 559.601 MiB
│ └─
└─
┌─ Problem: vanderpol
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 13.843 ms | iters: 3 | obj: 1.047808e+00 | CPU: 6.51 MiB
│ │ ✓ | exa_gpu | time: 74.323 ms | iters: 7 | obj: 1.045639e+00 | CPU: 4.413 MiB | GPU: 17.544 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 139.303 ms | iters: 3 | obj: 1.047807e+00 | CPU: 30.82 MiB
│ │ ✓ | exa_gpu | time: 85.178 ms | iters: 7 | obj: 1.036994e+00 | CPU: 8.680 MiB | GPU: 87.681 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 310.716 ms | iters: 3 | obj: 1.047807e+00 | CPU: 61.20 MiB
│ │ ✓ | exa_gpu | time: 101.549 ms | iters: 7 | obj: 1.026238e+00 | CPU: 13.951 MiB | GPU: 175.349 MiB
│ │
│ │ N = 20000
│ │ ✓ | exa | time: 584.383 ms | iters: 2 | obj: 1.047731e+00 | CPU: 119.67 MiB
│ │ ✓ | exa_gpu | time: 135.861 ms | iters: 7 | obj: 1.004888e+00 | CPU: 24.456 MiB | GPU: 350.659 MiB
│ └─
└─