order

picos.solvers.order = ['gurobi', 'cplex', 'mosek', 'mskfsn', 'scip', 'ecos', 'glpk', 'smcp', 'cvxopt']

The default preference list for solver selection. Solvers that do not appear are appended arbitrarily when selecting a solver.

The order is chosen as follows:

  • Commercial solvers appear first as the user has spent money or academic licensing effort to make them available and is likely to want them used.
  • MOSEK’s high level Fusion API was found to be a performance bottleneck (2018-10), so it appears at the end of the commercial solver list (so that MOSEK’s low level Optimizer API takes precedence).
  • Commercial solvers are sorted based on LP benchmark results in http://plato.asu.edu/talks/informs2017.pdf as LPs are the most basic problem type supported by PICOS and the benchmark results appear decisive.
  • CVXOPT appears last as it is the only solver that PICOS depends on and thus presence on the system is least likely to express user preference.
  • The remaining noncommercial solvers are sorted based on the PICOS maintainers’ subjectively perceived impression of “maintainedness”.