Performance tips

The package ADNLPModels.jl is designed to easily model optimization problems andto allow an efficient access to the NLPModel API. In this tutorial, we will see some tips to ensure the maximum performance of the model.

Use in-place constructor

When dealing with a constrained optimization problem, it is recommended to use in-place constraint functions.

using ADNLPModels, NLPModels
f(x) = sum(x)
x0 = ones(2)
lcon = ucon = ones(1)
c_out(x) = [x[1]]
nlp_out = ADNLPModel(f, x0, c_out, lcon, ucon)

c_in(cx, x) = begin
  cx[1] = x[1]
  return cx
end
nlp_in = ADNLPModel!(f, x0, c_in, lcon, ucon)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  SparseADJacobian,
  SparseADHessian,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (100.00% sparsity)   0               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: ( 50.00% sparsity)   1     

  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
using BenchmarkTools
cx = rand(1)
x = 18 * ones(2)
@btime cons!(nlp_out, x, cx)
1-element Vector{Float64}:
 18.0
@btime cons!(nlp_in, x, cx)
1-element Vector{Float64}:
 18.0

The difference between the two increases with the dimension.

Note that the same applies to nonlinear least squares problems.

F(x) = [
    x[1];
    x[1] + x[2]^2;
    sin(x[2]);
    exp(x[1] + 0.5)
]
x0 = ones(2)
nequ = 4
nls_out = ADNLSModel(F, x0, nequ)

F!(Fx, x) = begin
  Fx[1] = x[1]
  Fx[2] = x[1] + x[2]^2
  Fx[3] = sin(x[2])
  Fx[4] = exp(x[1] + 0.5)
  return Fx
end
nls_in = ADNLSModel!(F!, x0, nequ)
ADNLSModel - Nonlinear least-squares model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  EmptyADbackend,
  EmptyADbackend,
  EmptyADbackend,
  SparseADHessian,
  EmptyADbackend,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  SparseADJacobian,
  SparseADHessian,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0        All residuals: ████████████████████ 4     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            nonlinear: ████████████████████ 4     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 nnzj: ( 37.50% sparsity)   5     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 nnzh: ( 33.33% sparsity)   2     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                         nnzj: (------% sparsity)         

  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
    jac_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0       jprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0      jtprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
   hess_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0       jhess_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0       hprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
Fx = rand(4)
@btime residual!(nls_out, x, Fx)
4-element Vector{Float64}:
  18.0
 342.0
  -0.7509872467716762
   1.0825498775023076e8
@btime residual!(nls_in, x, Fx)
4-element Vector{Float64}:
  18.0
 342.0
  -0.7509872467716762
   1.0825498775023076e8

This phenomenon also extends to related backends.

Fx = rand(4)
v = ones(2)
@btime jprod_residual!(nls_out, x, v, Fx)
4-element Vector{Float64}:
  1.0
 37.0
  0.6603167082440802
  1.0825498775023076e8
@btime jprod_residual!(nls_in, x, v, Fx)
4-element Vector{Float64}:
  1.0
 37.0
  0.6603167082440802
  1.0825498775023076e8

Use only the needed operations

It is tempting to define the most generic and efficient ADNLPModel from the start.

using ADNLPModels, NLPModels
f(x) = (x[1] - x[2])^2
x0 = ones(2)
lcon = ucon = ones(1)
c_in(cx, x) = begin
  cx[1] = x[1]
  return cx
end
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, show_time = true)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  SparseADJacobian,
  SparseADHessian,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: ( 50.00% sparsity)   1     

  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     

However, depending on the size of the problem this might time consuming as initializing each backend takes time. Besides, some solvers may not require all the API to solve the problem. For instance, Percival.jl is matrix-free solver in the sense that it only uses jprod, jtprod and hprod.

using Percival
stats = percival(nlp)
"Execution stats: first-order stationary"
nlp.counters
  Counters:
             obj: ████████████████████ 1                 grad: ████████████████████ 1                 cons: ████████████████████ 1     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ████████████████████ 1                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ████████████████████ 1           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     

Therefore, it is more efficient to avoid preparing Jacobian and Hessian backends in this case.

nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, jacobian_backend = ADNLPModels.EmptyADbackend, hessian_backend = ADNLPModels.EmptyADbackend, show_time = true)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  EmptyADbackend,
  EmptyADbackend,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: (  0.00% sparsity)   2     

  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     

or, equivalently, using the matrix_free keyword argument

nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, show_time = true, matrix_free = true)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
  ForwardDiffADGradient,
  ForwardDiffADHvprod,
  ForwardDiffADJprod,
  ForwardDiffADJtprod,
  EmptyADbackend,
  EmptyADbackend,
  ForwardDiffADGHjvprod,
}
  Problem name: Generic
   All variables: ████████████████████ 2      All constraints: ████████████████████ 1     
            free: ████████████████████ 2                 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                fixed: ████████████████████ 1     
          infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
            nnzh: (  0.00% sparsity)   3               linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
                                                    nonlinear: ████████████████████ 1     
                                                         nnzj: (  0.00% sparsity)   2     

  Counters:
             obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
        cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0             cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                  jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0              jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
         jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0            jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
       jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0           jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
      jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0                hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     
           jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0               jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0     

Benchmarks

This package implements several backends for each method and it is possible to design your own backend as well. Then, one way to choose the most efficient one is to run benchmarks.

using ADNLPModels, NLPModels, OptimizationProblems

The package OptimizationProblems.jl provides a collection of optimization problems in JuMP and ADNLPModels syntax.

meta = OptimizationProblems.meta;
372×17 DataFrame
Rownvarvariable_nvarnconvariable_nconminimizenamehas_equalities_onlyhas_inequalities_onlyhas_boundshas_fixed_variablesobjtypecontypebest_known_lower_boundbest_known_upper_boundis_feasibledefined_everywhereorigin
Int64BoolInt64BoolBoolStringBoolBoolBoolBoolSymbolSymbolRealRealBool?Bool?Symbol
11false0falsetrueAMPGO02falsefalsefalsefalseotherunconstrained-Inf0.839498truemissingunknown
21false0falsetrueAMPGO03falsefalsefalsefalseotherunconstrained-Inf2.88961truemissingunknown
31false0falsetrueAMPGO04falsefalsefalsefalseotherunconstrained-Inf-2.5666truemissingunknown
41false0falsetrueAMPGO05falsefalsefalsefalseotherunconstrained-Inf-0.0truemissingunknown
51false0falsetrueAMPGO06falsefalsefalsefalseotherunconstrained-Inf3.5177e-43truemissingunknown
61false0falsetrueAMPGO07falsefalsefalsefalseotherunconstrained-Inf2.56475truemissingunknown
71false0falsetrueAMPGO08falsefalsefalsefalseotherunconstrained-Inf-2.0928truemissingunknown
81false0falsetrueAMPGO09falsefalsefalsefalseotherunconstrained-Inf0.921136truemissingunknown
91false0falsetrueAMPGO10falsefalsefalsefalseotherunconstrained-Inf-0.0truemissingunknown
101false0falsetrueAMPGO11falsefalsefalsefalseotherunconstrained-Inf-1.0truemissingunknown
111false0falsetrueAMPGO12falsefalsefalsefalseotherunconstrained-Inf1.0truemissingunknown
121false0falsetrueAMPGO13falsefalsefalsefalseotherunconstrained-1.5874-1.5874truemissingunknown
131false0falsetrueAMPGO14falsefalsefalsefalseotherunconstrained-Inf-0.0truemissingunknown
141false0falsetrueAMPGO15falsefalsefalsefalseotherunconstrained-Inf2.15385truemissingunknown
151false0falsetrueAMPGO18falsefalsefalsefalseotherunconstrained-Inf4.0truemissingunknown
161false0falsetrueAMPGO20falsefalsefalsefalseotherunconstrained-Inf3.92246e-43truemissingunknown
171false0falsetrueAMPGO21falsefalsefalsefalseotherunconstrained-Inf0.0truemissingunknown
181false0falsetrueAMPGO22falsefalsefalsefalseotherunconstrained-Inf1.0truemissingunknown
193false1falsetrueBOX2truefalsefalsefalseotherlinear-Inf0.942284truemissingunknown
203false0falsetrueBOX3falsefalsefalsefalseotherunconstrained-Inf662.868truemissingunknown
211false0falsetrueDus2_1falsefalsefalsefalseotherunconstrained-Inf7.38906truemissingunknown
221false0falsetrueDus2_3falsefalsefalsefalseotherunconstrained-Inf0.972973truemissingunknown
231false0falsetrueDus2_9falsefalsefalsefalseotherunconstrained-Inf1.0truemissingunknown
241false0falsetrueDuscubefalsefalsefalsefalseotherunconstrained-Inf-108.0truemissingunknown
2591true0falsetrueNZF1falsefalsefalsefalseotherunconstrained-Inf34698.4truemissingunknown
261false0falsetrueShpak1falsefalsefalsefalseotherunconstrained-Inf0.839498truemissingunknown
271false0falsetrueShpak2falsefalsefalsefalseotherunconstrained-Inf-0.747036truemissingunknown
281false0falsetrueShpak3falsefalsefalsefalseotherunconstrained-Inf2.63055truemissingunknown
291false0falsetrueShpak4falsefalsefalsefalseotherunconstrained-Inf-0.677439truemissingunknown
301false0falsetrueShpak5falsefalsefalsefalseotherunconstrained-Inf-1.00842truemissingunknown
311false0falsetrueShpak6falsefalsefalsefalseotherunconstrained-Inf-1.25667truemissingunknown
328false5falsetrueaircrftatruefalsetruetrueothergeneral-Inf0truemissingunknown
334false3falsetrueallinitfalsefalsefalsefalseothergeneral-InfInfmissingmissingunknown
344false4falsetrueallinitcfalsefalsefalsefalseothergeneral-InfInfmissingmissingunknown
354false0falsetrueallinitufalsefalsefalsefalseotherunconstrained-Inf13.0truemissingunknown
362false3falsetruealsotamefalsefalsefalsefalseothergeneral-InfInfmissingmissingunknown
373false15falsetrueargausstruefalsefalsefalseothergeneral-InfInfmissingmissingunknown
38100true0falsetruearglinafalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
39100true0falsetruearglinbfalsefalsefalsefalseleast_squaresunconstrained-Inf6.85174e13truemissingunknown
40100true0falsetruearglincfalsefalsefalsefalseotherunconstrained-Inf6.38544e13truemissingunknown
41100true0falsetrueargtrigfalsefalsefalsefalseotherunconstrained-Inf0.0truemissingunknown
42100true0falsetruearwheadfalsefalsefalsefalseotherunconstrained-Inf297.0truemissingunknown
4349false15falsetrueavion2truefalsetruefalseothergeneral-InfInfmissingmissingunknown
443false0falsetruebardfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
45100true0falsetruebdqrticfalsefalsefalsefalseleast_squaresunconstrained-Inf21696.0truemissingunknown
462false0falsetruebealefalsefalsefalsefalseleast_squaresunconstrained-Inf14.2031truemissingunknown
47100true0falsetruebearingfalsefalsetruetrueotherunconstrained-Inf15.0662truemissingunknown
483false0falsetruebennett5falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
496false0falsetruebiggs5falsefalsetruetrueotherunconstrained-Inf-3.15621truemissingunknown
506false0falsetruebiggs6falsefalsefalsefalseotherunconstrained-Inf-3.15621truemissingunknown
512false2falsetrueboothtruefalsefalsefalseothergeneral-InfInfmissingmissingunknown
522false0falsetrueboxbodfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
531false1falsetruebqp1varfalsetruefalsefalseothergeneral-Inf0.3125truemissingunknown
54450false360falsetruebritgastruefalsetruefalseothergeneral-InfInfmissingmissingunknown
55100true0falsetruebrownalfalsefalsefalsefalseleast_squaresunconstrained-Inf0.0truemissingunknown
562false0falsetruebrownbsfalsefalsefalsefalseleast_squaresunconstrained-Inf9.99998e11truemissingunknown
574false0falsetruebrowndenfalsefalsefalsefalseleast_squaresunconstrained-Inf7.92669e6truemissingunknown
58100true0falsetruebroyden3dfalsefalsefalsefalseleast_squaresunconstrained-Inf0.0truemissingunknown
59100true0falsetruebroydn7dfalsefalsefalsefalseotherunconstrained-Inf274.204truemissingunknown
60100true0falsetruebrybndfalsefalsefalsefalseleast_squaresunconstrained-Inf3600.0truemissingunknown
612false1falsetruebt1truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
62100true203truetruecamshapefalsetruetruefalseothergeneral-InfInfmissingmissingunknown
6399true32truetruecatenarytruefalsetruetruelinearquadratic-InfInfmissingmissingacademic
64100true77truetruechaintruefalsefalsefalseothergeneral-InfInfmissingmissingunknown
65100true0falsetruechainwoofalsefalsefalsefalseotherunconstrained-Inf3.71954e5truemissingunknown
6696true96truetruechanneltruefalsefalsefalseothergeneral-InfInfmissingmissingunknown
67100true0falsetruechnrosnb_modfalsefalsefalsefalseotherunconstrained-Inf17637.9truemissingunknown
683false0falsetruechwirut1falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
693false0falsetruechwirut2falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
702false0falsetrueclifffalsefalsefalsefalseotherunconstrained-Inf4.85165e8truemissingunknown
7199true64truetrueclnlbeamtruefalsetruefalseothergeneral-Inf350.0truemissingunknown
72100true0falsetrueclplateafalsefalsefalsefalseotherunconstrained-Inf0.0truemissingunknown
73100true0falsetrueclplatebfalsefalsefalsefalseotherunconstrained-Inf0.0truemissingunknown
74100true0falsetrueclplatecfalsefalsefalsefalseotherunconstrained-Inf0.0truemissingunknown
75100true50truetruecontrolinvestmenttruefalsetruefalseothergeneral-Inf-0.98truemissingunknown
76100true0falsetruecosinefalsefalsefalsefalseotherunconstrained-Inf86.8807truemissingunknown
77100true0falsetruecragglvyfalsefalsefalsefalseotherunconstrained-Inf52823.1truemissingunknown
78100true0falsetruecragglvy2falsefalsefalsefalseotherunconstrained-Inf52823.1truemissingunknown
79100true0falsetruecurlyfalsefalsefalsefalseotherunconstrained-Inf-0.00623722truemissingunknown
80100true0falsetruecurly10falsefalsefalsefalseotherunconstrained-Inf-0.00623722truemissingunknown
81100true0falsetruecurly20falsefalsefalsefalseotherunconstrained-Inf-0.0129654truemissingunknown
82100true0falsetruecurly30falsefalsefalsefalseotherunconstrained-Inf-0.020383truemissingunknown
832false0falsetruedanwoodfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
8499true0falsetruedixmaanefalsefalsefalsefalseotherunconstrained-Inf731.833truemissingunknown
8599true0falsetruedixmaanffalsefalsefalsefalseotherunconstrained-Inf1348.42truemissingunknown
8699true0falsetruedixmaangfalsefalsefalsefalseotherunconstrained-Inf2495.83truemissingunknown
8799true0falsetruedixmaanhfalsefalsefalsefalseotherunconstrained-Inf4974.25truemissingunknown
8899true0falsetruedixmaanifalsefalsefalsefalseotherunconstrained-Inf663.646truemissingunknown
8999true0falsetruedixmaanjfalsefalsefalsefalseotherunconstrained-Inf1281.33truemissingunknown
9099true0falsetruedixmaankfalsefalsefalsefalseotherunconstrained-Inf2427.65truemissingunknown
9199true0falsetruedixmaanlfalsefalsefalsefalseotherunconstrained-Inf4903.7truemissingunknown
9299true0falsetruedixmaanmfalsefalsefalsefalseotherunconstrained-Inf314.313truemissingunknown
9399true0falsetruedixmaannfalsefalsefalsefalseotherunconstrained-Inf665.66truemissingunknown
9499true0falsetruedixmaanofalsefalsefalsefalseotherunconstrained-Inf1196.31truemissingunknown
9599true0falsetruedixmaanpfalsefalsefalsefalseotherunconstrained-Inf2342.52truemissingunknown
96100true0falsetruedixon3dqfalsefalsefalsefalseleast_squaresunconstrained-Inf8.0truemissingunknown
97100true0falsetruedqdrticfalsefalsefalsefalseotherunconstrained-Inf177282.0truemissingunknown
98100true0falsetruedqrticfalsefalsefalsefalseotherunconstrained-Inf1.85427e9truemissingunknown
993false0falsetrueeckerle4falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
100100true0falsetrueedenschfalsefalsefalsefalseotherunconstrained-Inf1699.0truemissingunknown
101100true0falsetrueeg2falsefalsefalsefalseotherunconstrained-Inf-83.3056truemissingunknown
10299true33truetrueelectruefalsefalsefalseotherquadratic-InfInfmissingmissingunknown
103100true0falsetrueengval1falsefalsefalsefalseotherunconstrained-Inf5841.0truemissingunknown
1049false0falsetrueensofalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
105100true0falsetrueerrinros_modfalsefalsefalsefalseleast_squaresunconstrained-Inf3.13991e5truemissingunknown
106100true0falsetrueextrosnbfalsefalsefalsefalseotherunconstrained-Inf39604.0truemissingunknown
107100true0falsetruefletcbv2falsefalsefalsefalseotherunconstrained-Inf-0.513108truemissingunknown
108100true0falsetruefletcbv3_modfalsefalsefalsefalseotherunconstrained-Inf-0.0187925truemissingunknown
109100true0falsetruefletchcrfalsefalsefalsefalseotherunconstrained-Inf9900.0truemissingunknown
110100false0falsetruefminsrf2falsefalsefalsefalseotherunconstrained-Inf2504.27truemissingunknown
111100true0falsetruefreurothfalsefalsefalsefalseleast_squaresunconstrained-Inf99556.5truemissingunknown
1128false0falsetruegauss1falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
1138false0falsetruegauss2falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
1148false0falsetruegauss3falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
1153false0falsetruegaussianfalsefalsefalsefalseleast_squaresunconstrained-Inf3.88811e-6truemissingunknown
116100true0falsetruegenhumpsfalsefalsefalsefalseotherunconstrained-Inf2.53684e6truemissingunknown
117100true0falsetruegenrosefalsefalsefalsefalseotherunconstrained-Inf405.106truemissingunknown
118100true0falsetruegenrose_nashfalsefalsefalsefalseotherunconstrained-Inf404.126truemissingunknown
1193false0falsetruegulffalsefalsefalsefalseleast_squaresunconstrained-Inf0.0truemissingunknown
1207false0falsetruehahn1falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
1213false0falsetruehelicalfalsefalsefalsefalseotherunconstrained-Inf0.0truemissingunknown
12298true68truetruehovercraft1dtruefalsefalsefalseleast_squareslinear-InfInfmissingmissingunknown
1232false0falsetruehs1falsefalsetruefalseotherunconstrained-Inf909.0truemissingunknown
1242false1falsetruehs10falsetruefalsefalseothergeneral-InfInfmissingmissingunknown
1257false4falsetruehs100falsetruefalsefalseothergeneral-Inf714.0truemissingunknown
1267false5falsetruehs101falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1277false5falsetruehs102falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1287false5falsetruehs103falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1298false5falsetruehs104falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1308false1falsetruehs105falsetruetruefalseotherlinear-InfInfmissingmissingunknown
1318false6falsetruehs106falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1329false6falsetruehs107truefalsetruefalseothergeneral-InfInfmissingmissingunknown
1339false12falsetruehs108falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1349false9falsetruehs109falsefalsetruefalseothergeneral-InfInfmissingmissingunknown
1352false1falsetruehs11falsetruefalsefalseothergeneral-InfInfmissingmissingunknown
13610false0falsetruehs110falsefalsetruefalseotherunconstrained-Inf-43.1343truemissingunknown
13710false3falsetruehs111truefalsetruefalseothergeneral-InfInfmissingmissingunknown
13810false3falsetruehs112truefalsetruefalseotherlinear-InfInfmissingmissingunknown
13910false8falsetruehs113falsetruefalsefalseothergeneral-Inf753.0truemissingunknown
14010false11falsetruehs114falsefalsetruefalseothergeneral-InfInfmissingmissingunknown
14113false15falsetruehs116falsetruetruefalseothergeneral-InfInfmissingmissingunknown
14215false5falsetruehs117falsetruetruefalseothergeneral-Inf2400.11truemissingunknown
14315false17falsetruehs118falsetruetruefalseotherlinear-Inf942.716truemissingunknown
14416false8falsetruehs119truefalsetruefalseotherlinear-InfInfmissingmissingunknown
1452false1falsetruehs12falsetruefalsefalseothergeneral-Inf0.0truemissingunknown
1462false1falsetruehs13falsetruetruefalseleast_squaresgeneral-InfInfmissingmissingunknown
1472false2falsetruehs14falsefalsefalsefalseleast_squaresgeneral-InfInfmissingmissingunknown
1482false2falsetruehs15falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1492false2falsetruehs16falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1502false2falsetruehs17falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1512false2falsetruehs18falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1522false2falsetruehs19falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1532false0falsetruehs2falsefalsetruefalseotherunconstrained-Inf909.0truemissingunknown
1542false3falsetruehs20falsetruetruefalseothergeneral-InfInfmissingmissingunknown
1552false1falsetruehs21falsetruetruefalseotherlinear-InfInfmissingmissingunknown
1564false2falsetruehs219truefalsefalsefalselineargeneral-1.0-1.0truetrueunknown
1572false2falsetruehs22falsetruefalsefalseleast_squaresgeneral-InfInfmissingmissingunknown
1582false1falsetruehs220truefalsetruefalseothergeneral125000truemissingunknown
1592false1falsetruehs221falsetruetruefalseothergeneral-1-0.25truemissingunknown
1602false1falsetruehs222falsetruetruefalseothergeneral-1.5-1.3truemissingunknown
1612false2falsetruehs223falsetruetruefalseothergeneral-0.834032-0.1truemissingunknown
1622false4falsetruehs224falsetruetruefalseotherlinear-304-304truemissingunknown
1632false5falsetruehs225falsetruefalsefalseothergeneral22truemissingunknown
1642false2falsetruehs226falsetruetruefalseothergeneral-0.5-0.5truemissingunknown
1652false2falsetruehs227falsetruefalsefalseothergeneral11truemissingunknown
1662false2falsetruehs228falsetruefalsefalseothergeneral-3-3truemissingunknown
1672false0falsetruehs229falsefalsetruefalseotherunconstrained00truemissingunknown
1682false5falsetruehs23falsetruetruefalseleast_squaresgeneral-InfInfmissingmissingunknown
1692false2falsetruehs230falsetruefalsefalseothergeneral0.3750.375truemissingunknown
1702false2falsetruehs231falsetruefalsefalseotherlinear00truemissingunknown
1712false3falsetruehs232falsetruetruefalseotherlinear-1-1truemissingunknown
1722false1falsetruehs233falsetruefalsefalseotherunconstrained00truemissingunknown
1732false1falsetruehs234falsetruetruefalseothergeneral-0.8-0.8truemissingunknown
1743false1falsetruehs235truefalsefalsefalseothergeneral0.040.04truemissingunknown
1752false2falsetruehs236falsetruetruefalseothergeneral-58.9034-58.9034truemissingunknown
1762false3falsetruehs237falsetruetruefalseothergeneral-58.9034-58.9034truemissingunknown
1772false3falsetruehs238falsetruetruefalseothergeneral-58.9034-58.9034truemissingunknown
1782false1falsetruehs239falsetruetruefalseothergeneral-58.9034-58.9034truemissingunknown
1792false2falsetruehs24falsetruetruefalseotherlinear-Inf-0.0133646truemissingunknown
1803false0falsetruehs240falsefalsefalsefalseotherunconstrained00truemissingunknown
1813false0falsetruehs241falsefalsefalsefalseotherunconstrained00truemissingunknown
1823false0falsetruehs242falsefalsetruefalseotherunconstrained00truemissingunknown
1833false0falsetruehs243falsefalsefalsefalseotherunconstrained0.79660.7966truemissingunknown
1843false0falsetruehs244falsefalsefalsefalseotherunconstrained00truemissingunknown
1853false0falsetruehs245falsefalsefalsefalseotherunconstrained00truemissingunknown
1863false0falsetruehs246falsefalsefalsefalseotherunconstrained00truemissingunknown
1873false2falsetruehs248falsefalsefalsefalseothergeneral-0.8-0.8truemissingunknown
1883false1falsetruehs249falsetruetruefalseothergeneral11truemissingunknown
1893false0falsetruehs25falsefalsetruefalseotherunconstrained-Inf32.835truemissingunknown
1903false2falsetruehs250falsetruetruefalseotherlinear-3300-3300truemissingunknown
1913false1falsetruehs251falsetruetruefalseotherlinear-3456-3456truemissingunknown
1923false1falsetruehs252truefalsefalsefalseotherunconstrained0.040.04truemissingunknown
1933false1falsetruehs253falsetruetruefalseotherlinear87.379487.3794truemissingunknown
1943false2falsetruehs254truefalsetruefalseothergeneral-1.73205-1.73205truemissingunknown
1954false0falsetruehs255falsefalsefalsefalseotherunconstrained00truemissingunknown
1964false0falsetruehs256falsefalsefalsefalseotherunconstrained00truemissingunknown
1974false0falsetruehs257falsefalsetruefalseotherunconstrained00truemissingunknown
1984false0falsetruehs258falsefalsefalsefalseotherunconstrained00truemissingunknown
1994false0falsetruehs259falsefalsefalsefalseotherunconstrained00truemissingunknown
2003false1falsetruehs26truefalsefalsefalseothergeneral-Inf21.16truemissingunknown
2014false0falsetruehs260falsefalsefalsefalseotherunconstrained00truemissingunknown
2024false0falsetruehs261falsefalsefalsefalseotherunconstrained00truemissingunknown
2034false4falsetruehs262falsefalsetruefalseotherlinear-10-10truemissingunknown
2044false4falsetruehs263falsefalsefalsefalseothergeneral-1-1truemissingunknown
2054false3falsetruehs264falsetruefalsefalseothergeneral-44-44truemissingunknown
2064false2falsetruehs265truefalsetruefalseotherlinear0.9747470.974747truemissingunknown
2073false1falsetruehs27truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2083false1falsetruehs28truefalsefalsefalseleast_squareslinear-Inf13.0truemissingunknown
2093false1falsetruehs29falsetruefalsefalseothergeneral-Inf-1.0truemissingunknown
2102false0falsetruehs3falsefalsetruefalseotherunconstrained-Inf1.00081truemissingunknown
2113false1falsetruehs30falsetruetruefalseleast_squaresgeneral-Inf3.0truemissingunknown
2123false1falsetruehs31falsetruetruefalseothergeneral-Inf19.0truemissingunknown
2132false1falsetruehs316truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2142false1falsetruehs317truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2152false1falsetruehs318truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2162false1falsetruehs319truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2173false2falsetruehs32falsefalsetruefalseothergeneral-Inf7.2truemissingunknown
2182false1falsetruehs320truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2192false1falsetruehs321truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2202false1falsetruehs322truefalsefalsefalsequadraticquadratic-InfInftruemissingacademic
2213false2falsetruehs33falsetruetruefalseothergeneral-Inf-3.0truemissingunknown
2223false2falsetruehs34falsetruetruefalseothergeneral-Inf0.0truemissingunknown
2233false1falsetruehs35falsetruetruefalseotherlinear-Inf2.25truemissingunknown
2243false1falsetruehs36falsetruetruefalseotherlinear-Inf-1000.0truemissingunknown
2253false1falsetruehs37falsetruetruefalseotherlinear-Inf-1000.0truemissingunknown
22610false3falsetruehs378truefalsefalsefalseothergeneral-InfInftruemissingacademic
2274false0falsetruehs38falsefalsetruefalseotherunconstrained-Inf19192.0truemissingunknown
2284false2falsetruehs39truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2292false0falsetruehs4falsefalsetruefalseotherunconstrained-Inf3.32357truemissingunknown
2304false3falsetruehs40truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2314false1falsetruehs41truefalsetruefalseotherlinear-InfInfmissingmissingunknown
2324false2falsetruehs42truefalsefalsefalseleast_squaresgeneral-InfInfmissingmissingunknown
2334false3falsetruehs43falsetruefalsefalseothergeneral-Inf0.0truemissingunknown
2344false6falsetruehs44falsetruetruefalseotherlinear-Inf0.0truemissingunknown
2355false0falsetruehs45falsefalsetruefalseotherunconstrained-Inf1.73333truemissingunknown
2365false2falsetruehs46truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2375false3falsetruehs47truefalsefalsefalseothergeneral-Inf20.7381truemissingunknown
2385false2falsetruehs48truefalsefalsefalseleast_squareslinear-Inf84.0truemissingunknown
2395false2falsetruehs49truefalsefalsefalseotherlinear-Inf266.0truemissingunknown
2402false0falsetruehs5falsefalsetruefalseotherunconstrained-Inf1.0truemissingunknown
2415false3falsetruehs50truefalsefalsefalseotherlinear-Inf7516.0truemissingunknown
2425false3falsetruehs51truefalsefalsefalseleast_squareslinear-Inf8.5truemissingunknown
2435false3falsetruehs52truefalsefalsefalseleast_squareslinear-InfInfmissingmissingunknown
2445false3falsetruehs53truefalsetruefalseleast_squareslinear-InfInfmissingmissingunknown
2456false1falsetruehs54truefalsetruefalseotherlinear-InfInfmissingmissingunknown
2466false6falsetruehs55truefalsetruefalseotherlinear-InfInfmissingmissingunknown
2477false4falsetruehs56truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2482false1falsetruehs57falsetruetruefalseleast_squaresgeneral-Inf0.0307986truemissingunknown
2492false3falsetruehs59falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2502false1falsetruehs6truefalsefalsefalseleast_squaresgeneral-InfInfmissingmissingunknown
2513false1falsetruehs60truefalsetruefalseothergeneral-InfInfmissingmissingunknown
2523false2falsetruehs61truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2533false1falsetruehs62truefalsetruefalseotherlinear-InfInfmissingmissingunknown
2543false2falsetruehs63truefalsetruefalseothergeneral-InfInfmissingmissingunknown
2553false1falsetruehs64falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2563false1falsetruehs65falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2573false2falsetruehs66falsetruetruefalseothergeneral-Inf0.58truemissingunknown
2584false2falsetruehs68truefalsetruefalseothergeneral-InfInftruemissingunknown
2594false2falsetruehs69truefalsetruefalseothergeneral-InfInftruemissingunknown
2602false1falsetruehs7truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2614false1falsetruehs70falsetruetruefalseothergeneral-Inf0.987859truemissingunknown
2624false2falsetruehs71falsefalsetruefalseothergeneral-InfInfmissingmissingunknown
2634false2falsetruehs72falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2644false3falsetruehs73falsefalsetruefalseothergeneral-InfInfmissingmissingunknown
2654false4falsetruehs74falsefalsetruefalseothergeneral-InfInfmissingmissingunknown
2664false4falsetruehs75falsefalsetruefalseothergeneral-InfInfmissingmissingunknown
2674false3falsetruehs76falsetruetruefalseotherlinear-Inf-1.25truemissingunknown
2685false2falsetruehs77truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2695false3falsetruehs78truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2705false3falsetruehs79truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2712false2falsetruehs8truefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2725false3falsetruehs80truefalsetruefalseothergeneral-InfInfmissingmissingunknown
2735false3falsetruehs81truefalsetruefalseothergeneral-InfInfmissingmissingunknown
2745false3falsetruehs83falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2755false3falsetruehs84falsetruetruefalseothergeneral-Inf-2.35124e6truemissingunknown
2765false10falsetruehs86falsetruetruefalseotherlinear-Inf20.0truemissingunknown
2776false4falsetruehs87truefalsetruefalseothergeneral-InfInftruemissingunknown
2782false1falsetruehs9truefalsefalsefalseotherlinear-Inf0.0truemissingunknown
2796false2falsetruehs93falsetruetruefalseothergeneral-Inf137.066truemissingunknown
2806false4falsetruehs95falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2816false4falsetruehs96falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2826false4falsetruehs97falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2836false4falsetruehs98falsetruetruefalseothergeneral-InfInfmissingmissingunknown
2847false2falsetruehs99truefalsetruefalseothergeneral-InfInfmissingmissingunknown
285100true0falsetrueindef_modfalsefalsefalsefalseotherunconstrained-Inf91.6655truemissingunknown
286100true0falsetrueintegreqfalsefalsefalsefalseleast_squaresunconstrained-Inf0.0truemissingunknown
2872false0falsetruejennrichsampsonfalsefalsefalsefalseleast_squaresunconstrained-Inf4171.31truemissingunknown
2885false0falsetruekirby2falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
2894false0falsetruekowosbfalsefalsefalsefalseleast_squaresunconstrained-Inf0.0264978truemissingunknown
2906false0falsetruelanczos1falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
2916false0falsetruelanczos2falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
2926false0falsetruelanczos3falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
293100true0falsetrueliarwhdfalsefalsefalsefalseotherunconstrained-Inf58500.0truemissingunknown
29415false11falsetruelinconfalsefalsefalsefalseotherlinear-InfInfmissingmissingunknown
2952false2falsetruelinsvfalsetruefalsefalseotherlinear-InfInfmissingmissingunknown
296111true40truetruemarinetruefalsetruefalseothergeneral-InfInfmissingmissingunknown
2973false0falsetruemeyer3falsefalsefalsefalseleast_squaresunconstrained-Inf1.69361e9truemissingunknown
2982false2falsetruemgh01feastruefalsefalsefalseothergeneral-InfInfmissingmissingunknown
2994false0falsetruemgh09falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3003false0falsetruemgh10falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3015false0falsetruemgh17falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3022false0falsetruemisra1afalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3032false0falsetruemisra1bfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3042false0falsetruemisra1cfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3052false0falsetruemisra1dfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
306100true0falsetruemorebvfalsefalsefalsefalseleast_squaresunconstrained-Inf0.500942truemissingunknown
3072false0falsetruenastyfalsefalsefalsefalseotherunconstrained-Inf0.5truemissingunknown
308100true0falsetruencb20falsefalsefalsefalseotherunconstrained-Inf182.002truemissingunknown
309100true0falsetruencb20bfalsefalsefalsefalseotherunconstrained-Inf200.0truemissingunknown
3103false0falsetruenelsonfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
311100true0falsetruenoncvxu2falsefalsefalsefalseotherunconstrained-Inf2.63975e6truemissingunknown
312100true0falsetruenoncvxunfalsefalsefalsefalseotherunconstrained-Inf2.72701e6truemissingunknown
313100true0falsetruenondiafalsefalsefalsefalseotherunconstrained-Inf39604.0truemissingunknown
314100true0falsetruenondquarfalsefalsefalsefalseotherunconstrained-Inf106.0truemissingunknown
3155false0falsetrueosborne1falsefalsefalsefalseleast_squaresunconstrained-Inf7.06876truemissingunknown
31611false0falsetrueosborne2falsefalsefalsefalseleast_squaresunconstrained-Inf2.09342truemissingunknown
3178false0falsetruepalmer1cfalsefalsefalsefalseleast_squaresunconstrained-Inf3.45295e8truemissingunknown
3187false0falsetruepalmer1dfalsefalsefalsefalseleast_squaresunconstrained-Inf2.87266e7truemissingunknown
3198false0falsetruepalmer2cfalsefalsefalsefalseleast_squaresunconstrained-Inf2.6894e7truemissingunknown
3208false0falsetruepalmer3cfalsefalsefalsefalseleast_squaresunconstrained-Inf8.12197e6truemissingunknown
3218false0falsetruepalmer4cfalsefalsefalsefalseleast_squaresunconstrained-Inf8.09445e6truemissingunknown
3226false0falsetruepalmer5cfalsefalsefalsefalseleast_squaresunconstrained-Inf25495.0truemissingunknown
3234false0falsetruepalmer5dfalsefalsefalsefalseleast_squaresunconstrained-Inf22262.6truemissingunknown
3248false0falsetruepalmer6cfalsefalsefalsefalseleast_squaresunconstrained-Inf7.72166e5truemissingunknown
3258false0falsetruepalmer7cfalsefalsefalsefalseleast_squaresunconstrained-Inf3.20513e6truemissingunknown
3268false0falsetruepalmer8cfalsefalsefalsefalseleast_squaresunconstrained-Inf850271.0truemissingunknown
327100true0falsetruepenalty1falsefalsefalsefalseleast_squaresunconstrained-Inf1.0truemissingunknown
328100true0falsetruepenalty2falsefalsefalsefalseotherunconstrained-Inf1.68848e6truemissingunknown
329100true0falsetruepenalty3falsefalsefalsefalseotherunconstrained-Inf1.00639e8truemissingunknown
330100true50truetruepolygonfalsefalsetruefalseotherlinear-InfInffalsemissingunknown
331100true50truetruepolygon1falsefalsetruefalseotherlinear-InfInffalsemissingunknown
332100true1falsetruepolygon2truefalsetruefalseotherlinear-InfInffalsemissingunknown
333100true100truetruepolygon3falsetruefalsefalseothergeneral-Inf-0.0truemissingunknown
3342false0falsetruepowellbsfalsefalsefalsefalseotherunconstrained-Inf0.567631truemissingunknown
335100true0falsetruepowellsgfalsefalsefalsefalseotherunconstrained-Inf5375.0truemissingunknown
336100true0falsetruepowerfalsefalsefalsefalseleast_squaresunconstrained-Inf2.55025e7truemissingunknown
337100true0falsetruequartcfalsefalsefalsefalseotherunconstrained-Inf1.85427e9truemissingunknown
3383false0falsetruerat42falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
3394false0falsetruerat43falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
340109true102truetruerobotarmfalsefalsetruetrueothergeneral-InfInfmissingmissingunknown
3412false0falsetruerosenbrockfalsefalsefalsefalseotherunconstrained-Inf32.3086truemissingunknown
3424false0falsetruerozman1falsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
343100true0falsetruesbrybndfalsefalsefalsefalseleast_squaresunconstrained-Inf1568.0truemissingunknown
344100true0falsetrueschmvettfalsefalsefalsefalseotherunconstrained-Inf-189.068truemissingunknown
345100true0falsetruescosinefalsefalsefalsefalseotherunconstrained-Inf86.8807truemissingunknown
346100true0falsetruesinquadfalsefalsefalsefalseotherunconstrained-Inf0.6561truemissingunknown
347100true0falsetruesparsinefalsefalsefalsefalseotherunconstrained-Inf20893.3truemissingunknown
348100true0falsetruesparsqurfalsefalsefalsefalseotherunconstrained-Inf1420.31truemissingunknown
349100true0falsetruespmsrtlsfalsefalsefalsefalseleast_squaresunconstrained-Inf49.3239truemissingunknown
350100true0falsetruesrosenbrfalsefalsefalsefalseotherunconstrained-Inf1210.0truemissingunknown
351600true44truetruestructuralfalsefalsetruefalseotherlinear-InfInfmissingmissingunknown
35215false4falsetruetetrafalsetruetruetrueothergeneral-InfInfmissingmissingunknown
35312597false19222falsetruetetra_duct12falsetruetruetrueothergeneral-Inf23246.1truemissingunknown
3546417false9000falsetruetetra_duct15falsetruetruetrueothergeneral-Inf10890.9truemissingunknown
3553201false4104falsetruetetra_duct20falsetruetruetrueothergeneral-Inf4959.8truemissingunknown
3564011false4847falsetruetetra_foam5falsetruetruetrueothergeneral-Inf6497.1truemissingunknown
3572598false3116falsetruetetra_gearfalsetruetruetrueothergeneral-Inf4256.38truemissingunknown
3583570false4675falsetruetetra_hookfalsetruetruetrueothergeneral-Inf6157.14truemissingunknown
35930false0falsetruethreepkfalsefalsetruefalseotherunconstrained-Inf20236.5truemissingunknown
3607false0falsetruethurberfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
361100true0falsetruetointgssfalsefalsefalsefalseotherunconstrained-Inf891.608truemissingunknown
362100true0falsetruetquarticfalsefalsefalsefalseleast_squaresunconstrained-Inf0.81truemissingunknown
3638false3falsetruetrianglefalsetruetruetrueothergeneral-Inf11.328truemissingunknown
3642244false1896falsetruetriangle_deerfalsetruetruetrueothergeneral-Inf2014.34truemissingunknown
3651366false1182falsetruetriangle_pacmanfalsetruetruetrueothergeneral-Inf1316.28truemissingunknown
3664444false4025falsetruetriangle_turtlefalsetruetruetrueothergeneral-Inf4467.58truemissingunknown
367100true0falsetruetridiafalsefalsefalsefalseotherunconstrained-Inf5049.0truemissingunknown
368100true0falsetruevardimfalsefalsefalsefalseotherunconstrained-Inf1.31058e14truemissingunknown
3698false0falsetruevibrbeamfalsefalsefalsefalseleast_squaresunconstrained-Inf8231.28truemissingunknown
37031false0falsetruewatsonfalsefalsefalsefalseleast_squaresunconstrained-Inf500.0truemissingunknown
371100true0falsetruewoodsfalsefalsefalsefalseotherunconstrained-Inf180451.0truemissingunknown
3723false3falsetruezangwil3truefalsefalsefalseotherlinear-InfInfmissingmissingunknown

We select the problems that are scalable, so that there size can be modified. By default, the size is close to 100.

scalable_problems = meta[(meta.variable_nvar .== true) .& (meta.ncon .> 0), :name]
15-element Vector{String}:
 "camshape"
 "catenary"
 "chain"
 "channel"
 "clnlbeam"
 "controlinvestment"
 "elec"
 "hovercraft1d"
 "marine"
 "polygon"
 "polygon1"
 "polygon2"
 "polygon3"
 "robotarm"
 "structural"
using NLPModelsJuMP
list_backends = Dict(
  :forward => ADNLPModels.ForwardDiffADGradient,
  :reverse => ADNLPModels.ReverseDiffADGradient,
)
Dict{Symbol, DataType} with 2 entries:
  :reverse => ReverseDiffADGradient
  :forward => ForwardDiffADGradient
using DataFrames
nprob = length(scalable_problems)
stats = Dict{Symbol, DataFrame}()
for back in union(keys(list_backends), [:jump])
  stats[back] = DataFrame("name" => scalable_problems,
                 "time" => zeros(nprob),
                 "allocs" => zeros(Int, nprob))
end
using BenchmarkTools
nscal = 1000
for name in scalable_problems
  n = eval(Meta.parse("OptimizationProblems.get_" * name * "_nvar(n = $(nscal))"))
  m = eval(Meta.parse("OptimizationProblems.get_" * name * "_ncon(n = $(nscal))"))
  @info " $(name) with $n vars and $m cons"
  global x = ones(n)
  global g = zeros(n)
  global pb = Meta.parse(name)
  global nlp = MathOptNLPModel(OptimizationProblems.PureJuMP.eval(pb)(n = nscal))
  b = @benchmark grad!(nlp, x, g)
  stats[:jump][stats[:jump].name .== name, :time] = [median(b.times)]
  stats[:jump][stats[:jump].name .== name, :allocs] = [median(b.allocs)]
  for back in keys(list_backends)
    nlp = OptimizationProblems.ADNLPProblems.eval(pb)(n = nscal, gradient_backend = list_backends[back], matrix_free = true)
    b = @benchmark grad!(nlp, x, g)
    stats[back][stats[back].name .== name, :time] = [median(b.times)]
    stats[back][stats[back].name .== name, :allocs] = [median(b.allocs)]
  end
end
[ Info:  camshape with 1000 vars and 2003 cons
[ Info:  catenary with 999 vars and 332 cons
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.PureJuMP ~/.julia/packages/OptimizationProblems/OIP7h/src/PureJuMP/catenary.jl:20
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.PureJuMP ~/.julia/packages/OptimizationProblems/OIP7h/src/PureJuMP/catenary.jl:22
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/OIP7h/src/ADNLPProblems/catenary.jl:4
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/OIP7h/src/ADNLPProblems/catenary.jl:6
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/OIP7h/src/ADNLPProblems/catenary.jl:4
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/OIP7h/src/ADNLPProblems/catenary.jl:6
[ Info:  chain with 1000 vars and 752 cons
[ Info:  channel with 1000 vars and 1000 cons
[ Info:  clnlbeam with 999 vars and 664 cons
[ Info:  controlinvestment with 1000 vars and 500 cons
[ Info:  elec with 999 vars and 333 cons
[ Info:  hovercraft1d with 998 vars and 668 cons
[ Info:  marine with 1007 vars and 488 cons
[ Info:  polygon with 1000 vars and 125251 cons
[ Info:  polygon1 with 1000 vars and 500 cons
[ Info:  polygon2 with 1000 vars and 1 cons
[ Info:  polygon3 with 1000 vars and 1000 cons
[ Info:  robotarm with 1009 vars and 1002 cons
[ Info:  structural with 3540 vars and 3652 cons
using Plots, SolverBenchmark
costnames = ["median time (in ns)", "median allocs"]
costs = [
  df -> df.time,
  df -> df.allocs,
]

gr()

profile_solvers(stats, costs, costnames)
Example block output