Clear Filters
Clear Filters

Parfor cannot serialize data which is too large

2 views (last 30 days)
I have a parfor loop which calculates eigenvectors as a function of frequency, and stores all of them for post-processing. The size of the eigenvectors is 924*200 (Temp_zvAi for instance), and the size of zuxAi is 924*200*1311. The eigenvectors are complex, and zuxAi is around 3.8GB. Parfor returns the serialization error. How to get around this please? The code looks like below:
parfor fcount=1:Numsam
[Amat,Bmat]=functionof(fcount);
[Temp_zkA,Temp_zvAi]=eigenSolver (jn1,Amat,Bmat);
Temp_zuxAi=Temp_zvAi(1:nA,1:jn1);
zuxAi(:,:,fcount)=Temp_zuxAi;
Temp_zuyAi=Temp_zvAi(nA+1:2*nA,1:jn1);
zuyAi(:,:,fcount)=Temp_zuyAi;
Temp_zuzAi=Temp_zvAi(2*nA+1:3*nA,1:jn1);
zuzAi(:,:,fcount)=Temp_zuzAi;
end
  2 Comments
Matt J
Matt J on 6 Nov 2013
Edited: Matt J on 6 Nov 2013
Your code looks like an in complete example. In particular, none of the Temp_ quantities show any dependence on fcount. For all we can see, they can be pre-computed before the loop and all zu_xyz_Ai(:,:,fcount) will be copies of each other.
James
James on 6 Nov 2013
Edited: James on 6 Nov 2013
Matt, thanks for your answer. The code only shows the places where errors are caught. Temp_ quantities depend on fcount, as Amat and Bmat are matrices dependant on fcount. The frequency dependence is irrelevant to the current problem so I deleted them.
I added one line to the code to clarify this.

Sign in to comment.

Accepted Answer

Edric Ellis
Edric Ellis on 7 Nov 2013
The limit on PARFOR data transfers was removed in R2013a. Please upgrade if you can.

More Answers (0)

Categories

Find more on Parallel for-Loops (parfor) in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!