[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Octave Memory Exhausted Error Anyone?
From: |
Ben Abbott |
Subject: |
Re: Octave Memory Exhausted Error Anyone? |
Date: |
Fri, 05 Nov 2010 22:30:27 +0800 |
On Nov 5, 2010, at 10:17 PM, William Krekeler wrote:
> Follow up to my post Nov 3 2010 10:12:33 CDT. Since no one responded I’ll
> rephrase my question.
>
> Does anyone know a reason why Octave 3.2.4 in Windows can not use more than
> 1.5 GB of physical memory?
>
> Bill Krekeler
>
>
> From: William Krekeler [mailto:address@hidden
> Sent: Wednesday, November 03, 2010 10:13 AM
> To: address@hidden
> Subject: Octave Memory Exhausted Error
>
> I am in the process of testing Octave compatibility of a code set developed
> in Matlab. The code successfully completes in Matlab 7.8.0.347 (R2009a).
> Despite having more than enough system memory I am getting the following
> error in Octave:
> “error: memory exhausted or requested size too large for range of Octave's
> index type -- trying to return to prompt.”
> Any help determining the source of this error, or a work around, is greatly
> appreciated.
>
> Relevant Machine Details:
> Windows XP Pro x64
> 12 GB physical ram
> Octave 3.2.4, pre-compiled install version
>
> Script Details for Original Failure:
> I’ve isolated the code failure to one line, but the error is
> not specific to this line of code as simplifying the line of code also fails.
> The original line of code and the simplified test line are as follows:
>
> <start code>
> ImageCube = uint16( floor( (ImageCube -
> minIC).*(single(2^16-1)/(maxIC-minIC)) ) );
> % [ above generates error]
> ImageCube = ImageCube – minIC;
> % [above generates error ]
> <end code>
>
> Variable and Memory Information is as follows:
>
> ImageCube = 648x480x648 single array using 806215680 bytes (~
> 0.8 GB)
> minIC = 1x1 single array using 4 bytes
> maxIC= 1x1 single array using 4 bytes
>
> At failure Octave is using 828,728 kB (~0.8 GB) of memory,
> total memory used on system = 3.25 GB, total memory free is roughly 8.6 GB
> for 12 GB total physical memory.
>
> Testing:
> Following the memory error above and a restart of Octave the
> following command succeeds. The code below creates a variable whose size is
> ~1.4 GB using the 1024 definition, at 4 bytes per element of the 376999999
> element array. Note 377999999 elements fails with the same error. The test
> code implies two things, first, my original variable does not violate a
> maximum number of supported elements in an array, second, that my original
> variable does not violate a maximum memory allowed per variable. Though the
> test could be saying that Octave is being limited to roughly 1.5 GB of
> memory, which if the code duplicates an array during the math operations
> would mean that my original 0.8GB ImageCube variable would become a 1.6GB
> memory requirement during subtraction of the full array. Failure to perform
> mathematical operations on the large array is confirmed by the failure of the
> subtraction operation in the following codeset.
>
> <start code>
> Clear all; ImageCube = ones(376999999, 1, ‘single’ );
> % [ above succeeds ]
> ImageCube = ImageCube – 0;
> % [ above fails ]
> <end code>
>
> Any ideas for what could be causing this error or a work around?
>
>
> Bill Krekeler
Is your octave built for 64 bits?
I haven't used 64 bit Octave myself. However, my impression is that it remains
experimental.
Ben