Release notes


Knitro 11.0 was the last major Knitro release to provide a version for the Windows 32-bit platform. Impacted users are advised to migrate to 64-bit Windows.


The MATLAB interface to Knitro 11.1 (i.e. knitromatlab) supports MATLAB 2018. 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 shared library provided in the Knitro lib directory, before starting MATLAB from the command line. For example: export LD_PRELOAD=/path/to/knitro-11.1.0-z-Linux-Intel17-64/lib/

What’s new in Knitro 11.1 ?

  • Knitro 11.1 offers automatic detection of convex quadratic programs (QPs) and convex quadratically constrained quadratic programs (QCQPs) via the convex =auto option. However, if a model is known to be convex (or not convex), it is recommended to explicitly set this through the convex option to avoid the overhead of trying to determine this automatically. Knitro 11.1 also improves default performance on convex models.
  • Knitro 11.1 changed the numeric value of the automatic (“auto”) setting from 0 to -1 for the following user options: bar_penaltycons, bar_switchrule, convex, mip_rounding, and mip_heuristic. It is always recommended to use the macro instead of the numeric value for setting options. See the Knitro 11.1 User’s Manual for more details on these options.
  • Knitro 11.1 introduces a new warm-start option. This can be used to accelerate the convergence of a “warm-started” problem (i.e. a problem that is started from the solution of a previously solved related problem). This option can be set through the new strat_warm_start user option and is currently only used for the interior-point/barrier algorithms in Knitro.
  • Knitro 11.1 improves the default termination condition when using finite-difference gradients. It uses an estimate of the error in the finite-difference gradients to stop when it is determined that no more significant improvement in solution accuracy is possible. This new termination procedure is enabled by default and can be disabled through the new findiff_terminate user option.
  • Knitro 11.1 introduces a new cpuplatform option that can be used to specify the target instruction set architecture. This can be used, for example, to try to produce more consistent Knitro performance across various architectures (at the expense of, perhaps, slower performance on some platforms). This option is currently only used for the Intel Math Kernal Library (MKL) functions used inside Knitro.
  • Knitro 11.1 offers the new user option bar_maxcorrectors that can be used to set the maximum number of “corrector” steps used in the default Interior/Direct algorithm.
  • Knitro 11.1 improves the generation of knapsack cuts for mixed-integer problems, resulting in faster performance on some MINLP models. The types of knapsack cuts generated is controlled by the mip_knapsack user option, which has new option values.
  • Knitro 11.1 improves performance when using the limited-memory BFGS Hessian approximation.
  • Knitro 11.1 improves performance when using the SOCP solver in Knitro.
  • Knitro 11.1 improves performance when using the SQP algorithm.
  • Knitro 11.1 offers an updated Python API (based on the new Knitro 11.0 API). It also improves the efficiency of the new C API introduced in Knitro 11.0 and the AMPL interface.

Bug Fixes in Knitro 11.1.0

  • Fixed bug where “newpoint” log would sometimes print values more than once per iteration when newpoint = 2.
  • Fixed handling of out of memory errors in the new API.