[Ipopt] Using MUMPS in Ipopt within OSSolverService application causes MPI errors

Florent Teichteil florent.teichteil at gmail.com
Thu Jul 16 06:36:48 EDT 2015

Hi all,

I compiled COIN-1.8 optimization suite with MUMPS as the linear solver
used by Ipopt. My operating system is Fedora 22 and I use MUMPS
provided by Fedora packages, which I think is compiled in its parallel
version using MPI.

Then, I tried to solve an NLP with OSSolverService (application
provided by the COIN "Optimization Service" project) using Ipopt. I
get the following error:

*** The MPI_Comm_f2c() function was called before MPI_INIT was invoked.
*** This is disallowed by the MPI standard.
*** Your MPI job will now abort.

I read many posts on COIN-OR mailing lists related to MPI issues. As
suggested in these posts, I compiled COIN-OR with the
-DHAVE_MPI_INITIALIZED flag but it doesn't change anything. These
posts say also that this is the user responsibility to initialize MPI
by calling  MPI_init in the user code, but here this is not relevant
because I am using the OSSolverService application provided by

Therefore, I think this bug is related:

- either to Optimization Service, which should call MPI_init() and
MPI_finalize() in the OSSolverService program

- or to Ipopt, which should revise the logic behind the use of MPI
functions. Indeed, I looked at the IpMumpsSolverInterface.cpp file
where I suspect some logical mistakes: the call to MPI_Init depends
upon the directive "#ifndef MUMPS_MPI_H" on line 59 but actually
MUMPS_MPI_H is already defined (at least on Fedora) from the file
mpi.h provided by MUMPS and that is included on line 17. Thus, the
lines below "#ifndef MUMPS_MPI_H" where MPI is initialized are never
called, causing the bug in OSSolverService.

In either case I think this is a bug in COIN-OR's Optimization Suite
package because using the provided application OSSolverService with
Ipopt and the underlying MUMPS linear solver provided by the operating
system is supposed to work, isn't it?

All the best,
Florent Teichteil.

More information about the Ipopt mailing list