Skip to content
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

Using Ipopt.jl with SPRAL #223

Closed
ueliwechsler opened this issue Oct 7, 2020 · 4 comments
Closed

Using Ipopt.jl with SPRAL #223

ueliwechsler opened this issue Oct 7, 2020 · 4 comments

Comments

@ueliwechsler
Copy link

ueliwechsler commented Oct 7, 2020

I'd like to connect Ipopt.jl with the linear solver backend SPRAL

From what I read in the paper Exploring Benefits of Linear Solver Parallelism on Modern Nonlinear Optimization Applications, it has already be done, but I couldn't figure out how to do it myself.

Is a SPRAL interface to the main C++ codebase of Ipopt needed or is there a more convenient way using addOption(prob, "linear_solver", "custom")?

@frapac
Copy link

frapac commented Oct 7, 2020

For using Ipopt with SPRAL, I think you will need this particular fork of Ipopt:
https://github.com/lanl-ansi/Ipopt
The installation instructions are detailed here:
https://github.com/lanl-ansi/Ipopt/blob/master/COMPILE.md

According to the instructions, once Ipopt compiled, you will need to pass the following options to run Ipopt with SPRAL on the GPU:

linear_solver spral
spral_use_gpu yes

@ueliwechsler
Copy link
Author

Thank you for the links.

We haven't been able to compile it for Windows yet, but this is not an issue of Ipopt.jl.
If we manage to do it, I will post an update here for anybody that is interested.

@0xDBFB7
Copy link

0xDBFB7 commented Apr 19, 2021

Just for the future wanderer finding this on google: as of this date, the LANL branch has been merged into the devel branch of ipopt.

The link to the installation guide above is broken (because the lanl repo was burned and restored because of licensing issues): it's here https://gist.github.com/tasseff/ee61ef6c15d3c54e0a6b3e488f2a65be
Presumably updates will go to coin-or https://github.com/coin-or/Ipopt/blob/devel/doc/install.dox

@amontoison
Copy link
Contributor

@ueliwechsler @0xDBFB7
Ipopt is now compiled with SPRAL if you are using Julia 1.9.
We added a section about it in the README.md: https://github.com/jump-dev/Ipopt.jl#spral

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants