coin-or / Ipopt

COIN-OR Interior Point Optimizer IPOPT
https://coin-or.github.io/Ipopt
Other
1.41k stars 281 forks source link

Crash when running multiple ipopt instances in parallel (with mumps as the linear solver) #733

Open hw1088 opened 9 months ago

hw1088 commented 9 months ago

Hi, as stated in the title, my program crashes when I run multiple ipopt instances in parallel. Basically, I have a parallelized for-loop and inside the loop Ipopt solves an optimization problem. The crash is from Mumps with the error message " PB allocation in DMUMPS_LOAD_INIT. MUMPS returned INFO(1) =-13 - out of memory when trying to allocate 617 bytes."

I am wondering if ipopt (with mumps) works in this situation, or are there some special flags that needs to set in the configuring step? I used the coinbrew to install ipopt with flags "--disable-openmp --disable-mpiinit". Looking forward to your help! Thanks in advance!

svigerske commented 9 months ago

Which version of Ipopt?

Since 3.14.0, Ipopt tries to avoid calling MUMPS simultaneously from parallel threads, since MUMPS isn't threadsafe. But maybe something is missing.

Try switching to a threadsafe linear solver, e.g. those from HSL.

hw1088 commented 9 months ago

Which version of Ipopt?

Since 3.14.0, Ipopt tries to avoid calling MUMPS simultaneously from parallel threads, since MUMPS isn't threadsafe. But maybe something is missing.

Try switching to a threadsafe linear solver, e.g. those from HSL.

Yeah, it is Ipopt 3.14.0. Indeed it works well with HSL. I understand that this is actually not an issue of Ipopt. Just hope to know if MUMPS has been improved to work in this case or not.

svigerske commented 9 months ago

Not that I know. I couldn't find related info at https://mumps-solver.org/index.php

hw1088 commented 9 months ago

ok, thanks Stefan