MATLAB: Parallel Random Number Generator

parallel computingrandom number generator

I would like to run simulations requiring random numbers on each worker. First, I create a random stream of numbers on each worker:
parpool
spmd
s = RandStream.create(mrg32k3a,NumStreams,numlabs,StreamIndices,labindex);
RandStream.setGlobalStream(s);
end
Then, I perform the simulations:
spmd
output = some_function(input); %%%this function uses rand() and randn();
end
Am I correctly using RandStream to ensure statistically independent random numbers across workers? Can I combine the two spmd commands?

Best Answer

Yes, I believe your code is correct, and is basically the same initialization that is already carried out by Parallel Computing Toolbox.
You can safely merge the two spmd blocks.
Related Question