Batch sounds slower than interactive parallel jobs

3 次查看(过去 30 天)
Hi !
I use Matlab 7.10.0 and Parallel Toolbox on a 8 cores blade.
Issuing that command :
tic;job=batch('birthdayscript','matlabpool',4);wait(job);ovrHead=toc;
I obtain ovrHead = 10.42 seconds
Issuing that command :
matlabpool open 4;tic;p = prunbirthday(2e4, 30), ovrHead=toc;matlabpool close
I obtain ovrHead = 1.39 seconds
May I ask you why batch method is so ineffective ?
Sylvain
PS : here the code of birthdayscript :
numtrials = 2e4;
groupsize = 30;
% Preallocate some memory for the matches
matches = zeros(1, numtrials);
parfor trial = 1:numtrials
% Run a simulation for a group
matches(trial) = birthday(groupsize);
end
% Probability is the sum of matches divided by number of trials
prob = sum(matches)/numtrials;

采纳的回答

Sean de Wolski
Sean de Wolski 2013-7-9
编辑:Sean de Wolski 2013-7-9
batch is opening its own MATLAB pool of four workers so this is included in the timing of the first snippet and not the second.

更多回答(1 个)

Sylvain Rousseau
Sylvain Rousseau 2013-7-10
编辑:Sylvain Rousseau 2013-7-10
Dear Sean,
Thanks for your answer.
That's what I thought at first sight, but the task overhead is the same when I move the tic after the batch() statement :
job=batch('birthdayscript','matlabpool',4);tic;wait(job);ovrHead=toc;
Here again, I obtain ovrHead = 10.42 seconds
Moreover, if I increase workers number up to seven (findResource gives a clusterSize of 8) , the overhead stays the same although I'am the only user of the computer.
Cheers.
sylvain

类别

Help CenterFile Exchange 中查找有关 Parallel Computing Fundamentals 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by