[Ipopt] [OS] Using MUMPS in Ipopt within OSSolverService application causesMPI errors
Tony Kelman
kelman at berkeley.edu
Thu Jul 16 07:32:43 EDT 2015
Try using the serial version of Mumps, if that's available from the Fedora
package. Ipopt is not an MPI parallel application, and neither is
OSSolverService, so there's no benefit and a lot of trouble to be had from
trying to use the MPI version of Mumps.
-Tony
-----Original Message-----
From: Florent Teichteil
Sent: Thursday, July 16, 2015 6:36 AM
To: ipopt at list.coin-or.org ; os at list.coin-or.org
Subject: [OS] Using MUMPS in Ipopt within OSSolverService application
causesMPI errors
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
COIN-OS.
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.
_______________________________________________
OS mailing list
OS at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/os
More information about the Ipopt
mailing list