Is there any way to share memory between MATLAB processes on the same computer?
I am running several MATLAB processes on a multi-core computer (running Windows, if i
EDIT: Put the data in a raw file and use memmapfile (thanks SCFrench).
============================================
No, there is no real way of doing it.
My top two solutions have been: buy more RAM or page in the data.
The closest thing you could do would be to use a mex function to allocate shared memory, then allow successive calls to the mex function to extract out smaller slices of the memory. You wouldn't want to wrap the shared memory as a Matlab array (because Matlab's memory model wouldn't handle it well).
I was going to suggest looking into memmap, but apparently it's problematic.
Sometimes you can first run one Matlab program to pre-process or split up the data into smaller chunks. Then each of the Matlab processes can operate on its own smaller chunk.
Here's a tutorial on dealing with large datasets in Matlab.