<HTML><BODY>
Hello,<div><br></div><div>I am not sure if this is the right place to ask this as it seems to be purely related to the linear solver used, but let me give some background of what I am observing.</div><div>I am trying to solve the following (quadratic) problem:</div><div><br></div><div><div>Number of nonzeros in equality constraint Jacobian...:  8978916</div><div>Number of nonzeros in inequality constraint Jacobian.:   378079</div><div>Number of nonzeros in Lagrangian Hessian.............:     9206</div><div><br></div><div>Total number of variables............................:   378696</div><div>                     variables with only lower bounds:   338885</div><div>                variables with lower and upper bounds:    39177</div><div>                     variables with only upper bounds:        0</div><div>Total number of equality constraints.................:    39757</div><div>Total number of inequality constraints...............:   338923</div><div>        inequality constraints with only lower bounds:        0</div><div>   inequality constraints with lower and upper bounds:        1</div><div>        inequality constraints with only upper bounds:   338922</div></div><div><br></div><div>It is decently large, but still a simple quadratic problem with linear constraints. I am solving many of those successfully (and fast) with the MKL PARDISO linear solver used, but this is the biggest one so far.</div><div>I am able to solve this in 2 ways:</div><div><br></div><div>1. Windows, IpOpt 3.7.0, MUMPS linear solver</div><div>Number of Iterations....: 82</div><div><div>Total CPU secs in IPOPT (w/o function evaluations)   =    521.732</div><div>Total CPU secs in NLP function evaluations           =     20.381</div></div><div><br></div><div>I am normally not using this because it is a lot (sometimes orders of magnitude) slower than the PARDISO version, but this time I ran it for comparison purposes.</div><div><br></div><div><br></div><div>2. Linux, IpOpt 3.12.12, MKL PARDISO linear solver (same laptop as in the above)</div><div>The iterations are going the same way as in the previous setup, so I guess it will all be the same in the end .. with the exception that it seems to take forever.</div><div>I know it is not apples to apples comparison, but so far I have never seen PARDISO being slower than MUMPS, let alone with such margin. I ran with pardiso_msglvl and for the first iteration I saw that:</div><div><br></div><div><div>=== PARDISO: solving a symmetric indefinite system ===</div><div>1-based array indexing is turned ON</div><div>PARDISO double precision computation is turned ON</div><div>METIS algorithm at reorder step is turned ON</div><div>Matching is turned ON</div></div><div><br></div><div><div>Parallel Direct Factorization is running on 4 OpenMP</div><div><br></div><div>< Linear system Ax = b ></div><div>             number of equations:           1096299</div><div>             number of non-zeros in A:      10792217</div><div>             number of non-zeros in A (%): 0.000898</div><div><br></div><div>             number of right-hand sides:    1</div><div><br></div><div>< Factors L and U ></div><div>             number of columns for each panel: 112</div><div>             number of independent subgraphs:  0</div><div>< Preprocessing with state of the art partitioning metis></div><div>             number of supernodes:                    748178</div><div>             size of largest supernode:               26102</div><div>             number of non-zeros in L:                353891709</div><div>             number of non-zeros in U:                1</div><div>             number of non-zeros in L+U:              353891710</div><div>=== PARDISO is running in In-Core mode, because iparam(60)=0 ===</div></div><div><br></div><div><div>Times:</div><div>======</div><div>Time spent in copying matrix to internal data structure (A to LU): 0.000001 s</div><div>Time spent in factorization step (numfct)                        : 430.960081 s</div><div>Time spent in allocation of internal data structures (malloc)    : 0.047239 s</div><div>Time spent in additional calculations                            : 0.000080 s</div><div>Total time spent                                                 : 431.007401 s</div></div><div><br></div><div>So it spent nearly the same amount of time in the first factorization as the MUMPS setup for the whole problem, which definitely makes no sense. </div><div>Subsequent iterations are faster at about 300 seconds each, which is still very bad.</div><div><br></div><div>I am wondering if I am missing something in the usage of PARDISO in that context, maybe an option that could help or something that seems generally off ? Does anyone have experience with a situation like that ?</div><div><br></div><div>Thank you very much !</div><div><br></div><div>Ivo</div></BODY></HTML>