[Ipopt] Problems with Pardiso solver in Ipopt
Andreas Waechter
andreasw at watson.ibm.com
Fri Dec 12 18:44:55 EST 2008
Hi Rui,
First, there is probably more computation going on when Ipopt is running
that only in Pardiso, and the Ipopt code itself is currently serial (there
are some matrix-vector products that could take some time, but usually
much less than the factorization). Also, it could also be that a lot of
computation time is spend for the function evaluations? Depending on what
you do here, it is probably also serial.
Olaf Schenk, the Pardiso developer, suggest that you could try a newer
Pardiso library for the 4.3 GNU compilers. Also, you could change the
message level of Pardiso to see if you get some hints from Pardiso output.
To do this, edit the
Ipopt/src/Algorithm/LinearSolvers/IpPardisoInterface.cpp file and change
the value of MSGLVL_ in the contructor (around line 75).
As for the difference in performance, I have not much to say. Pardiso
might return slightly different solutions if the matrix is processed
differently (for different number of threads), and if you have a very
sensitive problem, the performance can look quite different. But it could
of course also be some bug. Maybe using a newer Pardiso library helps.
That's all I could contribute.
Regards,
Andreas
On Thu, 11 Dec 2008, Rui Huang wrote:
> Dear all
>
> I compiled IPOPT with pardiso parallel version and tested it with a
> fairly large problem (100,000 variables) on Intel Quad core Linux machine.
> It seems that the pardiso does not do the parallel computing even I
> specified the environmental parameter OMP_NUM_THREADS=4.
> The cpu usage was always around 25% no mater what value the parameter
> OMP_NUM_THREADS was (1,2,3,4).
> Do I need to specify something else to make pardiso do the parallel
> computing?
>
> Also I found that although OMP_NUM_THREADS seems can not control the
> number of processors used in pardiso, the performance of pardiso highly
> depends on this parameter.
> If it is set to 3 and 4, my problem will converge in 6 iterations, 541
> cpus.
> If it is set to 2, pardiso is very unstable, my problem converges in
> more than 100 iterations, more than 3 hours,
> and there are many restoration phases and regularization steps.
>
> Does anyone know what is going on here?
> Thanks a lot.
>
> Cheers
> Rui
>
> --
> Rui Huang
> Chemical Engineering Department
> Carnegie Mellon University
> 5000 Forbes Ave Pittsburgh PA 15213
> www.andrew.cmu.edu/~ruih
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>
More information about the Ipopt
mailing list