Matlab Engine Array Transfer Size Limitation
Mostrar comentarios más antiguos
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 comentarios
James Tursa
el 11 de Nov. de 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
el 11 de Nov. de 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
Respuestas (1)
Walter Roberson
el 11 de Nov. de 2015
0 votos
The 2 Gb limit is for compatibility with 32 bit versions of MATLAB.
Categorías
Más información sobre Parallel Computing en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!