Release notes
Note
The MATLAB interface to Knitro 12.3 supports
MATLAB 2018 and newer. To use Knitro with older versions of MATLAB (i.e. pre-2018) on Linux-based
systems, it may be necessary to first set the LD_PRELOAD
environment
variable to point to the libiomp5.so
shared library provided in
the Knitro lib
directory, before starting MATLAB from the command
line. For example: export LD_PRELOAD=/path/to/knitro-12.3.0-z-Linux-Intel17-64/lib/libiomp5.so
What’s new in Knitro 12.3 ?
Knitro 13.0 introduces updated C#, Fortran, and Java interfaces based on the latest Knitro C callable library API. These updated interfaces exploit all the latest features of Knitro and can offer efficiency improvements, particularly when solving models with quadratic structures (e.g. QPs and QCQPs).
The Knitro 13.0 callable library API has been extended to allow re-solving after adding linear structures to a model (e.g. adding new linear constraints or adding linear terms to the objective or existing constraints).
Knitro 13.0 offers improvements in memory usage. In some cases the memory used with the default algorithm may be roughly half what it was before.
Knitro 13.0 introduces a new value under the
bar_linsys
option used to control the form of the linear system used in the default barrier/interior-point algorithm. Settingbar_linsys
to 3 (ineqs) may generate significant speedups on models where the number of variables is small, but the number of inequality constraints is large.Knitro 13.0 introduces a new user option
bar_linsys_storage
to control the memory storage for the linear systems used in the default barrier/interior-point algorithm. Settingbar_linsys_storage
to 1 (lowmem) will reduce the memory used by Knitro by using the same memory for different linear systems.Knitro 13.0 introduces a new user option
linsolver_maxitref
to control the maximum number of iterative refinement steps allowed when solving linear systems inside Knitro. Increasing this value may improve numerical stability with some additional overhead cost.Knitro 13.0 offers a new option
bfgs_scaling
to control the initial scaling strategy when using the BFGS or L-BFGS Hessian approximation. It is recommended to experiment with this option when using the BFGS or L-BFGS Hessian.Knitro 13.0 introduces a new value under the
mip_heuristic
option. Settingmip_heuristic
to 4 (diving) will enable a diving heuristic to search for an integer feasible point.Knitro 13.0 introduces a new auto value for the
bar_conic_enable
option and makes this the default option value.Knitro 13.0 introduces a new default value of 1e-4 for the
mip_integral_gap_rel
option.Knitro 13.0 introduces new API functions to allow loading an LP, QP, or QCQP with one function call.
Knitro 13.0 introduces new API functions to get the variable types (e.g. continuous or integer), and to retrieve the number of complementarity constraints.
Knitro 13.0 improves numerical stability and robustness when using the non-default MKL PARDISO linear solver (
linsolver
=6).Knitro 13.0 enables default parallelism when using the MKL PARDISO, MA86, or MA97 linear solvers on large models.
Knitro 13.0 offers speedups on large models when using the default (interior-point) algorithm.
Knitro 13.0 offers speedups on least-squares models.
Bug Fixes in Knitro 12.3.0
Fixed issue in the MA97 linear solver (
linsolver
=7) that could lead to a segfault.Fixed a memory issue in the mixed-integer solvers when applying various cuts that could cause a segfault.
Fixed issue that could cause Knitro to segfault when using the default
cpuplatform
option on some computers with AMD processors.