From help-octave-request at bevo dot che dot wisc dot edu Tue Jul 28 13:38:44 1998 Subject: memory exhausted From: "A. Scottedward Hodel" To: help-octave at bevo dot che dot wisc dot edu Date: Tue, 28 Jul 1998 13:37:53 -0500 I ran the following code on 1 172x172 matrix: # truncate acd to 6 digits of precision... for ii=1:rows(acd) for jj = 1:columns(acd) eval(["acd(ii,jj) = ",sprintf("%12.6E",acd(ii,jj));]); endfor endfor After some time into the loop, Octave repeatedly displays an error message: "memory exhausted --- trying to return to prompt" I recall some discussion of this from a month or so ago, but I don't recall if anyone encountered a solution. It appears that what's happening is that free memory is getting chopped up into little pieces and the memory manager eventually can't allocate a new acd each time through the loop. What this means is that the total amount of computation I can do in a single octave run becomes quite limited; is there some way we can "help" the memory manager? [The import of the question goes far beyond the code above, which is being used to try to duplicate results from another package; I've had to modify the OCST code I'm writing so that the number of calls to "new" is kept as low as possible, otherwise some code dies after 40-50 iterations on systems of this size...] Details: Octave-2.1.7 on SunOS; dunamic loading enabled; gcc-2.8.1. uname -s -n -m -v -r SunOS eds2 5.6 Generic sun4u A S Hodel Dept Elect Eng, Auburn Univ,AL 36849-5201 On leave at NASA Marshall Space Flight Center (205) 544-1426