Benchmark of open-source smooth NLP solvers

The ALGLIB numerical library features one of the best open-source nonlinear programming suites available in C++, C#, Java and other languages under both free and commercial licenses. Our NLP suite includes several algorithms: large-scale SQP for smooth problems and metaheuristic GDEMO for noisy/stochastic derivative-free optimization. All solvers are robust, parallelized and capable of efficiently handling unconstrained and constrained problems with box, linear and nonlinear constraints.

This article compares large-scale SQP with other open-source smooth solvers. A comparison of metaheuristic solvers can be found on another page. A high-level overview of the ALGLIB nonlinear programming suite is provided here.

Benchmark setup

Solvers compared: the following solvers were chosen for the comparison:

All solvers were used with default parameters in a single-threaded mode. Although ALGLIB (and some other solvers tested) supports parallelism, for the simplicity of comparison we used a single-threaded mode in this benchmark.

Test set: a medium-dimensional subset (up to 100 vars, up to 200 constraints) of the CUTEst set. This set includes problems with all kinds of constraints, including box, linear and nonlinear equality/inequality/range ones.

Measurement methodology: all solvers were run until a time budget of 30 seconds was exhausted. If a solver failed to stop or failed to converge, its running time is considered equal to . As a measure of algorithm quality we used the trimean (a weighted sum of quartiles) of function evaluations needed to converge. Using trimean instead of the mean allows us to handle infinite running times (failures) as long as the solver fails in less than 75% of cases.

Benchmark result

The chart above clearly shows that ALGLIB is much faster than its closest competitor!

This article is licensed for personal use only.

Download ALGLIB for C++ / C# / Java / Python / ...

ALGLIB Project offers you two editions of ALGLIB:

ALGLIB Free Edition:
+delivered for free
+offers full set of numerical functionality
+extensive algorithmic optimizations
-no multithreading
-non-commercial license

ALGLIB Commercial Edition:
+flexible pricing
+offers full set of numerical functionality
+extensive algorithmic optimizations
+high performance (SMP, SIMD)
+commercial license with support plan

Links to download sections for Free and Commercial editions can be found below:

ALGLIB 4.01.0 for C++

C++ library.
Delivered with sources.
Monolithic design.
Extreme portability.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for C#

C# library with native kernels.
Delivered with sources.
VB.NET and IronPython wrappers.
Extreme portability.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for Java

Java wrapper around HPC core.
Delivered with sources.
Seamless integration with Java.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for Delphi

Delphi wrapper around C core.
Delivered as precompiled binary.
Compatible with FreePascal.
Editions:   FREE   COMMERCIAL

ALGLIB 4.01.0 for CPython

CPython wrapper around C core.
Delivered as precompiled binary.
Editions:   FREE   COMMERCIAL