Re: Reducing memory footprint in use of FullSimplify ?
- To: mathgroup at smc.vnet.net
- Subject: [mg56182] Re: Reducing memory footprint in use of FullSimplify ?
- From: Madhusudan Singh <spammers-go-here at spam.invalid>
- Date: Mon, 18 Apr 2005 03:08:41 -0400 (EDT)
- References: <email@example.com> <1Dv8e.2568$J12.firstname.lastname@example.org>
- Sender: owner-wri-mathgroup at wolfram.com
Richard Fateman wrote: > You may have found a bug in Mathematica where it > is not reclaiming memory. Perhaps you can write your > intermediate expressions to files before the system > crashes, and then re-load only the parts you need. > Ok. Somehow I am not surprised. I moved from Mathematica 4.1 to 5.1 a few days ago. And the frontend has been a little flaky, crashing every now and then. Which has forced me to use the kernel alone (without the X frontend). Is there a command that can make Mathematica flush memory that is lost otherwise ? > > It is probably a mistake to use FullSimplify for a lot > of expressions, since that program can be very costly, and > it is possible that it is, all by itself, on the last command, > using too much memory. No. I am using MemoryInUse to monitor the usage of memory after every FullSimplify operation is over. This increases almost monotonically even though the variable that it operates on is explicitly set to zero (replacing a very long expression - something that should free up large amounts of memory). Let us say I have a=FullSimplify[b] where b is a very long complicated expression and a is a less complicated expression. Then the following operation : b=0; Print[MemoryInUse]; after the FullSimplify above, should free up memory(b)-memory(a)+1 (assuming storing a zero takes one unit of memory) units of memory. However, I find that the above number is negative (if MemoryInUse is to be believed) even though it is pretty obvious that memory(b) > memory(a). As you say, that memory should be freed up as soon as it is done. One more wierd symptom I have noticed with version 5.1 is that if I interrupt a running Mathematica kernel (quit kernel), an orphaned process named aaa****** keeps running until I kill that separately using its PID. I wonder what people at Wolfram have been upto. >> Is there some way I can force Mathematica to free up memory on the data >> stack (I am currently setting the unsimplified expression to zero as soon >> as it is simplified and assigned to another variable) when it is done >> with an element ? > > What do you mean by data stack? > Well, I was referring to the size of data in KB that I am allowed (ulimit). > I assume you are setting expressions assigned to > Out to zero, or clearing them. I am using $HistoryLength=0. Would that be equivalent ?