CTBenchmarks.jl - Benchmarking of optimal control solvers

It is a pleasure to announce the release of CTBenchmarks.jl (v0.4.1), an under construction benchmarking suite that systematically compares solver–modeler combinations for optimal control problems.

Most of the optimal control problems benchmarked come from known problem sets: check references inside each problem documentation.

What is benchmarked

We conducted performance comparisons across multiple dimensions:

Performance Profiles

We provide Dolan–Moré performance profiles that compare all solver–model combinations across the complete problem suite:

These profiles show the relative performance of each combination, making it easy to identify which approaches are most efficient for optimal control problems.

Problem-by-Problem Analysis

For each problem, we provide detailed comparisons showing how solve time scales with grid size:

The documentation includes:

  • :bar_chart: Pre-computed benchmark results from CI runs on CPU and GPU platforms
  • :chart_increasing: Performance profiles for both time and iteration counts
  • :magnifying_glass_tilted_left: Problem-by-problem comparisons with detailed metrics
  • :desktop_computer: Complete reproducibility information: Julia version, dependencies, hardware specifications

Acknowledgments

We would like to thank all contributors for their work on this package!

Contributing

This is ongoing work and contributions are welcome. Whether you want to add support for new solvers, contribute new optimal control problems, or improve the benchmarking infrastructure, feel free to open an issue or start a discussion on GitHub.

About control-toolbox

CTBenchmarks.jl is part of the control-toolbox ecosystem, which brings together Julia packages for mathematical control and its applications:

Tags: optimization control benchmark nlp gpu

3 Likes