[Ipopt] IPOPT: EXIT: Not enough memory

Jonathan Hogg jonathan.hogg at stfc.ac.uk
Mon Apr 4 03:38:28 EDT 2011


MA57 was written back in the day when memory was sufficiently small that 
you only ever used 32-bit integers to index into arrays. It looks like 
what you're seeing is that the size of array ma57 requires is now larger 
than this.

I think Mathworks compile MA57 with 64-bit integers everywhere, so this 
would be why MATLAB can factor it and Ipopt can't. You could try forcing 
ma57 to compile with default integer being 64-bit (INTEGER*8) - there is 
normally a compiler flag for this. You would also have to adjust the 
interface 
(Ipopt/src/Algorithm/Linearsolvers/IpMA57TSolverInterface.[ch]) to 
ensure that longs rather than ints were passed to it!

We're working on getting some of our more up to date solvers (that 
handle such "large" matrices) into IPOPT, but are waiting on clearance 
from our legal dept.

Jonathan

On 03/04/11 05:17, Tom Vacek wrote:
> Follow up:
> Here's what I see with GDB:
>
> IpMa57TSolverInterface.cpp:549:
>       wd_info_[8] = 2147295357  (This doesn't seem right to me.)
>       ma57_pre_alloc_ = 1.05
>
> 563:
>       wd_lfact_ = -2147483648     (Overflow!)
>
> At 565, this the new object is allocated and wd_lfact_ is apparently
> interpreted as unsigned, and this results in an allocation request of
> size 18446744056529682432.  It is time to compile using
> -fdefault-integer-8
>
> Tom
>
> On 04/02/2011 04:08 PM, Tom Vacek wrote:
>> I have a similar issue.  I have a problem with ~17000 variables and
>> ~1000 equality constraints.  Therefore, the search direction iteration
>> matrix should be 18000x18000.  (But it's an easy problem:
>> quadratic/affine with a diagonal Hessian).  My system has 16G of memory,
>> and an 18000x18000 dense matrix would take 2.5 gigs, yet Ipopt runs out
>> of memory.  Also, I can easily factorize the same iteration matrix using
>> Matlab ldl, which is ma57 as well.
>>
>> Can someone explain why this is so?
>>
>> Thanks,
>>
>> Tom
>>
>> On 03/16/2011 11:04 AM, Jonathan Hogg wrote:
>>>        From the linear solver's point of view, this is because it ran out of
>>> memory. The "Reallocating memory..." statements would indicate the main
>>> cause of this was delayed pivots. The following two solutions then
>>> present themselves:
>>>
>>> (a) Buy more memory (probably cheaper if your time is expensive)
>>> (b) Decrease the numerical difficulty of the problem. The could for
>>> example involve scaling the matrix better or decreasing the ma57 pivot
>>> tolerance/maximum pivot tolerance (though the latter may result in more
>>> iterations or failure to converge)
>>>
>>> Jonathan.
>>>
>>> On 16/03/11 08:26, Adrian Tica wrote:
>>>> Hello,
>>>>
>>>> I have the following problem when I tried to make an optimization:
>>>>
>>>>
>>>> This is Ipopt version 3.8.3, running with linear solver ma57.
>>>>
>>>>
>>>> Number of nonzeros in equality constraint Jacobian...: 82003
>>>> Number of nonzeros in inequality constraint Jacobian.: 302
>>>> Number of nonzeros in Lagrangian Hessian.............: 0
>>>>
>>>> Reallocating memory for MA57: lfact (1335948)
>>>> Reallocating memory for MA57: lfact (2213990)
>>>>
>>>> EXIT: Not enough memory.
>>>>
>>>>
>>>> I saw a discussion about this, 4 years ago, but I didn't find the
>>>> answer. Could you tell me what is the cause, and how could I solve it?
>>>>
>>>>
>>>> Best regards,
>>>>
>>>> Adrian
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Ipopt mailing list
>>>> Ipopt at list.coin-or.org
>>>> http://list.coin-or.org/mailman/listinfo/ipopt
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt

-- 
Scanned by iCritical.



More information about the Ipopt mailing list