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)checksums.txtChecksums1 KBChangeLogChangeLog3 KBAdditional 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.