[Ipopt] BLAS version changes number of iterations significantly

Tobias Kasper Skovborg Ritschel tobk at dtu.dk
Thu Jan 24 08:02:16 EST 2019


I am using IPOPT to solve an optimal control problem based on a direct collocation-based method. By accident (reusing old code), I had linked my code to a version of BLAS that was shipped with the optimization software Galahad version 2.60004 that I have installed. When I instead link to Netlib's version of BLAS (shipped with my OS Ubuntu 16.04 LTS), the number of iterations increases from 191 to 427 (the problem is solved equally well in both cases, i.e. IPOPT converges to an optimal solution). Further, I tried to link it to OpenBLAS version 0.2.20 that I have downloaded and compiled. In this case, the number of iterations was 695 (I still get the same solution). I also wanted to try ATLAS, but I had trouble turning off CPU throttling, so ultimately, I skipped it.

I wouldn't normally expect any significant change in the number of iterations when changing the BLAS version, but as I can understand from projects.coin-or.org/Ipopt/ticket/213, it can be due to parallelization. I didn't do anything specific to turn parallelization on or off, but I guess there might be some behind the curtains. I am still surprised that the changes are so significant.

Now, my question is:

Is there something I should consider when choosing which version of BLAS to use and how to compile it in order to get the best performance (e.g. the lowest number of iterations)? (My expectation was that OpenBlas would perform better than the Netlib BLAS shipped with my OS which should in turn perform better than the Netlib BLAS shipped with Galahad which is old according to the Galahad developers.) Or might it be random such that for other similar examples, OpenBLAS could give the lowest number of iterations?

The repeatability is less of an issue than performance (it is for online purposes, i.e. for NMPC).

A few pieces of information about my setup:

I use the callable IPOPT C library version 3.12.4
OS: Ubuntu 16.04 LTS
Compiler: GNU gcc 5.4.0
Cores: 4 cores, each with 2 processors
Linear solver: MA57 from HSL (www.hsl.rl.ac.uk/ipopt/<http://www.hsl.rl.ac.uk/ipopt/>)

If any other information is necessary, please let me know.

Best regards

Tobias K. S. Ritschel
2-control ApS
Frimodtsvej 11
DK-2900 Hellerup
info at 2-control.dk

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20190124/e284a8d8/attachment.html>

More information about the Ipopt mailing list