<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html>
<head>
 <meta http-equiv='Content-Type' content='text/html;charset=iso-8859-1'>
 <style>BODY{font:10pt Tahoma, Verdana, sans-serif;}</style>
</head>
<body>
Being a distributed MPI solver, MUMPS is written to live in its own memory space or process, which is likely why it isn't totally thread-safe.&nbsp; I've talked to the devs about a fully threaded version and they'd like to do it given infinite time &amp; resources, but it's not on their list of priorities.&nbsp; The devs recommended to me to use a threaded BLAS because of the heavy use of the L3 BLAS in MUMPS.<br><br>I tried the ATLAS threaded blas in MUMPS in IPOPT and it definitely speeds the linear solve up.&nbsp; I've also run MUMPS in its MPI form with multiple processes on one machine and it's a tad faster than with ATLAS (the S.I. "tad "being a well-known scientific measurement...).&nbsp; The code is more messy though and it wasn't an exhaustive set of tests.&nbsp; I haven't gone the whole hog and run a threaded blas/lapack through the rest of IPOPT.&nbsp; I know Andreas has used WSMP inside IPOPT with good scaleup on multiprocessor systems as well. <br><br>Damien<br> <blockquote style="border-left: 2px solid rgb(0, 0, 255); padding-left: 5px; margin-left: 5px; margin-right: 0px;"><hr><b>From:</b> Dmitry Golovashkin [mailto:Dmitry.Golovashkin@sas.com]<br><b>To:</b> Javier Pedrido [mailto:javierpedrido@hotmail.com], coin-ipopt@list.coin-or.org<br><b>Sent:</b> Thu, 11 Oct 2007 11:17:08 -0600<br><b>Subject:</b> RE: [Coin-ipopt] Is Ipopt + MUMPS thread safe?<br><br>&gt; MUMPS definitely isn't.<br>
<br>
try to request it from developers :-)<br>
MUMPS is a parallel distributed solver (according to its website)<br>
it should be cake for them to eliminate global references (I think.)<br>
<br>
&gt; I will have to synchronize the solving code.<br>
<br>
waiting on mumps is probably a bad idea since<br>
most/all of your threads will be blocked waiting for factorization to complete.<br>
A more interesting option would be to run models on a cluster<br>
(each node would get a separate mumps instance - it would nicely scale;<br>
but it might be a little less trivial to implement even in java);<br>
or just run parallel mumps itself.<br>
<br>
If you try its parallel + distrib flavor, please share your experiences.<br>
<br>
Thank you!<br>
Best regards, dm.<br>
<br>
<br>
-----Original Message-----<br>
From: <a href="mailto:coin-ipopt-bounces@list.coin-or.org">coin-ipopt-bounces@list.coin-or.org</a> [mailto:<a href="mailto:coin-ipopt-bounces@list.coin-or.org">coin-ipopt-bounces@list.coin-or.org</a>] On Behalf Of Javier Pedrido<br>
Sent: Thursday, October 11, 2007 12:33 PM<br>
To: <a href="mailto:coin-ipopt@list.coin-or.org">coin-ipopt@list.coin-or.org</a><br>
Subject: Re: [Coin-ipopt] Is Ipopt + MUMPS thread safe?<br>
<br>
The offender seems to be MUMPS, I will have to synchronize the solving code.<br>
Thanks for your quick reply,<br>
Javier<br>
<br>
&gt;From: "Damien Hocking" &lt;<a href="mailto:damien@khubla.com">damien@khubla.com</a>&gt;<br>
&gt;To: <a href="mailto:coin-ipopt@list.coin-or.org">coin-ipopt@list.coin-or.org</a><br>
&gt;Subject: Re: [Coin-ipopt] Is Ipopt + MUMPS thread safe?<br>
&gt;Date: Thu, 11 Oct 2007 10:18:34 -0600<br>
&gt;<br>
&gt;I'm pretty sure IPOPT isn't thread-safe.  MUMPS definitely isn't.  If you <br>
&gt;want to run two separate solves in two threads, you need a separate <br>
&gt;instance of IPOPT in each thread.  Watch your BLAS and LAPACK libraries <br>
&gt;too, if they're old F77 codes, they might have things like SAVE statements, <br>
&gt;which means you should only run one instance in any process space.<br>
&gt;<br>
&gt;Damien<br>
&gt;   _____<br>
&gt;<br>
&gt;From: Javier Pedrido [mailto:<a href="mailto:javierpedrido@hotmail.com">javierpedrido@hotmail.com</a>]<br>
&gt;To: <a href="mailto:coin-ipopt@list.coin-or.org">coin-ipopt@list.coin-or.org</a><br>
&gt;Sent: Thu, 11 Oct 2007 09:39:45 -0600<br>
&gt;Subject: [Coin-ipopt] Is Ipopt + MUMPS thread safe?<br>
&gt;<br>
&gt;Hi,<br>
&gt;<br>
&gt;   I was trying the new Java interface and whenever I run it from 2 <br>
&gt;different<br>
&gt;   threads, Ipopt crashes. Ipopt uses MUMPS as linear solver and was <br>
&gt;compiled<br>
&gt;   with g95/g++ and with ifort/cl. Both builds crash in multi-threaded<br>
&gt;   environments. Am I doing something wrong or Ipopt/MUMPS are not thread <br>
&gt;safe?<br>
&gt;<br>
&gt;   Thanks in advance,<br>
&gt;   Javier<br>
&gt;<br>
&gt;   _________________________________________________________________<br>
&gt;   MSN Amor: busca tu ½ naranja <a href="http://latam.msn.com/amor/" target="_blank">http://latam.msn.com/amor/</a><br>
&gt;<br>
&gt;   _______________________________________________<br>
&gt;   Coin-ipopt mailing list<br>
&gt;   <a href="mailto:Coin-ipopt@list.coin-or.org">Coin-ipopt@list.coin-or.org</a><br>
&gt;   <a href="http://list.coin-or.org/mailman/listinfo/coin-ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/coin-ipopt</a><br>
&gt;<br>
<br>
<br>
&gt;_______________________________________________<br>
&gt;Coin-ipopt mailing list<br>
&gt;<a href="mailto:Coin-ipopt@list.coin-or.org">Coin-ipopt@list.coin-or.org</a><br>
&gt;<a href="http://list.coin-or.org/mailman/listinfo/coin-ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/coin-ipopt</a><br>
<br>
_________________________________________________________________<br>
MSN Amor: busca tu ½ naranja <a href="http://latam.msn.com/amor/" target="_blank">http://latam.msn.com/amor/</a><br>
<br>
_______________________________________________<br>
Coin-ipopt mailing list<br>
<a href="mailto:Coin-ipopt@list.coin-or.org">Coin-ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/coin-ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/coin-ipopt</a><br>
<br>
_______________________________________________<br>
Coin-ipopt mailing list<br>
<a href="mailto:Coin-ipopt@list.coin-or.org">Coin-ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/coin-ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/coin-ipopt</a><br>
</blockquote><style>
</style>
</body></html>