[Ipopt-tickets] [Ipopt] #213: Repeatability of optimization runs with IPOPT

Ipopt coin-trac at coin-or.org
Tue Aug 6 19:12:07 EDT 2013


#213: Repeatability of optimization runs with IPOPT
----------------------------+---------------------------
  Reporter:  florian.saupe  |      Owner:  stefan
      Type:  defect         |     Status:  assigned
  Priority:  normal         |  Component:  Ipopt
   Version:  3.11           |   Severity:  normal
Resolution:                 |   Keywords:  repeatability
----------------------------+---------------------------

Comment (by jonnyz007):

 OPTI IPOPT uses the Intel Math Kernel Library (MKL) for BLAS and LAPACK
 (v11, R4 in OPTI v2.00), and HSL MA57 (supplied with MATLAB). MA57
 supplied with MATLAB is also (I believe) compiled against a version of the
 Intel MKL for BLAS and LAPACK.

 A source of non-determinisim (as identified by Stefan) is the Intel MKL
 itself, as described in the following link:
 http://software.intel.com/en-us/articles/getting-reproducible-results-
 with-intel-mkl

 By default unless all memory that MKL is operating on is aligned (i.e. via
 aligned malloc calls) AND Conditional Numerical Reproducibility (CNR) is
 enabled
 http://software.intel.com/en-us/articles/introduction-to-the-conditional-
 numerical-reproducibility-cnr

 then results may (will) be non-deterministic. Whether you notice the non-
 deterministic results will depend on your problem.

 Things you can try:
 - Use the linear solver MUMPS rather than MA57 (via ipoptset)
 - Set the processor affinity of MATLAB to 1 processor only (via task
 manager)

 However I doubt either of the above will fix the issue. IPOPT will need to
 be re-written with memory aligned allocation calls (i.e. overloading new
 and delete), and compiled against MKL with CNR enabled in order for OPTI
 to support parallelized deterministic behaviour. In addition MA57 cannot
 be used.

 Next best solution - I can compile a version of IPOPT against Netlib
 BLAS/LAPACK (not threaded) and sequential MUMPS, and we can see if that
 helps? Definitely won't be as fast, but might be deterministic... Let me
 know if you want to try this.

-- 
Ticket URL: <https://projects.coin-or.org/Ipopt/ticket/213#comment:3>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.



More information about the Ipopt-tickets mailing list