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 12.3 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 12.3 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 12.3 offers improvements in memory usage. In some cases the memory used with the default algorithm may be roughly half what it was before.
Knitro 12.3 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 12.3 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 12.3 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 12.3 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 12.3 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 12.3 introduces a new auto value for the
bar_conic_enable
option and makes this the default option value.Knitro 12.3 introduces a new default value of 1e-4 for the
mip_integral_gap_rel
option.Knitro 12.3 introduces new API functions to allow loading an LP, QP, or QCQP with one function call.
Knitro 12.3 introduces new API functions to get the variable types (e.g. continuous or integer), and to retrieve the number of complementarity constraints.
Knitro 12.3 improves numerical stability and robustness when using the non-default MKL PARDISO linear solver (
linsolver
=6).Knitro 12.3 enables default parallelism when using the MKL PARDISO, MA86, or MA97 linear solvers on large models.
Knitro 12.3 offers speedups on large models when using the default (interior-point) algorithm.
Knitro 12.3 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.