Resign of pyomo.opt

The pyomo.opt package needs to be redesigned to simplify the creation of new solver interfaces. Currently, this page simply documents issues and ideas for this redesign.

As developers add issues and commentary, please annotate the entries with your initials and date.

Issues

[JDS 170706] Currently, all the solvers are created when their plugin modules are imported. This includes calling the available() logic. This appears to be the biggest bottleneck in Pyomo startup (taking upwards of several seconds). Ideally, solver objects should not be created unless the user specifically requests them. Further, the available() test should not be called until either the user specifically calls available(), or when the solve() method is called.

Ideas

New API capabilities:
  • [JDS 170706] The ability to query a solver object and get the version number / string of the solver executable (requested by IDAES).