-
Notifications
You must be signed in to change notification settings - Fork 525
Performance enhancement ideas
This page compiles individual ideas for improving Pyomo's overall performance. Individual ideas may be tied to a (closed, but unresolved) issue where discussion specific to that idea is archived. The intent is that when an idea will receive active developer attention, that issue will be re-opened.
- #1202: Re-evaluate the need for NPV expression objects
- #1184: Define custom expression objects to short-circuit common checks
- #1161: Using Python macros to accelerate Pyomo expression kernels
- #1153: Expression templates
- #1073: Revisit design of method used to create the canonical repn
- #324: Reconsider performance of expressions with many constants
- #1169: with cplex, solver_io='python' is much slower than executable=(solver_path)
- #1160: Fast(er) direct solver interfaces
- #1158: Use C/C++ extensions for file writers
- #1154: "automatic" persistent solvers
- #1151: Improve the NL writer
- #251: Huge memory consumption while generating model file
- #177: Enable creating of NL files with binary data
- #1030: Redesign of Pyomo Solvers
- #677: Shift to using unsorted problem files with Python 3.6 and later
- #106: Fast serialization of solutions to/from disk
- #1203: Add "compiled" model support
- #1192: Implement Parallel Blocks
- #1165: Investigate "array-like" components
- #1159: Matrix/Vector Representations
- #1178: Pyomo installation with Cython
-
2 Nov 2020 (@bernalde)
I just wanted to make you aware of this technical report recently published by independent researchers https://www.mii.lt/files/doc/lt/doktorantura/ataskaitine_konferencija/n009_ma_2020_jusevicius.pdf Contrary to what was shown in the JuMP paper, Pyomo is not trailing that badly behind other AMLs. They have a Github repository where they used the GAMS Model library to benchmark AMPL, GAMS, AIMMS, JuMP and Pyomo https://github.com/vaidasj/alg-mod-rev
-
7 Feb 2022 (@wehart)
Other ideas that I'm not sure are reflected above
- Standardization of matrix/vector expression syntax
- Interfacing with POEK to accelerate expression management
- Standardizing expression of compact expression templates, leveraging POEK/COEK for model generation
- Methods to efficiently resolve problems after mutable parameters change
- Export JSON/JPOF format for separate execution on embedded or HPC platforms
- Integration with Pandas and NumPy to avoid data loading into Python