Bonjour,

J'utilise Matlab 7.10.0 et la Parallel Toolbox sur une lame 8 coeurs.

Si je lance :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
job=batch('birthdayscript','matlabpool',4);tic;wait(job);ovrHead=toc;
J'obtiens ovrHead = 10.42 seconds

Si je lance :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
matlabpool open 4;tic;p = prunbirthday(2e4, 30), ovrHead=toc;matlabpool close
J'obtiens ovrHead = 1.39 seconds

Puis je vous demander pourquoi mon job sous batch est si inefficace ?

Sylvain

PS : le code de birthdayscript :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
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;
le code de prunbirthday:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
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;