Re: Re: No more memory available
- To: mathgroup at smc.vnet.net
- Subject: [mg51201] Re: [mg51165] Re: No more memory available
- From: János <janos.lobb at yale.edu>
- Date: Fri, 8 Oct 2004 02:54:49 -0400 (EDT)
- References: <ck0bht$ns5$1@smc.vnet.net> <200410070925.FAA10723@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
It is stack={{{{{},d},c},b},a}.
In the meantime I measured the depth of the stack and it is normal, I
mean it is mostly below 100 during a run. So, I was wrong in my
assumption that my stack is getting too deep. My apology... I ran
out of memory, because the results - different length of strings - I
collect in a simple list is getting too big.
I will try to compress or pack them before I add them to the list.
In the meantime as I investigated the Depth[of different objects], I
found that I can crash the kernel with no exception on both of my
machines with the following one liner:
Depth[Fold[List, "", Table["", {i, 87363}]]]
I looked the Book, but found no limit on nesting other than
$RecursionLimit, but that one does not apply here looks like anyway.
So the biggest depth an object can have without crashing the kernel in
5.0.1 is 87361. Interestingly it is a multiplicand of two primes 199
and 439.
Thanks a lot,
János
On Oct 7, 2004, at 5:25 AM, Jens-Peer Kuska wrote:
> Hi,
>
> what do you use as stack, a simple list or a folded list, i.e.,
>
> $stack={a,b,c,d}
>
> or
>
> $stack={a,{b,{c,{d,{}}}}}
>
> ??
>
> Regards
> Jens
>
> "János" <janos.lobb at yale.edu> schrieb im Newsbeitrag
> news:ck0bht$ns5$1 at smc.vnet.net...
>> Hi,
>>
>> In a loop I am pushing data on a stack and popping it later. In the
>> first part of the calculation I push more than I pop and it eats up
>> all
>> the physical memory, and eats also up all the virtual memory available
>> for the App.
>>
>> No more memory available.
>> Mathematica kernel has shut down.
>> Try quitting other applications and then retry.
>>
>> It is with OSX 10.3.5 and Mathematica 5.0.1 on a G4 with 2GB SDRAM. I
>> am wondering what technics are used by others in similar situation.
>> Do
>> you start to write out to the file system your accumulated unprocessed
>> data and read it back later for further processing ?
>>
>> Theoretically I can re-arrange the program so after some amount of
>> push, pop all which was pushed and process them before I push more,
>> but
>> that requires some rearrangement of the flow of computation and I try
>> to avoid that.
>>
>> I also found Utilities`MemoryConserve` which I will try out. Any
>> other
>> suggestions ?
>>
>> Thanks ahead,
>>
>> János
>> ------
>> "..because Annushka has already bought sunflower oil, and not only
>> bought it, but spilled it too."
>> Bulgakov: Master and Margarita
>>
>
>
----------------------------------------------
Trying to argue with a politician is like lifting up the head of a
corpse.
(S. Lem: His Master Voice)
- Follow-Ups:
- Re: Re: Re: No more memory available
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Re: Re: No more memory available
- References:
- Re: No more memory available
- From: "Jens-Peer Kuska" <kuska@informatik.uni-leipzig.de>
- Re: No more memory available