[Eeglablist] More on memory, 64-bit Opteron

Jim Kroger jkroger at nmsu.edu
Wed Mar 23 16:03:39 PST 2005

Hello. Just thought I'd pass on some info I got from Mathworks today about 
memory problems, before I ask two additional questions.

We've been unable to load 2 gig files on a Dual Opteron-processor IBM. I 
talked to Philip Borghesani at Mathworks, who is a developer. He stated the 

Matlab has a limit on the size of an array or matrix because of the memory 
address size. On 32 bit computers it was 2^31 (maybe 32). On the 64-bit 
version, it's unfortunately still 2^31 for compatibility, but you can now 
have multiple of those arrays/matrixes.

Assuming that each element in an array is a 64-bit floating point value, 
this permits the array to hold 8 gigabytes of data, subject to memory 
limitations of the machine.

There is an option, since release 14, to store floating point data in 
32-bit format. This would not increase addressable size of an array, but 
would allow the maximum-sized array to fit in half the amount of RAM, 
assuming 32-bit precision is sufficient (which I assume it is for EEG?). I 
suspect since EEGLAB was written prior to this release it does not exploit 
this feature.

I've heard some say that Matlab holds a second copy of data being worked 
on. As far as Philip knew, this is not the case. EEGLAB sometimes does but 
as others have pointed out you can turn this off.

Total useable memory equals the amount of RAM + the amount of swap space. 
Swap is slow. The machine will be slower the more swap is depended on, so 
more RAM speeds it up. But, it will work, however slowly, as long as the 
machine has enough memory (RAM + swap) to hold the amount of data you are 
asking it to, up to the array size limit. It's a good idea if the swap is 
on a separate hard drive from where the data is being read from.

So, two questions about EEG......

If I record a 2-gig data file using a Biosemi Active-2, using the 
ActiveView Labview program, is data stored as 32-bit integers, 32-bit 
floats, or 64-bit floats, or what, in the .bdf file?  (I have cc'd Lloyd 
too) If the former, it probably gets converted to 64-bit floats in Matlab, 
increasing memory demands well beyond the 2-gig file size. If ActiveView 
stored data points as 8-bit integers, and these got converted to 64-bit 
floats in Matlab, the memory requirements would increase dramatically over 
the .bdf file size.

When I import such a file into EEGLAB, consisting of 128 channels recorded 
at 2048/sec samples, for about 80 minutes, is this put into one matrix of 
64-bit floating point data?



Jim Kroger
Department of Psychology
220 Science Hall, MSC 3452
Williams Street
New Mexico State University
Las Cruces,  NM 88003-8001
Tel:  (505) 646 2243
Fax: (505) 646 6212
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20050323/03db816b/attachment.htm

More information about the eeglablist mailing list