[Ipopt] Ipopt crash with PARDISO 4.0 when it starts.
James Henderson
jamesh125125 at yahoo.com
Fri Apr 9 05:17:49 EDT 2010
Dear Teeter,
I build the Ipopt with the "v8-ifort" Project in the ipopt source. (will it be related to the problem?)
And I use the default BLAS that i dowload directly with the command "get.Blas" from cygwin.(So i don't know which BLAS it is.)
But ipopt still crash when it starts.
Thx
________________________________
From: "Teeter, Chuck" <cteeter at Suncor.com>
To: James Henderson <jamesh125125 at yahoo.com>
Cc: ipopt ipopt <ipopt at list.coin-or.org>
Sent: Fri, April 9, 2010 4:07:36 AM
Subject: RE: Ipopt crash with PARDISO 4.0 when it starts.
Lewis,
Have you tried to run your application through the
debugger and set break points in the Pardiso interface code to see where it's
crashing? My initial suggestion is to verify (by stepping into the code)
that the new interface to Pardiso is being called and not the older one.
If you have defined HAVE_PARDISO_NEWINTERFACE, you should be calling the correct
interface. Also be sure that the F77_FUNC() macro is not being used as
described below.
If you are using the Intel Math Kernel Library (MKL)
for BLAS, you will need to add the appropriate libraries (mkl_intel_c.lib,
mkl_thread.lib, mkl_core.lib, libiomp5md.lib in my particular case) to the link
line AFTER libpardiso400_INTEL_IA32.lib.
In Visual Studio, I've also set my calling convention
for the Ipopt library to __cdecl (/Gd). It may be worthwhile to check your
setting as well.
________________________________
From: James Henderson
[mailto:jamesh125125 at yahoo.com]
Sent: Thursday, April 08, 2010 1:00
PM
To: Teeter, Chuck; ipopt ipopt
Subject: Ipopt crash with
PARDISO 4.0 when it starts.
Dear
all and Teeter,
I have follow your instruction , but when i set
everything ,and start to compute , ipopt crash and the ipopt log prints
nothing.
I think i have the correct pardiso license and put it at the right
place, becasue when i do it wrong, the ipopt log will still have some error
messages in it.
But when i do it right, the ipopt crash and ipopt log is
empty.
What happen? And how can i fix it?
P.S. I can use ma27, ma57
and mumps as linear solver too.
Thank you.
Lewis
________________________________
From: "Teeter, Chuck"
<cteeter at Suncor.com>
To: York Tang <hkyork at gmail.com>
Cc: ipopt at list.coin-or.org
Sent: Fri, February 19, 2010 4:13:46
AM
Subject: Re: [Ipopt] Can
PARDISO 4.0 work with ipopt in windows?
York,
I use Visual Studio 2008 to build IPOPT 3.8. In my case,
I build IPOPT as a static library and link it with PARDISO. If you are
using Visual Studio, you must make sure that the file
"IpPardisoSolverInterface.cpp" is included in your project file, or it will not
be compiled even if you've changed it. I've noticed that some IPOPT source
files have not been included in the Visual Studio project file, and I've had to
manually add some on occasion.
If you are building PARDISO as a DLL, you have to perform a few
additional steps.
1. When you build the IPOPT DLL, you will need to link it
with the import library named "libpardiso400_INTEL_IA32.lib". This is done
so that when the IPOPT DLL is loaded by your executable, it can find the PARDISO
functions it needs at runtime in "libpardiso400_INTEL_IA32.dll". The
process of building the IPOPT DLL should also produce a .lib file of the same
name as the DLL.
2. When you build your executable, you must link your code to
the .lib file that was produced when building IPOPT. This way, your
executable can find the IPOPT functions it needs in the accompanying DLL at
runtime.
3. The file libiomp5md.dll is a runtime library (not to be confused
with the import libraries mentioned above), and needs to be in the same
directory as your executable. This DLL is used to support the Intel MKL
code that is used by PARDISO. It may also be located somewhere else,
provided that your system can find it, ie, it needs to be in a directory defined
by the PATH environment variable.
4. Do not rename "libpardiso400_INTEL_IA32.dll", or it will not be
properly located at runtime. If you link IPOPT with
libpardiso400_INTEL_IA32.lib, it expects to use a runtime DLL of the same
name.
5. You probably do not need the PARDISO_Template.zip file - I
didn't need it.
6. At run time, your executable, the IPOPT DLL, and file
libiomp5md.dll must all reside in the same directory or be located in a
directory defined by the PATH environment variable.
________________________________
From: York Tang [mailto:hkyork at gmail.com]
Sent: Thursday, February 18, 2010 12:02 PM
To: Teeter,
Chuck
Cc: ipopt at list.coin-or.org
Subject: Re: [Ipopt] Can
PARDISO 4.0 work with ipopt in windows?
Dear Teeter,
I have tried your step, but still crash when the
solver start (do not print any msg from the process)
Here is what i have
done.
1. First i download the( INTEL, 32-bit, icc/ifort 10.1 Windows)
(with MKL BLAS) Version of PARDISO.
It has 4
files(libpardiso400_INTEL_IA32.dll,libpardiso400_INTEL_IA32.lib,libiomp5md.dll,PARDISO_Template.zip)
2.
I named the "libpardiso400_INTEL_IA32.dll" to "libpardiso.dll". Put it next to
my exe. (my exe can detect the licence is wrong, if i input a invalid licence
file)
3. And do all the thing that you mentioned. and replace the old
Ipopt38.dll with the new one.
Where is my problem?
Also What i need to
do with the libpardiso400_INTEL_IA32.lib,libiomp5md.dll,PARDISO_Template.zip?
(if i just want to use the PARDISO with ipopt)
Thank you so much for your
help!
York
2010/2/18 Teeter, Chuck <cteeter at suncor.com>
York,
>
>PARDISO
> does indeed work with IPOPT. I had an experience similar to
>yours,
> but this is how I fixed it:
>
>1. At the top of the IPOPT source
> file IpPardisoSolverInterface.cpp,
>add the following preprocessor
> definition if it does not already exist:
>
>#ifndef
> HAVE_PARDISO_NEWINTERFACE
>#define HAVE_PARDISO_NEWINTERFACE
> 1
>#endif
>
>
>2. In the same source file, remove the F77_FUNC()
> macro definition from
>ALL references to functions PARDISOINIT() and
> PARDISO(). For example,
>instead of the original function
> prototype:
>
>void F77_FUNC(pardisoinit,PARDISOINIT) (void* PT, const
> ipfint* MTYPE,
>
>
> const
> ipfint*
>SOLVER,
>
>
> ipfint* IPARM,
>
>
>
> double* DPARM,
>
>
> ipfint*
> ERROR );
>
>
>Use the following version instead:
>
>void
> PARDISOINIT(void* PT, const ipfint* MTYPE,
>
>
>
> const ipfint*
>SOLVER,
>
>
> ipfint*
> IPARM,
>
>
> double* DPARM,
>
>
>
> ipfint* ERROR );
>
>I commented out the original references
> and created the modified
>versions to be used instead. Do the same for
> all function calls as
>well, and this should fix your problem after
> rebuilding IPOPT.
>
>One final point: If you haven't already done so,
> remember to define
>HAVE_PARDISO and HAVE_PARDISO_PARALLEL (if applicable)
> in the IPOPT
>source file IpoptConfig.h
>
>
>
>
>
>-----Original Message-----
>From: Olaf.Schenk at unibas.ch [mailto:Olaf.Schenk at unibas.ch]
>Sent:
> Thursday, February 18, 2010 2:27 AM
>To: York Tang
>Cc: ipopt at list.coin-or.org; Teeter,
> Chuck
>Subject: Re: [Ipopt] Can PARDISO 4.0 work with ipopt in
> windows?
>
>York,
>
>The PARDISO 4.0.0 DLL is working correctly with
> IPOPT. I am copying
>Chuck Teeter in this email since he is actually using
> IPOPT and PARDISO
>on Windows.
>
>Olaf
>
> Tang <hkyork at gmail.com>:
>
>> Dear
> all,
>>
>> Recently i tried to download PARDISO dll from its
> website, after i
>> provided its license file , the program
> crashed.
>> Can PARDISO 4.0 work with ipopt in windows? the ipopt
> documentation
>> said no , but someone in the mail archive said
> yes.
>> Which one is correct? if yes, what i need to set, after i have
> the dll
>
>> and the license file.
>> thank you
>>
>>
> York
>>
>
>
>
>----------------------------------------------------------------
>This
> message was sent using IMP, the Internet Messaging
> Program.
>
>
>------------------------------------------------------------------------
>This
> email and its contents are private and confidential, for the sole use of the
> addressees. If you are not an intended recipient, copying, forwarding or other
> distribution of this email or its contents by any means is prohibited. If you
> believe that you received this email in error please notify the original
> sender immediately.
>
>Petro-Canada is a Suncor Energy
> business.
>
>------------------------
>
>Ce courriel et son contenu
> sont privés et confidentiels, et sont destinés à l’usage exclusif des
> destinataires. Si vous n'êtes pas le destinataire prévu, toute reproduction,
> transfert ou autre forme de diffusion de ce courriel ou de son contenu par
> quelque moyen que ce soit est interdit. Si vous croyez avoir reçu ce courriel
> par erreur, veuillez en aviser l'expéditeur original
> immédiatement.
>
>Petro-Canada est une entreprise de Suncor
> Énergie.
>
>
------------------------------------------------------------------------
This
email and its contents are private and confidential, for the sole use of the
addressees. If you are not an intended recipient, copying, forwarding or other
distribution of this email or its contents by any means is prohibited. If you
believe that you received this email in error please notify the original sender
immediately.
Petro-Canada is a Suncor Energy
business.
------------------------
Ce courriel et son contenu sont
privés et confidentiels, et sont destinés à l’usage exclusif des destinataires.
Si vous n'êtes pas le destinataire prévu, toute reproduction, transfert ou autre
forme de diffusion de ce courriel ou de son contenu par quelque moyen que ce
soit est interdit. Si vous croyez avoir reçu ce courriel par erreur, veuillez en
aviser l'expéditeur original immédiatement.
Petro-Canada est une
entreprise de Suncor Énergie.
------------------------------------------------------------------------
This email and its contents are private and confidential, for the sole use of the addressees. If you are not an intended recipient, copying, forwarding or other distribution of this email or its contents by any means is prohibited. If you believe that you received this email in error please notify the original sender immediately.
Petro-Canada is a Suncor Energy business.
------------------------
Ce courriel et son contenu sont privés et confidentiels, et sont destinés à l’usage exclusif des destinataires. Si vous n'êtes pas le destinataire prévu, toute reproduction, transfert ou autre forme de diffusion de ce courriel ou de son contenu par quelque moyen que ce soit est interdit. Si vous croyez avoir reçu ce courriel par erreur, veuillez en aviser l'expéditeur original immédiatement.
Petro-Canada est une entreprise de Suncor Énergie.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/ipopt/attachments/20100409/79aa7ed9/attachment-0001.html
More information about the Ipopt
mailing list