bizarre SPMD error
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I was using Matlab R2011b and had strange SPMD error.
The structure of the code looks like this:
load A.mat % A is super large, e.g. 7GB
spmd
B = ...; C = ... % create some "small" local variable
do something with A,B,C ...
end
Our machine has over 40GB memory.
Here are the problems:
1) The program runs perfectly well in parallel, if A is smaller, e.g 0.5G;
2) The serial version of the program runs perfectly well, if A is as huge as 7GB.
3) spmd reports error if A is huge:
---------------------------------------
Error using distcompserialize
Error during serialization
Error in spmdlang.RemoteSpmdExecutor/initiateComputation (line 82)
fcns = distcompMakeByteBufferHandle( ...
Error in spmdlang.spmd_feval_impl (line 14)
blockExecutor.initiateComputation();
Error in spmd_feval (line 8)
spmdlang.spmd_feval_impl( varargin{:} );
Error in myprogram >(spmd) (line xx)
spmd
-----------------------
so this is a memory issue? But although A is huge, it is shared. My local variables are pretty small, a few MB.
Any idea what went wrong? Thanks.
Yingjie
0 comentarios
Respuestas (1)
Walter Roberson
el 13 de Nov. de 2011
Shared doesn't mean that copies of it do not have to be sent to the different workers (which, after all, might not be on the same host.)
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!