-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improving the Performance of IPOPT in EAGO #130
Comments
Based on the README for Ipopt, it looks like it should be possible as of Julia v1.9. We're still in the process of updating our overall documentation---we'll look into this as well to make sure it works as intended and update accordingly. |
How would one set the IPOPT linear solver to SPRAL? Based on the IPOPT subsolver code in EAGO.jl (https://github.com/PSORLab/EAGO.jl/blob/master/src/subsolvers/ipopt.jl), the following attempt does not work. using IntervalArithmetic; setrounding(Interval, :accurate) $ julia create_model.jl |
EAGO sets subsolver parameters in two ways. The first is by overloading The second way EAGO sets subsolver parameters is by setting the
|
Thanks for the advice. I have used the second method. In the second method, are the default parameters (such as "tol" and "constr_viol_tol") set in src/subsolvers/ipopt.jl used by IPOPT, if those parameters are not set in upper_optimizer by MOI.set? That is, are the upper_optimizer parameters set after first calling set_default_config!? |
The default parameters in |
If I modify the file ~/.julia/packages/EAGO/7BNFB/src/subsolvers/ipopt.jl in my Julia installation, will those changes be reflected when I use EAGO.jl to solve a JuMP model? Does the input parameter local_solver to the function set_default_config! equal true? |
If you're looking to change the default behavior of EAGO, it's probably a better idea to create your own fork of EAGO and modify/use that. If you're only making changes for solving individual optimization problems, you should use one of the methods I described earlier to change subsolver parameters without changing the default EAGO operation. The input parameter |
There is some advice here for improving the performance of the version of IPOPT used by EAGO by compiling an optimized version of IPOPT.
https://psorlab.github.io/EAGO.jl/dev/optimizer/high_performance/#Ipopt-Build
Rather than compiling a new version of IPOPT, is it possible to instead improve the peformance of IPOPT in EAGO, by using set_attribute to select the linear solver, as described here?
https://github.com/jump-dev/Ipopt.jl?tab=readme-ov-file#linear-solvers
Is it possible to select MKL instead of OpenBLAS for the BLAS & LAPACK backend library used by IPOPT and the linear solvers in EAGO by using the code below before creating the EAGO model? https://github.com/jump-dev/Ipopt.jl?tab=readme-ov-file#blas-and-lapack
using MKL # Replace OpenBLAS by Intel MKL
using Ipopt
using EAGO
model = Model(EAGO.Optimizer)
The text was updated successfully, but these errors were encountered: