18 Interface changes¶
The section shows interface-specific changes to the MOSEK Optimizer API for C in version 10.2 compared to version 9. See the release notes for general changes and new features of the MOSEK Optimization Suite.
18.1 Important changes compared to version 9¶
Parameters. Users who set parameters to tune the performance and numerical properties of the solver (termination criteria, tolerances, solving primal or dual, presolve etc.) are recommended to reevaluate such tuning. It may be that other, or default, parameter settings will be more beneficial in the current version. The hints in Sec. 8 (Debugging Tutorials) may be useful for some cases.
Multithreading. In the interior-point optimizer it is posible to set the number of threads with
MSK_IPAR_NUM_THREADS
before each optimization, and not just once per process. The parameterMSK_IPAR_INTPNT_MULTI_THREAD
and the functionMSK_setupthreads
are no longer relevant and were removed.Sparse Cholesky. In the function
MSK_computesparsecholesky
the argument previously indicating whether to use multiple threads or not is now an integer denoting the number of threads to use, with 0 meaning that MOSEK makes the choice.Solve with basis. The function
MSK_solvewithbasis
changed interface: it separates the input and output number of nonzeros.Surplus. Remover the
surplus
argument from allMSK_get
functions using it.OptServer. The arguments used in remote calls from the MOSEK API change from
(server, port)
to(addr, accesstoken)
, whereaddr
is the full URL such ashttp://server:port
orhttps://server:port
. See the documentation of the relevant functions.MIO initial solution. In order for the mixed-integer solver to utilize a partial integer solution the parameter
MSK_IPAR_MIO_CONSTRUCT_SOL
must be set. See Sec. 6.8.2 (Specifying an initial solution) for details. In version 9 this action happened by default.Conic constraints. The interface introduces affine conic constraints (ACC) as a way of writing directly
\[Fx+g\in\D\]where \(\D\) is a conic domain, without having to introduce a slack variable \(Fx+g-y=0,\ y\in\D\). See Sec. 6.2 (From Linear to Conic Optimization) for a tutorial. The current interface through variable cones is still supported but deprecated.
18.2 Changes compared to version 9¶
18.2.1 Functions compared to version 9¶
Added
Removed
MSK_makeenvalloc
MSK_setupthreads
MSK_callbackcodetostr
MSK_strdupdbgtask
MSK_strduptask
18.2.2 Parameters compared to version 9¶
Added
Removed
MSK_IPAR_CHECK_CONVEXITY
MSK_IPAR_INTPNT_MULTI_THREAD
MSK_IPAR_LOG_CHECK_CONVEXITY
MSK_IPAR_READ_LP_DROP_NEW_VARS_IN_BOU
MSK_IPAR_READ_LP_QUOTED_NAMES
MSK_IPAR_WRITE_LP_QUOTED_NAMES
MSK_IPAR_WRITE_LP_STRICT_FORMAT
MSK_IPAR_WRITE_LP_TERMS_PER_LINE
MSK_IPAR_WRITE_PRECISION
MSK_SPAR_REMOTE_ACCESS_TOKEN
MSK_SPAR_STAT_FILE_NAME
18.2.3 Constants compared to version 9¶
Added
Removed
MSK_CALLBACKCODE_BEGIN_FULL_CONVEXITY_CHECK
MSK_CALLBACKCODE_END_FULL_CONVEXITY_CHECK
MSK_CALLBACKCODE_IM_FULL_CONVEXITY_CHECK
MSK_DINFITEM_MIO_IMPLIED_BOUND_TIME
MSK_DINFITEM_MIO_ROOT_CUTGEN_TIME
MSK_DINFITEM_RD_TIME
MSK_IINFITEM_MIO_NUM_CLIQUE_CUTS
MSK_IINFITEM_MIO_NUM_CMIR_CUTS
MSK_IINFITEM_MIO_NUM_GOMORY_CUTS
MSK_IINFITEM_MIO_NUM_IMPLIED_BOUND_CUTS
MSK_IINFITEM_MIO_NUM_KNAPSACK_COVER_CUTS
MSK_IINFITEM_MIO_TOTAL_NUM_CUTS
MSK_SCALINGTYPE_AGGRESSIVE
MSK_SCALINGTYPE_MODERATE
MSK_STARTPOINTTYPE_SATISFY_BOUNDS
18.2.4 Response Codes compared to version 9¶
Added
Removed
MSK_RES_ERR_LP_DUP_SLACK_NAME
MSK_RES_ERR_LP_FORMAT
MSK_RES_ERR_LP_FREE_CONSTRAINT
MSK_RES_ERR_LP_INCOMPATIBLE
MSK_RES_ERR_LP_INVALID_CON_NAME
MSK_RES_ERR_LP_WRITE_CONIC_PROBLEM
MSK_RES_ERR_LP_WRITE_GECO_PROBLEM
MSK_RES_ERR_MPS_INV_BOUND_KEY
MSK_RES_ERR_MPS_INV_CON_KEY
MSK_RES_ERR_MPS_INV_SEC_NAME
MSK_RES_ERR_OPF_FORMAT
MSK_RES_ERR_OPF_NEW_VARIABLE
MSK_RES_ERR_READ_LP_NONEXISTING_NAME
MSK_RES_ERR_WRITE_LP_FORMAT
MSK_RES_ERR_WRITE_LP_NON_UNIQUE_NAME
MSK_RES_WRN_EXP_CONES_WITH_VARIABLES_FIXED_AT_ZERO
MSK_RES_WRN_POW_CONES_WITH_ROOT_FIXED_AT_ZERO
MSK_RES_WRN_QUAD_CONES_WITH_ROOT_FIXED_AT_ZERO
MSK_RES_WRN_RQUAD_CONES_WITH_ROOT_FIXED_AT_ZERO