Matlab Engine Array Transfer Size Limitation
Ältere Kommentare anzeigen
I am using engGetVariable() to transfer an mxArray from the Matlab Engine to my C++ program. The documentation says: "The limit for the size of data transferred is 2 GB."
Why is this limitation present? Is there a way to increase it without breaking up the array into separate arrays? I need to transfer large arrays, potentially up to 256GB.
I like the simplicity of the Matlab Engine, so I would rather avoid having to break up, transfer, and re-assemble large arrays.
3 Kommentare
James Tursa
am 11 Nov. 2015
256GB is a lot of memory to copy. Have you considered a mex routine instead, so you can avoid the copy altogether?
Walter Roberson
am 11 Nov. 2015
You can use MPI with MATLAB. One use of it is specifically documented; see http://www.mathworks.com/help/mdce/use-different-mpi-builds-on-unix-systems.html
For an example of someone using MPI see http://www.mathworks.com/matlabcentral/newsreader/view_thread/308346
Antworten (1)
Walter Roberson
am 11 Nov. 2015
0 Stimmen
The 2 Gb limit is for compatibility with 32 bit versions of MATLAB.
Kategorien
Mehr zu Parallel Computing finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!