Matlab Engine Array Transfer Size Limitation
显示 更早的评论
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 个评论
James Tursa
2015-11-11
256GB is a lot of memory to copy. Have you considered a mex routine instead, so you can avoid the copy altogether?
Walter Roberson
2015-11-11
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
回答(1 个)
Walter Roberson
2015-11-11
0 个投票
The 2 Gb limit is for compatibility with 32 bit versions of MATLAB.
类别
在 帮助中心 和 File Exchange 中查找有关 Parallel Computing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!