Latest version: 2023.05.26
HSL provides a number of linear solvers that can be used in IPOPT. We provide several different ways for IPOPT users to download our codes.
For general use we recommend HSL_MA97. For small or highly sparse problems use MA57. For huge problems use HSL_MA86 (if factors fit in memory) or HSL_MA77 (if they don't).
|Solver||Free to all||Free to academics||Problem size||Parallel||Repeatable answers||Notes|
|MA27||Yes||Yes||Small||No||Yes||Outdated, relatively slow. |
Can be downloaded as a standalone package.
|MA57||Yes||Small / Medium||Threaded BLAS||Yes|
|HSL_MA86||Yes||Large||Highly||No*||Designed for multicore|
|HSL_MA97||Yes||Small / Medium / Large||Yes||Yes||Slower than HSL_MA86 on large problems|
* Note: HSL_MA86 achieves repeatable answers in serial, however when running in parallel operations may be reordered for better performance. This leads to different (but equally valid) solutions.
- Try different scaling options using solver specific settings in ipopt.opt.
- For many problems scaling is not necessary. In particular try "ma57_automatic_scaling no" when using MA57 on small problems.
- See our report On the effects of scaling on the performance of Ipopt for a review of these effects.
- When using HSL_MA86 or HSL_MA97 ensure MeTiS ordering is compiled into Ipopt to maximize parallelism.
swap_vertical_circlecloud_downloadSupporting documents (2)Additional files may be available once you've completed the transaction for this product. If you've already done so, please log into your account and visit My account / Downloads section to view them.