AC Optimal Power Flow in Various Nonlinear Optimization Frameworks

Congrat’s @sshin23 that’s impressive new option!

I agree with the idea of renaming NPLModels as ADNLPModels, especially since ExaModels is also implementing the NLPModel API.

3 Likes

I suggest to also specify which backend of BLAS / LAPACK is used for the benchmarks.

Is it OpenBLAS32_jll.jl?

Ipopt_jll.jl and HSL_jll.jl (from libHSL) are compiled with LBT and it could highly impact the performances is you use MKL.jl or AppleAccelerate.jl for example.

1 Like

I checked the Manifest.toml of rosetta-opf and an old version of Ipopt (artifact Ipopt_jll.jl) is used:

The lastest version is 300.1400.1400.
The version 300.1400.400 is the last version supported by Julia 1.6 and it was compiled 2021.

@tmigot, I have updated NPLModels to ADNLPModels. This will be reflected in the next update to the table.

@amontoison, I forget exactly which dependency combination is holding the Ipopt_jll version down. @odow had looked into it once and may remember more details. For the linear solver, Ipopt_jll is pulling an HSL DLL that is installed separately from Julia, as per these instructions. I am interested to update to the latest best practices for using HSL in Julia, but probably need some help in getting it setup.

1 Like

Ah. It’s because of OptimizationMOI. Let me take a look. They shouldn’t need that compat

See [OptimizationMOI] fix compat bounds in Project.toml by odow · Pull Request #705 · SciML/Optimization.jl · GitHub

1 Like

@ccoffrin, you can change the BLAS backend in addition to HSL.

See GitHub - jump-dev/Ipopt.jl: Julia interface to the Ipopt nonlinear solver

This requires the updated Ipopt_jll, but it should “just” be a matter of adding using MKL before using Ipopt.

@ccoffrin
For the HSL linear solvers, you just need to download and install HSL_jll.jl now (require an academic licence).
Please take the version precompiled with LBT.
With a using HSL_jll, you can direclty use the HSL linear solvers in Ipopt:

Actually, we probably can’t update anyway, because of:

That only impacts the variants Project.toml, not the main one right?

Now fixed in AmplNLWriter v1.2.1 and OptimizationMOI v0.4.0. I’ll make a PR