[Ipopt-tickets] [Ipopt] #111: MA57 interface
Ipopt
coin-trac at coin-or.org
Thu Oct 29 09:48:41 EDT 2009
#111: MA57 interface
------------------------------+---------------------------------------------
Reporter: hmartin | Owner: ipopt-team
Type: enhancement | Status: new
Priority: normal | Component: Ipopt
Version: 3.7 (C++ Version) | Severity: normal
Keywords: |
------------------------------+---------------------------------------------
I solve a large scale NLP, in which the jacobian is sometimes ill
conditionned. Whereas MA27 works fine on this problem (typically, the
residual ratio of the linear system before iterative refinement is of the
order 1e-10), MA57 fails to factorize the matrix unless I increase the
pivot threshold to values like 0.01.[[BR]]
By playing with the MA57 options, I found that it is due to the automatic
scaling with MC64 included in MA57. If I deactivate it, MA57 recovers the
same stability as MA27, with the default pivot threshold. I suggest then
the MA57 scaling to become an Ipopt option, as it does not seem to always
be beneficial.[[BR]]
On a different topic, I tried to improve the memory consumption of MA57 by
lowering ma57_pre_alloc. Indeed, on my problem the symbolic factorization
estimates the needed memory to 400MB, but the actual memory needed is
around 700. With the default pre_alloc of 3, 1200MB are allocated... I
think it would be better to use a smaller ma57_pre_alloc, but to also use
it for reallocations. In this way, the memory needed by the linear solver
would be much reduced, to the price of only 1 reallocation in most cases.
I also found that sometimes the copy of the factorization data to a new
larger array fails in MA57, due to an initialized wd_keep_ array. I do not
know if it is a compiler bug, or a MA57 bug, but anyway it can be fixed by
initializing wd_keep_ to 0.[[BR]]
Please find attached my modified IpMa57TSolverInterface.cpp, hoping it can
be useful.
--
Ticket URL: <https://projects.coin-or.org/Ipopt/ticket/111>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.
More information about the Ipopt-tickets
mailing list