MATLAB: Passing big matrix to workers

parallel computingParallel Computing Toolboxparfor

I'm trying to pass very large matrix (65000x460x150) to workers with Worker Object Wrapper, with no luck.
The code:
Imat_worker = WorkerObjWrapper(Imat);
parfor kk = 1:size(num_iterations,2)
Imat_par = Imat_worker(:,:,1:num_iterations(kk));
some code...
end
I get the following message while running the code:
Error using WorkerObjWrapper/workerInit (line 156)
The parallel pool that SPMD was using has been shut down.
Error in WorkerObjWrapper (line 97)
WorkerObjWrapper.workerInit( tmpId, ctor, args, dtor );
A write error occurred while sending to worker 2.
Any ideas what am I doing wrong?
It is worth noting that I'm running the code on a server with enough RAM for the matrix.
Thanks in advance!

Best Answer

In that case, since I need only a slice of the matrix for each worker, shouldn't I clone only the relevant data somehow before the parfor ?
Yes you should, and that's something parfor will do for you automatically as long as the operations you do on Imat inside the loop satisfy certain restrictions.