<html>
<body>
<font size=3>Hello. Just thought I'd pass on some info I got from
Mathworks today about memory problems, before I ask two additional
questions.<br><br>
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 following:<br><br>
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. <br><br>
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.<br><br>
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.<br><br>
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.<br><br>
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.<br><br>
So, two questions about EEG......<br><br>
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.<br><br>
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?<br><br>
Thanks,<br>
Jim<br><br>
<br>
<x-sigsep><p></x-sigsep>
--------------------------------------------<br><br>
Jim Kroger<br>
Department of Psychology<br>
220 Science Hall, MSC 3452<br>
Williams Street<br>
New Mexico State University<br>
Las Cruces,  NM 88003-8001<br>
USA<br>
<a href="http://www.psych.nmsu.edu/~jkroger/lab/index.html" eudora="autourl">http://www.psych.nmsu.edu/~jkroger/lab/index.html<br>
</a>Tel:  (505) 646 2243<br>
Fax: (505) 646 6212<br>
--------------------------------------------<br>
</font></body>
</html>