Bonjour,
J'utilise Matlab 7.10.0 et la Parallel Toolbox sur une lame 8 coeurs.
Si je lance :
J'obtiens ovrHead = 10.42 seconds
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 job=batch('birthdayscript','matlabpool',4);tic;wait(job);ovrHead=toc;
Si je lance :
J'obtiens ovrHead = 1.39 seconds
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 matlabpool open 4;tic;p = prunbirthday(2e4, 30), ovrHead=toc;matlabpool close
Puis je vous demander pourquoi mon job sous batch est si inefficace ?
Sylvain
PS : le code de birthdayscript :
le code de prunbirthday:
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;
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;
Partager