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-10-25 14:44:00 UTC
🔧 Julia version : 1.11.7
💻 OS : Linux
🖥️ Machine : runnervmwhb2zYou 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.2
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 v0.21.4
[4076af6c] JuMP v1.29.2
[d72a61cc] MadNLPGPU v0.7.16
[3b83494e] MadNLPMumps v0.5.1
[f4238b75] NLPModelsIpopt v0.11.0
[5f98b655] OptimalControl v1.1.5
[59046045] OptimalControlProblems v0.3.1
[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
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated`📚 Complete manifest
Project CTBenchmarks v0.2.2
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.4
[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.1
[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.14.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 v0.21.4
[0f8b85d8] JSON3 v1.14.3
[4076af6c] JuMP v1.29.2
[63c18a36] KernelAbstractions v0.9.38
[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.5
[59046045] OptimalControlProblems v0.3.1
[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.1
[0a514795] SparseMatrixColorings v0.4.22
[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
[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 ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`📊 Results
Benchmarks results:
┌─ Problem: beam
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 11.737 ms | iters: 12 | obj: 8.891342e+00 | CPU: 13.08 KiB
│ │ ✓ | adnlp | time: 15.307 ms | iters: 12 | obj: 8.891342e+00 | CPU: 1.84 MiB
│ │ ✓ | exa | time: 11.924 ms | iters: 12 | obj: 8.891342e+00 | CPU: 68.36 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 30.198 ms | iters: 15 | obj: 8.889302e+00 | CPU: 15.89 KiB
│ │ ✓ | adnlp | time: 39.888 ms | iters: 15 | obj: 8.889302e+00 | CPU: 5.50 MiB
│ │ ✓ | exa | time: 29.961 ms | iters: 15 | obj: 8.889302e+00 | CPU: 134.52 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 90.645 ms | iters: 25 | obj: 8.888998e+00 | CPU: 24.36 KiB
│ │ ✓ | adnlp | time: 125.470 ms | iters: 26 | obj: 8.889037e+00 | CPU: 18.03 MiB
│ │ ✓ | exa | time: 91.953 ms | iters: 26 | obj: 8.889037e+00 | CPU: 251.55 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 10.536 ms | iters: 18 | obj: 8.891339e+00 | CPU: 2.02 MiB
│ │ ✓ | adnlp | time: 15.290 ms | iters: 18 | obj: 8.891339e+00 | CPU: 4.38 MiB
│ │ ✓ | exa | time: 10.716 ms | iters: 18 | obj: 8.891339e+00 | CPU: 1.93 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 20.810 ms | iters: 16 | obj: 8.889296e+00 | CPU: 4.00 MiB
│ │ ✓ | adnlp | time: 31.023 ms | iters: 16 | obj: 8.889296e+00 | CPU: 9.26 MiB
│ │ ✓ | exa | time: 21.600 ms | iters: 16 | obj: 8.889296e+00 | CPU: 3.84 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 52.529 ms | iters: 22 | obj: 8.889005e+00 | CPU: 8.93 MiB
│ │ ✓ | adnlp | time: 80.791 ms | iters: 22 | obj: 8.889006e+00 | CPU: 23.14 MiB
│ │ ✓ | exa | time: 54.746 ms | iters: 22 | obj: 8.889005e+00 | CPU: 8.45 MiB
│ └─
└─
┌─ Problem: chain
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 11.581 ms | iters: 6 | obj: 5.068916e+00 | CPU: 13.83 KiB
│ │ ✓ | adnlp | time: 13.969 ms | iters: 6 | obj: 5.068916e+00 | CPU: 3.91 MiB
│ │ ✓ | exa | time: 8.719 ms | iters: 6 | obj: 5.068916e+00 | CPU: 69.03 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 54.053 ms | iters: 13 | obj: 5.068578e+00 | CPU: 29.19 KiB
│ │ ✓ | adnlp | time: 63.489 ms | iters: 13 | obj: 5.068578e+00 | CPU: 19.17 MiB
│ │ ✓ | exa | time: 37.923 ms | iters: 13 | obj: 5.068578e+00 | CPU: 145.53 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 52.966 ms | iters: 6 | obj: 5.068510e+00 | CPU: 13.83 KiB
│ │ ✓ | adnlp | time: 62.383 ms | iters: 6 | obj: 5.068510e+00 | CPU: 19.35 MiB
│ │ ✓ | exa | time: 38.706 ms | iters: 6 | obj: 5.068510e+00 | CPU: 250.28 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 12.383 ms | iters: 6 | obj: 5.068916e+00 | CPU: 6.31 MiB
│ │ ✓ | adnlp | time: 11.995 ms | iters: 6 | obj: 5.068916e+00 | CPU: 5.32 MiB
│ │ ✓ | exa | time: 7.593 ms | iters: 6 | obj: 5.068916e+00 | CPU: 1.71 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 53.379 ms | iters: 13 | obj: 5.068578e+00 | CPU: 15.97 MiB
│ │ ✓ | adnlp | time: 56.158 ms | iters: 13 | obj: 5.068578e+00 | CPU: 22.67 MiB
│ │ ✓ | exa | time: 34.112 ms | iters: 13 | obj: 5.068578e+00 | CPU: 4.21 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 56.570 ms | iters: 6 | obj: 5.068510e+00 | CPU: 32.19 MiB
│ │ ✓ | adnlp | time: 52.891 ms | iters: 6 | obj: 5.068510e+00 | CPU: 24.73 MiB
│ │ ✓ | exa | time: 30.516 ms | iters: 6 | obj: 5.068510e+00 | CPU: 6.74 MiB
│ └─
└─
┌─ Problem: double_oscillator
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 8.025 ms | iters: 4 | obj: 9.103363e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 14.149 ms | iters: 4 | obj: 9.103363e-04 | CPU: 4.44 MiB
│ │ ✓ | exa | time: 9.452 ms | iters: 4 | obj: 9.103363e-04 | CPU: 101.77 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 17.233 ms | iters: 4 | obj: 9.109247e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 32.309 ms | iters: 4 | obj: 9.109247e-04 | CPU: 11.03 MiB
│ │ ✓ | exa | time: 21.060 ms | iters: 4 | obj: 9.109247e-04 | CPU: 212.14 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 32.586 ms | iters: 4 | obj: 9.110179e-04 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 66.245 ms | iters: 4 | obj: 9.110179e-04 | CPU: 22.02 MiB
│ │ ✓ | exa | time: 40.438 ms | iters: 4 | obj: 9.110179e-04 | CPU: 395.52 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 7.783 ms | iters: 5 | obj: 9.103362e-04 | CPU: 2.93 MiB
│ │ ✓ | adnlp | time: 15.026 ms | iters: 5 | obj: 9.103362e-04 | CPU: 7.10 MiB
│ │ ✓ | exa | time: 8.243 ms | iters: 5 | obj: 9.103362e-04 | CPU: 3.03 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 17.343 ms | iters: 5 | obj: 9.109230e-04 | CPU: 6.80 MiB
│ │ ✓ | adnlp | time: 36.053 ms | iters: 5 | obj: 9.109230e-04 | CPU: 17.06 MiB
│ │ ✓ | exa | time: 19.111 ms | iters: 5 | obj: 9.109230e-04 | CPU: 6.88 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 33.552 ms | iters: 5 | obj: 9.110070e-04 | CPU: 11.30 MiB
│ │ ✓ | adnlp | time: 76.441 ms | iters: 5 | obj: 9.110070e-04 | CPU: 33.65 MiB
│ │ ✓ | exa | time: 37.330 ms | iters: 5 | obj: 9.110070e-04 | CPU: 13.30 MiB
│ └─
└─
┌─ Problem: ducted_fan
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 2.645 s | iters: 81 | obj: 1.831942e+03 | CPU: 156.19 KiB
│ │ ✓ | adnlp | time: 801.096 ms | iters: 94 | obj: 1.831942e+03 | CPU: 115.44 MiB
│ │ ✓ | exa | time: 468.436 ms | iters: 92 | obj: 1.831942e+03 | CPU: 254.73 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 77.312 s | iters: 319 | obj: 1.831665e+03 | CPU: 764.94 KiB
│ │ ✓ | adnlp | time: 3.580 s | iters: 114 | obj: 1.831665e+03 | CPU: 345.82 MiB
│ │ ✓ | exa | time: 1.758 s | iters: 139 | obj: 1.831665e+03 | CPU: 481.52 KiB
│ │
│ │ N = 1000
│ │ ✗ | JuMP | time: 500.850 s | iters: 334 | obj: 1.936108e+03 | CPU: 633.41 KiB
│ │ ✓ | adnlp | time: 12.341 s | iters: 149 | obj: 1.831623e+03 | CPU: 943.17 MiB
│ │ ✓ | exa | time: 15.105 s | iters: 295 | obj: 1.831623e+03 | CPU: 949.12 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 1.271 s | iters: 37 | obj: 1.831942e+03 | CPU: 143.93 MiB
│ │ ✗ | adnlp : ERROR: DomainError(Inf, "sincos(x) is only defined for finite x.")
│ │ ✓ | exa | time: 142.539 ms | iters: 37 | obj: 1.831942e+03 | CPU: 9.16 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 25.353 s | iters: 132 | obj: 1.831665e+03 | CPU: 832.73 MiB
│ │ ✓ | adnlp | time: 3.905 s | iters: 190 | obj: 1.831665e+03 | CPU: 763.97 MiB
│ │ ✓ | exa | time: 667.835 ms | iters: 91 | obj: 1.831665e+03 | CPU: 51.19 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 104.867 s | iters: 72 | obj: 1.831625e+03 | CPU: 2.93 GiB
│ │ ✓ | adnlp | time: 2.470 s | iters: 68 | obj: 1.831625e+03 | CPU: 479.03 MiB
│ │ ✓ | exa | time: 1.584 s | iters: 73 | obj: 1.831625e+03 | CPU: 65.92 MiB
│ └─
└─
┌─ Problem: electric_vehicle
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 5.787 ms | iters: 4 | obj: 1.228699e+03 | CPU: 9.84 KiB
│ │ ✓ | adnlp | time: 8.433 ms | iters: 4 | obj: 1.228699e+03 | CPU: 2.71 MiB
│ │ ✓ | exa | time: 4.550 ms | iters: 4 | obj: 1.228699e+03 | CPU: 58.31 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 12.546 ms | iters: 4 | obj: 1.228599e+03 | CPU: 10.11 KiB
│ │ ✓ | adnlp | time: 19.376 ms | iters: 4 | obj: 1.228599e+03 | CPU: 6.74 MiB
│ │ ✓ | exa | time: 9.309 ms | iters: 4 | obj: 1.228599e+03 | CPU: 107.38 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 19.267 ms | iters: 3 | obj: 1.228585e+03 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 31.169 ms | iters: 3 | obj: 1.228585e+03 | CPU: 11.14 MiB
│ │ ✓ | exa | time: 14.576 ms | iters: 3 | obj: 1.228585e+03 | CPU: 188.53 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 6.773 ms | iters: 4 | obj: 1.228699e+03 | CPU: 4.64 MiB
│ │ ✓ | adnlp | time: 7.589 ms | iters: 4 | obj: 1.228699e+03 | CPU: 3.86 MiB
│ │ ✓ | exa | time: 3.760 ms | iters: 4 | obj: 1.228699e+03 | CPU: 1.65 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 15.638 ms | iters: 4 | obj: 1.228599e+03 | CPU: 10.71 MiB
│ │ ✓ | adnlp | time: 17.678 ms | iters: 4 | obj: 1.228599e+03 | CPU: 8.98 MiB
│ │ ✓ | exa | time: 8.150 ms | iters: 4 | obj: 1.228599e+03 | CPU: 3.46 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 27.378 ms | iters: 3 | obj: 1.228585e+03 | CPU: 22.09 MiB
│ │ ✓ | adnlp | time: 30.312 ms | iters: 3 | obj: 1.228585e+03 | CPU: 15.10 MiB
│ │ ✓ | exa | time: 12.766 ms | iters: 3 | obj: 1.228585e+03 | CPU: 6.35 MiB
│ └─
└─
┌─ Problem: glider
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 7.762 s | iters: 305 | obj: 1.248896e+03 | CPU: 573.98 KiB
│ │ ✓ | adnlp | time: 6.454 s | iters: 341 | obj: 1.248896e+03 | CPU: 332.66 MiB
│ │ ✓ | exa | time: 5.516 s | iters: 344 | obj: 1.248896e+03 | CPU: 544.89 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 22.089 s | iters: 675 | obj: 1.247978e+03 | CPU: 1.25 MiB
│ │ ✓ | adnlp | time: 17.502 s | iters: 877 | obj: 1.247978e+03 | CPU: 2.06 GiB
│ │ ✓ | exa | time: 7.097 s | iters: 688 | obj: 1.247978e+03 | CPU: 1012.45 KiB
│ │
│ │ N = 1000
│ │ ✗ | JuMP | time: 71.114 s | iters: 1000 | obj: 4.568775e+02 | CPU: 1.86 MiB
│ │ ✗ | adnlp | time: 47.537 s | iters: 1000 | obj: 4.570726e+02 | CPU: 4.68 GiB
│ │ ✗ | exa | time: 25.010 s | iters: 1000 | obj: 4.551521e+02 | CPU: 1.49 MiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 3.567 s | iters: 321 | obj: 1.248809e+03 | CPU: 72.66 MiB
│ │ ✓ | adnlp | time: 1.550 s | iters: 263 | obj: 1.248809e+03 | CPU: 286.90 MiB
│ │ ✓ | exa | time: 1.012 s | iters: 320 | obj: 1.248809e+03 | CPU: 33.51 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 22.832 s | iters: 690 | obj: 1.247978e+03 | CPU: 254.22 MiB
│ │ ✓ | adnlp | time: 11.488 s | iters: 679 | obj: 1.247978e+03 | CPU: 1.75 GiB
│ │ ✓ | exa | time: 2.702 s | iters: 365 | obj: 1.247978e+03 | CPU: 91.39 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 48.711 s | iters: 726 | obj: 1.247985e+03 | CPU: 516.47 MiB
│ │ ✓ | adnlp | time: 30.433 s | iters: 707 | obj: 1.247985e+03 | CPU: 3.63 GiB
│ │ ✓ | exa | time: 11.003 s | iters: 713 | obj: 1.247985e+03 | CPU: 310.20 MiB
│ └─
└─
┌─ Problem: insurance
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 221.889 ms | iters: 54 | obj: 2.058581e+00 | CPU: 103.47 KiB
│ │ ✓ | adnlp | time: 297.735 ms | iters: 54 | obj: 2.058581e+00 | CPU: 71.58 MiB
│ │ ✓ | exa | time: 183.245 ms | iters: 54 | obj: 2.058581e+00 | CPU: 204.22 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 1.018 s | iters: 101 | obj: 2.059214e+00 | CPU: 190.86 KiB
│ │ ✓ | adnlp | time: 1.308 s | iters: 93 | obj: 2.059214e+00 | CPU: 302.44 MiB
│ │ ✓ | exa | time: 870.029 ms | iters: 106 | obj: 2.059214e+00 | CPU: 438.41 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 2.621 s | iters: 111 | obj: 2.058960e+00 | CPU: 212.19 KiB
│ │ ✓ | adnlp | time: 4.241 s | iters: 128 | obj: 2.059312e+00 | CPU: 831.45 MiB
│ │ ✓ | exa | time: 2.589 s | iters: 132 | obj: 2.059511e+00 | CPU: 767.33 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 427.989 ms | iters: 117 | obj: 2.058569e+00 | CPU: 35.63 MiB
│ │ ✓ | adnlp | time: 574.071 ms | iters: 117 | obj: 2.058569e+00 | CPU: 196.21 MiB
│ │ ✓ | exa | time: 319.365 ms | iters: 117 | obj: 2.058569e+00 | CPU: 26.02 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 2.718 s | iters: 252 | obj: 2.059179e+00 | CPU: 137.15 MiB
│ │ ✓ | adnlp | time: 6.067 s | iters: 416 | obj: 2.059179e+00 | CPU: 1.55 GiB
│ │ ✓ | exa | time: 3.082 s | iters: 345 | obj: 2.059179e+00 | CPU: 153.99 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 11.672 s | iters: 534 | obj: 2.059433e+00 | CPU: 501.22 MiB
│ │ ✓ | adnlp | time: 20.443 s | iters: 689 | obj: 2.059433e+00 | CPU: 4.91 GiB
│ │ ✓ | exa | time: 9.067 s | iters: 521 | obj: 2.059433e+00 | CPU: 442.19 MiB
│ └─
└─
┌─ Problem: jackson
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 21.286 ms | iters: 14 | obj: 1.918604e-01 | CPU: 28.70 KiB
│ │ ✓ | adnlp | time: 30.616 ms | iters: 14 | obj: 1.918604e-01 | CPU: 3.86 MiB
│ │ ✓ | exa | time: 21.870 ms | iters: 14 | obj: 1.918604e-01 | CPU: 94.20 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 61.563 ms | iters: 18 | obj: 1.918218e-01 | CPU: 36.14 KiB
│ │ ✓ | adnlp | time: 91.708 ms | iters: 18 | obj: 1.918218e-01 | CPU: 11.97 MiB
│ │ ✓ | exa | time: 63.379 ms | iters: 18 | obj: 1.918218e-01 | CPU: 184.95 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 96.959 ms | iters: 16 | obj: 1.918162e-01 | CPU: 32.42 KiB
│ │ ✓ | adnlp | time: 172.763 ms | iters: 16 | obj: 1.918162e-01 | CPU: 21.45 MiB
│ │ ✓ | exa | time: 100.489 ms | iters: 16 | obj: 1.918162e-01 | CPU: 327.52 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 18.628 ms | iters: 20 | obj: 1.918580e-01 | CPU: 5.21 MiB
│ │ ✓ | adnlp | time: 34.153 ms | iters: 20 | obj: 1.918580e-01 | CPU: 9.00 MiB
│ │ ✓ | exa | time: 19.497 ms | iters: 20 | obj: 1.918580e-01 | CPU: 4.77 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 40.804 ms | iters: 19 | obj: 1.918158e-01 | CPU: 11.93 MiB
│ │ ✓ | adnlp | time: 76.209 ms | iters: 19 | obj: 1.918158e-01 | CPU: 20.73 MiB
│ │ ✓ | exa | time: 43.146 ms | iters: 19 | obj: 1.918158e-01 | CPU: 10.83 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 82.845 ms | iters: 20 | obj: 1.918046e-01 | CPU: 25.23 MiB
│ │ ✓ | adnlp | time: 163.989 ms | iters: 20 | obj: 1.918046e-01 | CPU: 42.61 MiB
│ │ ✓ | exa | time: 88.202 ms | iters: 20 | obj: 1.918046e-01 | CPU: 21.63 MiB
│ └─
└─
┌─ Problem: robbins
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 15.814 ms | iters: 12 | obj: 1.962627e+01 | CPU: 13.36 KiB
│ │ ✓ | adnlp | time: 21.277 ms | iters: 12 | obj: 1.962627e+01 | CPU: 2.29 MiB
│ │ ✓ | exa | time: 15.646 ms | iters: 12 | obj: 1.962627e+01 | CPU: 87.92 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 39.202 ms | iters: 14 | obj: 1.946667e+01 | CPU: 15.05 KiB
│ │ ✓ | adnlp | time: 55.485 ms | iters: 14 | obj: 1.946667e+01 | CPU: 6.47 MiB
│ │ ✓ | exa | time: 40.590 ms | iters: 14 | obj: 1.946667e+01 | CPU: 176.80 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 108.162 ms | iters: 22 | obj: 1.944023e+01 | CPU: 21.83 KiB
│ │ ✓ | adnlp | time: 160.827 ms | iters: 22 | obj: 1.944023e+01 | CPU: 19.31 MiB
│ │ ✓ | exa | time: 112.958 ms | iters: 22 | obj: 1.944023e+01 | CPU: 329.48 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 22.394 ms | iters: 29 | obj: 1.962627e+01 | CPU: 2.97 MiB
│ │ ✓ | adnlp | time: 35.221 ms | iters: 29 | obj: 1.962627e+01 | CPU: 7.52 MiB
│ │ ✓ | exa | time: 23.257 ms | iters: 29 | obj: 1.962627e+01 | CPU: 2.72 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 47.688 ms | iters: 27 | obj: 1.946665e+01 | CPU: 6.15 MiB
│ │ ✓ | adnlp | time: 78.617 ms | iters: 27 | obj: 1.946665e+01 | CPU: 16.98 MiB
│ │ ✓ | exa | time: 49.654 ms | iters: 27 | obj: 1.946665e+01 | CPU: 5.76 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 156.201 ms | iters: 47 | obj: 1.944023e+01 | CPU: 16.46 MiB
│ │ ✓ | adnlp | time: 263.824 ms | iters: 47 | obj: 1.944023e+01 | CPU: 53.36 MiB
│ │ ✓ | exa | time: 161.942 ms | iters: 47 | obj: 1.944023e+01 | CPU: 15.11 MiB
│ └─
└─
┌─ Problem: robot
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 92.453 ms | iters: 18 | obj: 9.141396e+00 | CPU: 36.14 KiB
│ │ ✓ | adnlp | time: 116.926 ms | iters: 18 | obj: 9.141396e+00 | CPU: 12.91 MiB
│ │ ✓ | exa | time: 68.224 ms | iters: 18 | obj: 9.141396e+00 | CPU: 180.83 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 296.899 ms | iters: 21 | obj: 9.141008e+00 | CPU: 41.72 KiB
│ │ ✓ | adnlp | time: 375.519 ms | iters: 21 | obj: 9.141008e+00 | CPU: 36.89 MiB
│ │ ✓ | exa | time: 193.888 ms | iters: 21 | obj: 9.141008e+00 | CPU: 373.55 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 1.098 s | iters: 33 | obj: 9.141261e+00 | CPU: 65.59 KiB
│ │ ✓ | adnlp | time: 1.107 s | iters: 31 | obj: 9.142037e+00 | CPU: 106.70 MiB
│ │ ✓ | exa | time: 606.892 ms | iters: 29 | obj: 9.141600e+00 | CPU: 699.23 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 103.244 ms | iters: 22 | obj: 9.141450e+00 | CPU: 23.70 MiB
│ │ ✗ | adnlp : ERROR: DomainError(Inf, "sincos(x) is only defined for finite x.")
│ │ ✓ | exa | time: 66.621 ms | iters: 22 | obj: 9.141450e+00 | CPU: 8.04 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 358.331 ms | iters: 28 | obj: 9.141126e+00 | CPU: 61.76 MiB
│ │ ✓ | adnlp | time: 424.021 ms | iters: 28 | obj: 9.141126e+00 | CPU: 67.88 MiB
│ │ ✓ | exa | time: 213.016 ms | iters: 28 | obj: 9.141126e+00 | CPU: 22.21 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 861.779 ms | iters: 27 | obj: 9.141204e+00 | CPU: 124.54 MiB
│ │ ✓ | adnlp | time: 904.780 ms | iters: 28 | obj: 9.142465e+00 | CPU: 133.60 MiB
│ │ ✓ | exa | time: 523.390 ms | iters: 27 | obj: 9.141204e+00 | CPU: 42.55 MiB
│ └─
└─
┌─ Problem: rocket
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 43.117 ms | iters: 16 | obj: 1.012836e+00 | CPU: 32.42 KiB
│ │ ✓ | adnlp | time: 58.116 ms | iters: 16 | obj: 1.012836e+00 | CPU: 15.20 MiB
│ │ ✓ | exa | time: 24.688 ms | iters: 16 | obj: 1.012836e+00 | CPU: 98.89 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 110.505 ms | iters: 17 | obj: 1.012836e+00 | CPU: 34.28 KiB
│ │ ✓ | adnlp | time: 150.488 ms | iters: 17 | obj: 1.012836e+00 | CPU: 39.89 MiB
│ │ ✓ | exa | time: 60.731 ms | iters: 17 | obj: 1.012836e+00 | CPU: 186.55 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 300.899 ms | iters: 20 | obj: 1.012836e+00 | CPU: 39.86 KiB
│ │ ✓ | adnlp | time: 378.167 ms | iters: 20 | obj: 1.012836e+00 | CPU: 92.29 MiB
│ │ ✓ | exa | time: 143.319 ms | iters: 20 | obj: 1.012836e+00 | CPU: 334.27 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 46.545 ms | iters: 18 | obj: 1.012810e+00 | CPU: 19.71 MiB
│ │ ✓ | adnlp | time: 54.445 ms | iters: 18 | obj: 1.012810e+00 | CPU: 20.32 MiB
│ │ ✓ | exa | time: 20.311 ms | iters: 18 | obj: 1.012810e+00 | CPU: 4.45 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 123.495 ms | iters: 19 | obj: 1.012773e+00 | CPU: 49.28 MiB
│ │ ✓ | adnlp | time: 143.148 ms | iters: 19 | obj: 1.012773e+00 | CPU: 52.11 MiB
│ │ ✓ | exa | time: 52.260 ms | iters: 19 | obj: 1.012773e+00 | CPU: 10.49 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 282.835 ms | iters: 18 | obj: 1.012710e+00 | CPU: 96.47 MiB
│ │ ✓ | adnlp | time: 301.226 ms | iters: 18 | obj: 1.012710e+00 | CPU: 98.86 MiB
│ │ ✓ | exa | time: 105.224 ms | iters: 18 | obj: 1.012710e+00 | CPU: 19.97 MiB
│ └─
└─
┌─ Problem: space_shuttle
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 3.325 s | iters: 143 | obj: 3.853784e-01 | CPU: 268.56 KiB
│ │ ✓ | adnlp | time: 1.516 s | iters: 124 | obj: 3.853783e-01 | CPU: 211.53 MiB
│ │ ✓ | exa | time: 849.088 ms | iters: 124 | obj: 3.853783e-01 | CPU: 332.83 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 7.334 s | iters: 114 | obj: 5.958750e-01 | CPU: 214.64 KiB
│ │ ✓ | adnlp | time: 3.857 s | iters: 108 | obj: 5.958750e-01 | CPU: 458.96 MiB
│ │ ✓ | exa | time: 1.832 s | iters: 108 | obj: 5.958750e-01 | CPU: 489.77 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 20.669 s | iters: 139 | obj: 3.050204e-01 | CPU: 264.25 KiB
│ │ ✓ | adnlp | time: 36.471 s | iters: 228 | obj: 3.036105e-01 | CPU: 1.88 GiB
│ │ ✓ | exa | time: 12.780 s | iters: 200 | obj: 3.037427e-01 | CPU: 874.72 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 2.508 s | iters: 116 | obj: 3.853767e-01 | CPU: 149.03 MiB
│ │ ✓ | adnlp | time: 1.779 s | iters: 148 | obj: 3.854907e-01 | CPU: 300.50 MiB
│ │ ✓ | exa | time: 786.350 ms | iters: 148 | obj: 3.854907e-01 | CPU: 44.76 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 4.365 s | iters: 75 | obj: 5.958750e-01 | CPU: 342.39 MiB
│ │ ✓ | adnlp | time: 4.324 s | iters: 138 | obj: 5.958750e-01 | CPU: 683.43 MiB
│ │ ✓ | exa | time: 1.756 s | iters: 138 | obj: 5.958750e-01 | CPU: 99.36 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 182.757 s | iters: 864 | obj: 3.050207e-01 | CPU: 2.29 GiB
│ │ ✓ | adnlp | time: 21.023 s | iters: 230 | obj: 3.050207e-01 | CPU: 2.47 GiB
│ │ ✗ | exa | time: 9.339 s | iters: 254 | obj: 1.691066e-01 | CPU: 451.53 MiB
│ └─
└─
┌─ Problem: steering
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 34.126 ms | iters: 12 | obj: 5.545770e-01 | CPU: 25.38 KiB
│ │ ✓ | adnlp | time: 39.413 ms | iters: 12 | obj: 5.545770e-01 | CPU: 6.94 MiB
│ │ ✓ | exa | time: 28.375 ms | iters: 12 | obj: 5.545770e-01 | CPU: 106.84 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 114.558 ms | iters: 17 | obj: 5.545719e-01 | CPU: 34.67 KiB
│ │ ✓ | adnlp | time: 134.376 ms | iters: 17 | obj: 5.545719e-01 | CPU: 23.39 MiB
│ │ ✓ | exa | time: 96.456 ms | iters: 17 | obj: 5.545719e-01 | CPU: 222.38 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 258.912 ms | iters: 18 | obj: 5.545711e-01 | CPU: 36.53 KiB
│ │ ✓ | adnlp | time: 303.367 ms | iters: 18 | obj: 5.545711e-01 | CPU: 49.13 MiB
│ │ ✓ | exa | time: 209.373 ms | iters: 18 | obj: 5.545711e-01 | CPU: 406.78 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 31.299 ms | iters: 13 | obj: 5.545770e-01 | CPU: 9.32 MiB
│ │ ✓ | adnlp | time: 34.662 ms | iters: 13 | obj: 5.545770e-01 | CPU: 9.83 MiB
│ │ ✓ | exa | time: 23.339 ms | iters: 13 | obj: 5.545770e-01 | CPU: 2.82 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 83.411 ms | iters: 14 | obj: 5.545718e-01 | CPU: 23.11 MiB
│ │ ✓ | adnlp | time: 97.533 ms | iters: 14 | obj: 5.545718e-01 | CPU: 25.10 MiB
│ │ ✓ | exa | time: 60.825 ms | iters: 14 | obj: 5.545718e-01 | CPU: 6.42 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 195.305 ms | iters: 15 | obj: 5.545711e-01 | CPU: 44.78 MiB
│ │ ✓ | adnlp | time: 215.652 ms | iters: 15 | obj: 5.545711e-01 | CPU: 52.36 MiB
│ │ ✓ | exa | time: 141.139 ms | iters: 15 | obj: 5.545711e-01 | CPU: 12.58 MiB
│ └─
└─
┌─ Problem: vanderpol
│
├──┬ Solver: ipopt, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 4.487 ms | iters: 3 | obj: 1.047836e+00 | CPU: 8.03 KiB
│ │ ✓ | adnlp | time: 6.230 ms | iters: 3 | obj: 1.047836e+00 | CPU: 955.22 KiB
│ │ ✓ | exa | time: 3.715 ms | iters: 3 | obj: 1.047836e+00 | CPU: 53.44 KiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 9.417 ms | iters: 3 | obj: 1.047812e+00 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 13.715 ms | iters: 3 | obj: 1.047812e+00 | CPU: 2.30 MiB
│ │ ✓ | exa | time: 7.524 ms | iters: 3 | obj: 1.047812e+00 | CPU: 102.50 KiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 17.679 ms | iters: 3 | obj: 1.047808e+00 | CPU: 8.25 KiB
│ │ ✓ | adnlp | time: 26.996 ms | iters: 3 | obj: 1.047808e+00 | CPU: 4.58 MiB
│ │ ✓ | exa | time: 13.943 ms | iters: 3 | obj: 1.047808e+00 | CPU: 184.69 KiB
│ └─
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 200
│ │ ✓ | JuMP | time: 5.668 ms | iters: 3 | obj: 1.047836e+00 | CPU: 4.55 MiB
│ │ ✓ | adnlp | time: 5.532 ms | iters: 3 | obj: 1.047836e+00 | CPU: 2.02 MiB
│ │ ✓ | exa | time: 3.101 ms | iters: 3 | obj: 1.047836e+00 | CPU: 1.65 MiB
│ │
│ │ N = 500
│ │ ✓ | JuMP | time: 13.020 ms | iters: 3 | obj: 1.047812e+00 | CPU: 10.52 MiB
│ │ ✓ | adnlp | time: 12.446 ms | iters: 3 | obj: 1.047812e+00 | CPU: 4.40 MiB
│ │ ✓ | exa | time: 6.664 ms | iters: 3 | obj: 1.047812e+00 | CPU: 3.47 MiB
│ │
│ │ N = 1000
│ │ ✓ | JuMP | time: 26.182 ms | iters: 3 | obj: 1.047808e+00 | CPU: 21.94 MiB
│ │ ✓ | adnlp | time: 24.726 ms | iters: 3 | obj: 1.047808e+00 | CPU: 8.38 MiB
│ │ ✓ | exa | time: 12.571 ms | iters: 3 | obj: 1.047808e+00 | CPU: 6.51 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-10-25 13:28:15 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.2
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 v0.21.4
[4076af6c] JuMP v1.29.2
[d72a61cc] MadNLPGPU v0.7.16
[3b83494e] MadNLPMumps v0.5.1
[f4238b75] NLPModelsIpopt v0.11.0
[5f98b655] OptimalControl v1.1.5
[59046045] OptimalControlProblems v0.3.1
[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
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated`📚 Complete manifest
Project CTBenchmarks v0.2.2
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.4
[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.1
[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.14.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 v0.21.4
[0f8b85d8] JSON3 v1.14.3
[4076af6c] JuMP v1.29.2
[63c18a36] KernelAbstractions v0.9.38
[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.5
[59046045] OptimalControlProblems v0.3.1
[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.1
[0a514795] SparseMatrixColorings v0.4.22
[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
[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 ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`⚡ Results
Benchmarks results:
┌─ Problem: beam
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 59.865 ms | iters: 22 | obj: 8.889006e+00 | CPU: 8.45 MiB
│ │ ✓ | exa_gpu | time: 142.711 ms | iters: 25 | obj: 8.827707e+00 | CPU: 9.238 MiB | GPU: 11.902 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 320.342 ms | iters: 17 | obj: 8.888990e+00 | CPU: 34.86 MiB
│ │ ✓ | exa_gpu | time: 193.168 ms | iters: 31 | obj: 8.586481e+00 | CPU: 13.002 MiB | GPU: 61.717 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 700.976 ms | iters: 18 | obj: 8.889088e+00 | CPU: 71.26 MiB
│ │ ✓ | exa_gpu | time: 188.773 ms | iters: 22 | obj: 8.291850e+00 | CPU: 12.807 MiB | GPU: 116.519 MiB
│ └─
└─
┌─ Problem: chain
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 32.421 ms | iters: 6 | obj: 5.068510e+00 | CPU: 6.74 MiB
│ │ ✓ | exa_gpu | time: 95.181 ms | iters: 13 | obj: 5.065447e+00 | CPU: 6.466 MiB | GPU: 19.022 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 294.845 ms | iters: 5 | obj: 5.068475e+00 | CPU: 31.13 MiB
│ │ ✓ | exa_gpu | time: 148.442 ms | iters: 16 | obj: 5.053179e+00 | CPU: 11.576 MiB | GPU: 96.378 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 656.787 ms | iters: 5 | obj: 5.068449e+00 | CPU: 61.82 MiB
│ │ ✓ | exa_gpu | time: 3.129 s | iters: 403 | obj: 5.037613e+00 | CPU: 191.632 MiB | GPU: 553.801 MiB
│ └─
└─
┌─ Problem: double_oscillator
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 41.685 ms | iters: 5 | obj: 9.110070e-04 | CPU: 13.30 MiB
│ │ ✓ | exa_gpu | time: 73.667 ms | iters: 8 | obj: 8.386344e-04 | CPU: 6.162 MiB | GPU: 37.826 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 536.670 ms | iters: 5 | obj: 9.110369e-04 | CPU: 64.60 MiB
│ │ ✓ | exa_gpu | time: 102.482 ms | iters: 4 | obj: 9.079947e-04 | CPU: 13.692 MiB | GPU: 186.410 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 1.152 s | iters: 5 | obj: 9.110439e-04 | CPU: 128.74 MiB
│ │ ✓ | exa_gpu | time: 159.148 ms | iters: 4 | obj: 9.048849e-04 | CPU: 24.686 MiB | GPU: 372.791 MiB
│ └─
└─
┌─ Problem: ducted_fan
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 1.702 s | iters: 73 | obj: 1.831625e+03 | CPU: 64.56 MiB
│ │ ✓ | exa_gpu | time: 1.931 s | iters: 127 | obj: 1.828961e+03 | CPU: 67.785 MiB | GPU: 91.003 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 17.344 s | iters: 114 | obj: 1.831617e+03 | CPU: 604.21 MiB
│ │ ✓ | exa_gpu | time: 2.336 s | iters: 39 | obj: 1.818331e+03 | CPU: 38.948 MiB | GPU: 352.288 MiB
│ │
│ │ N = 10000
│ │ ✗ | exa | time: 24.935 s | iters: 69 | obj: 1.176093e+02 | CPU: 982.00 MiB
│ │ ✓ | exa_gpu | time: 17.786 s | iters: 195 | obj: 1.805046e+03 | CPU: 129.078 MiB | GPU: 1.036 GiB
│ └─
└─
┌─ Problem: electric_vehicle
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 14.304 ms | iters: 3 | obj: 1.228585e+03 | CPU: 6.35 MiB
│ │ ✓ | exa_gpu | time: 74.098 ms | iters: 11 | obj: 1.227994e+03 | CPU: 5.935 MiB | GPU: 17.560 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 133.396 ms | iters: 3 | obj: 1.228581e+03 | CPU: 29.99 MiB
│ │ ✓ | exa_gpu | time: 92.120 ms | iters: 12 | obj: 1.225635e+03 | CPU: 10.414 MiB | GPU: 88.029 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 286.716 ms | iters: 3 | obj: 1.228580e+03 | CPU: 59.53 MiB
│ │ ✓ | exa_gpu | time: 159.506 ms | iters: 12 | obj: 1.222695e+03 | CPU: 15.533 MiB | GPU: 176.041 MiB
│ └─
└─
┌─ Problem: glider
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 11.675 s | iters: 734 | obj: 1.247985e+03 | CPU: 318.60 MiB
│ │ ✗ | exa_gpu | time: 15.737 s | iters: 1000 | obj: 4.999827e+02 | CPU: 780.544 MiB | GPU: 228.325 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 64.147 s | iters: 522 | obj: 1.247987e+03 | CPU: 1.16 GiB
│ │ ✗ | exa_gpu | time: 47.958 s | iters: 1000 | obj: 1.596359e+02 | CPU: 1.069 GiB | GPU: 1.079 GiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 117.346 s | iters: 459 | obj: 1.247987e+03 | CPU: 2.02 GiB
│ │ ✗ | exa_gpu | time: 93.329 s | iters: 1000 | obj: 4.815478e+02 | CPU: 776.781 MiB | GPU: 2.220 GiB
│ └─
└─
┌─ Problem: insurance
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 10.369 s | iters: 538 | obj: 2.059433e+00 | CPU: 462.87 MiB
│ │ ✓ | exa_gpu | time: 577.607 ms | iters: 61 | obj: 1.175172e+00 | CPU: 28.485 MiB | GPU: 57.504 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 90.667 s | iters: 752 | obj: 2.059534e+00 | CPU: 3.20 GiB
│ │ ✓ | exa_gpu | time: 3.807 s | iters: 245 | obj: 1.173336e+00 | CPU: 113.984 MiB | GPU: 594.673 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 149.623 s | iters: 558 | obj: 2.059237e+00 | CPU: 4.81 GiB
│ │ ✓ | exa_gpu | time: 7.898 s | iters: 228 | obj: 1.171076e+00 | CPU: 123.755 MiB | GPU: 1.136 GiB
│ └─
└─
┌─ Problem: jackson
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 96.405 ms | iters: 20 | obj: 1.918046e-01 | CPU: 21.63 MiB
│ │ ✓ | exa_gpu | time: 234.059 ms | iters: 31 | obj: -7.511061e-07 | CPU: 13.242 MiB | GPU: 34.912 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 707.112 ms | iters: 19 | obj: 1.917600e-01 | CPU: 103.29 MiB
│ │ ✓ | exa_gpu | time: 224.028 ms | iters: 22 | obj: -3.468065e-07 | CPU: 17.825 MiB | GPU: 167.117 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 1.478 s | iters: 18 | obj: 1.917093e-01 | CPU: 200.21 MiB
│ │ ✓ | exa_gpu | time: 297.914 ms | iters: 23 | obj: -7.464148e-07 | CPU: 27.905 MiB | GPU: 335.868 MiB
│ └─
└─
┌─ Problem: robbins
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 169.545 ms | iters: 47 | obj: 1.944023e+01 | CPU: 15.11 MiB
│ │ ✓ | exa_gpu | time: 193.444 ms | iters: 25 | obj: 1.942160e+01 | CPU: 10.050 MiB | GPU: 17.509 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 1.845 s | iters: 63 | obj: 1.943235e+01 | CPU: 89.39 MiB
│ │ ✓ | exa_gpu | time: 903.473 ms | iters: 107 | obj: 1.934096e+01 | CPU: 39.959 MiB | GPU: 130.364 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 2.913 s | iters: 43 | obj: 1.943232e+01 | CPU: 136.58 MiB
│ │ ✓ | exa_gpu | time: 891.014 ms | iters: 88 | obj: 1.925063e+01 | CPU: 37.560 MiB | GPU: 240.557 MiB
│ └─
└─
┌─ Problem: robot
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 587.719 ms | iters: 27 | obj: 9.141204e+00 | CPU: 42.55 MiB
│ │ ✓ | exa_gpu | time: 518.742 ms | iters: 30 | obj: 9.123238e+00 | CPU: 18.727 MiB | GPU: 66.844 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 7.643 s | iters: 41 | obj: 9.142359e+00 | CPU: 307.02 MiB
│ │ ✓ | exa_gpu | time: 1.635 s | iters: 27 | obj: 9.053093e+00 | CPU: 29.256 MiB | GPU: 329.227 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 19.166 s | iters: 47 | obj: 9.143634e+00 | CPU: 754.05 MiB
│ │ ✓ | exa_gpu | time: 3.372 s | iters: 32 | obj: 8.965878e+00 | CPU: 47.584 MiB | GPU: 672.443 MiB
│ └─
└─
┌─ Problem: rocket
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 114.797 ms | iters: 18 | obj: 1.012710e+00 | CPU: 19.97 MiB
│ │ ✓ | exa_gpu | time: 506.758 ms | iters: 50 | obj: 1.000000e+00 | CPU: 21.575 MiB | GPU: 44.095 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 761.548 ms | iters: 18 | obj: 1.012223e+00 | CPU: 97.64 MiB
│ │ ✓ | exa_gpu | time: 768.695 ms | iters: 27 | obj: 1.000007e+00 | CPU: 21.807 MiB | GPU: 201.423 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 1.634 s | iters: 17 | obj: 1.011682e+00 | CPU: 190.76 MiB
│ │ ✓ | exa_gpu | time: 1.208 s | iters: 24 | obj: 1.000001e+00 | CPU: 31.671 MiB | GPU: 397.830 MiB
│ └─
└─
┌─ Problem: space_shuttle
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 13.171 s | iters: 340 | obj: 3.050195e-01 | CPU: 599.43 MiB
│ │ ✓ | exa_gpu | time: 10.997 s | iters: 420 | obj: -8.780199e-02 | CPU: 326.389 MiB | GPU: 309.406 MiB
│ │
│ │ N = 5000
│ │ ✗ | exa | time: 74.983 s | iters: 301 | obj: -9.202651e-01 | CPU: 1.95 GiB
│ │ ✗ | exa_gpu | time: 23.621 s | iters: 293 | obj: 4.215226e-01 | CPU: 324.947 MiB | GPU: 1.298 GiB
│ │
│ │ N = 10000
│ │ ✗ | exa | time: 90.168 s | iters: 185 | obj: 2.310158e-01 | CPU: 2.92 GiB
│ │ ✗ | exa_gpu | time: 22.454 s | iters: 166 | obj: 4.087187e-01 | CPU: 242.169 MiB | GPU: 2.189 GiB
│ └─
└─
┌─ Problem: steering
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 152.764 ms | iters: 15 | obj: 5.545711e-01 | CPU: 12.58 MiB
│ │ ✓ | exa_gpu | time: 223.693 ms | iters: 14 | obj: 5.545599e-01 | CPU: 8.125 MiB | GPU: 27.359 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 1.203 s | iters: 16 | obj: 5.545709e-01 | CPU: 62.15 MiB
│ │ ✓ | exa_gpu | time: 807.203 ms | iters: 16 | obj: 5.545179e-01 | CPU: 14.275 MiB | GPU: 138.008 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 2.862 s | iters: 18 | obj: 5.545709e-01 | CPU: 129.56 MiB
│ │ ✓ | exa_gpu | time: 1.202 s | iters: 16 | obj: 5.544658e-01 | CPU: 21.192 MiB | GPU: 275.910 MiB
│ └─
└─
┌─ Problem: vanderpol
│
├──┬ Solver: madnlp, Discretization: trapeze
│ │
│ │ N = 1000
│ │ ✓ | exa | time: 14.201 ms | iters: 3 | obj: 1.047808e+00 | CPU: 6.51 MiB
│ │ ✓ | exa_gpu | time: 67.615 ms | iters: 7 | obj: 1.045639e+00 | CPU: 4.413 MiB | GPU: 17.544 MiB
│ │
│ │ N = 5000
│ │ ✓ | exa | time: 140.096 ms | iters: 3 | obj: 1.047807e+00 | CPU: 30.82 MiB
│ │ ✓ | exa_gpu | time: 85.506 ms | iters: 7 | obj: 1.036994e+00 | CPU: 8.680 MiB | GPU: 87.681 MiB
│ │
│ │ N = 10000
│ │ ✓ | exa | time: 306.031 ms | iters: 3 | obj: 1.047807e+00 | CPU: 61.20 MiB
│ │ ✓ | exa_gpu | time: 108.121 ms | iters: 7 | obj: 1.026238e+00 | CPU: 13.952 MiB | GPU: 175.349 MiB
│ └─
└─