Make presolvers and integrations instance-level #645
Replies: 5 comments
-
|
It is of course possible, and it's kind of on my todo. The main reason it hasn't been done yet is the presumed performance impact on the Exactly what do you need? There already exists features to configure solvers and integrations. Making use of this, and possibly extending it, may be a more direct alternative for you. Perhaps that's also the correct place for this. |
Beta Was this translation helpful? Give feedback.
-
|
My use case is the following: in my workflow, two independent problems are prepared. Their solution requires several optimization steps in which variables and objective functions are modified, and simplified feasibility checks are also performed. Throughout these steps, presolvers are enabled or disabled, and different solvers are selected depending on the phase (e.g., quadratic problems are handled using native solvers, while feasibility checks use your integrated At the moment, these two independent problems must be solved sequentially, because the solver switch cannot be executed in a multithreaded environment. |
Beta Was this translation helpful? Give feedback.
-
|
Hard to follow exactly what you need, but I do of course understand the limitations the static configurations impose. Are you using presolvers you built yourself or just the default ones? Which ones are problematic? Are you aware that a solver/integration will only be used if its If you implement your own How far does that get you? |
Beta Was this translation helpful? Give feedback.
-
|
Exactly, and that approach is almost perfect. The remaining point is presolver selection: presolvers don’t seem to offer an equally flexible mechanism. For example, I am not using any custom presolvers, and I’m currently experiencing some issues with the integrated ones due to a bug in the handling of quadratic expressions (also in version 56.1.1). I’ll open a dedicated issue for that shortly. |
Beta Was this translation helpful? Give feedback.
-
|
Sounds like Most likely there will be some redesign of |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I’m working on a parallel optimization workflow where different threads, or even different phases of the same workflow, need to configure and use distinct solver setups (different presolvers, different integrations, etc.).
Right now,
ExpressionsBasedModeluses static methods for controlling presolvers and solver integrations, such as:Feature request
Would it be possible to refactor presolvers and solver integration handling so that they are instance-level rather than static/global?
This change would make the library much more flexible and suitable for concurrent optimization tasks where different models require different solver strategies and need to run in parallel.
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions