Hello,<div><br></div><div>I&#39;m using Ipopt within CasADi for dynamic optimization and from some simple tests I can verify that the optimized BLAS is much faster (around 3-4 times). I&#39;m comparing the netlib MA27 I compiled myself with a mysterious MA27 dll file I found on Ipopt trunk [1], which I suppose includes some optimized library for Windows.</div>

<div><br></div><div>I tried to generate GoToBLAS and OpenBLAS static libraries here but Ipopt actually says they are not valid BLAS libraries when using the <i>configure</i> script. The only thing I found suspicious about the process is that the static libraries being generated by the BLAS makefiles are &quot;.lib&quot;  instead of &quot;.a&quot; files, even though I&#39;m doing everything through MSYS+MinGW.</div>

<div><br></div><div>Has anyone had success using precompiled BLAS libraries with Ipopt on Windows (MinGW)? Unfortunately I have no way of using Linux on my project.</div><div><br></div><div>Happy holidays,<br>Pedro</div>
<div>
<br></div><div>[1] <a href="https://projects.coin-or.org/OS/browser/trunk/OS/MSVisualStudio/lib/libhsl.dll?rev=1703">https://projects.coin-or.org/OS/browser/trunk/OS/MSVisualStudio/lib/libhsl.dll?rev=1703</a></div><div><br>

<div class="gmail_quote">On Sat, Dec 22, 2012 at 7:09 AM, Tony Kelman <span dir="ltr">&lt;<a href="mailto:kelman@berkeley.edu" target="_blank">kelman@berkeley.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">
<div dir="ltr">
<div style="font-size:12pt;font-family:&#39;Calibri&#39;">
<div>Happy to help, glad that worked for you.</div>
<div> </div>
<div>Yes, there can be, but it’s tough to predict how significant it will be. It 
depends very much on your problem structure and size.</div>
<div> </div>
<div>The most noticeable performance difference is in large dense matrix-matrix 
BLAS operations. Many of the sparse linear solvers that Ipopt uses will try to 
aggregate dense sub-blocks together to use more efficient BLAS operations. The 
performance difference between basic reference BLAS and optimized versions 
thereof (MKL, ACML, ATLAS, GotoBLAS/OpenBLAS, Apple vecLib, etc) on sparse 
optimization problems in Ipopt will depend on how effective that aggregation 
into dense sub-blocks is.</div>
<div> </div>
<div>The README from the HSL folks says the optimized BLAS versions can be 10x 
faster than the reference implementation. I was doing some benchmarking a few 
months back with nonlinear MPC problems from HVAC control (a few tens of 
thousands of variables) and saw closer to a factor of 2 most of the time, but it 
varied a lot between the different combinations of which sparse solver and which 
optimized BLAS implementation. YMMV!</div>
<div> </div>
<div>Another thing to note is most optimized BLAS implementations are more 
readily available, easier to build, and tuned better for Linux than for Windows. 
Most of the Ipopt performance benchmarking and comparison I’ve done and seen 
other people do has been in Linux (and some on Macs).</div>
<div> </div>
<div>-Tony</div>
<div> </div>
<div style="font-size:small;font-style:normal;text-decoration:none;font-family:&#39;Calibri&#39;;display:inline;font-weight:normal">
<div style="FONT:10pt tahoma">
<div><font size="3" face="Calibri"></font> </div>
<div style="BACKGROUND:#f5f5f5">
<div><b>From:</b> <a title="tabacof@gmail.com" href="mailto:tabacof@gmail.com" target="_blank">Pedro Tabacof</a> </div>
<div><b>Sent:</b> Friday, December 21, 2012 6:23 AM</div>
<div><b>To:</b> <a title="kelman@berkeley.edu" href="mailto:kelman@berkeley.edu" target="_blank">Tony Kelman</a> </div>
<div><b>Cc:</b> <a title="ipopt@list.coin-or.org" href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a> </div>
<div><b>Subject:</b> Re: [Ipopt] Obtaining MA57 dll</div></div></div>
<div> </div></div><div class="im">
<div style="font-size:small;font-style:normal;text-decoration:none;font-family:&#39;Calibri&#39;;display:inline;font-weight:normal">Tony, 
thank you very much, that worked perfectly! 
<div> </div>
<div>I ended up using the standard netlib packages (using Ipopt &quot;get&quot; scripts), 
do you think there is a significant performance difference from other 
implementations? 
<div> </div>
<div>Pedro.<br><br></div></div></div></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Pedro Tabacof,<br>Unicamp - Eng. de Computação 08.<br>
</div>