Why does the same code run 50 times faster in 2008b than in 2012a?
Afficher commentaires plus anciens
Hi,
I'm runing a simple Monte Carlo loop, using the exact same code, in Matlab R2008b and it takes 29 seconds to do 30,000 iterations, while the same thing in Matlab R2012 a takes 26 minutes.
There is nothing fancy in the loop, I just generate a multivariate randome number and then do the monte carlo simulations (see code below). My code calls a function (psimat) that just reorganizes the data. I just can't understand the huge difference in performance, and it's not the PC, I'm running both on a server.
Any ideas?
Thank you,
Sebastian
for num = 1:monte; % 'monte' times of iterations
smpi_rnd = mvnrnd(smpi,kron(omega,iQ)/nobs); %Multivar. N random number
pi_rnd = reshape(smpi_rnd,K*p+dis*(q+1),K);
psi_rnd = psimat(p,q,K,dis,st,pi_rnd);
% Store mean responses
for i = 1:dis
for j = 1:st+1
mr_rnd(j+(i-1)*(st+1),num) = psi_rnd(K*j,i);
end;
end;
% Store cumulative effects
for i = 1:dis
ce(i,num) = sum(mr_rnd(1+(i-1)*(st+1):4+(i-1)*(st+1),num));
end;
end; % End of Monte Carlo loop
6 commentaires
Oleg Komarov
le 11 Sep 2012
Modifié(e) : Oleg Komarov
le 11 Sep 2012
Profile the code and check if there is a bottleneck in the execution on the 2012a. For example, what is psimat()? And, are you sure you're using the same psimat()?
Sean de Wolski
le 11 Sep 2012
32bit v. 64bit MATLAB?
Matt Fig
le 11 Sep 2012
Is one a function and the other a script?
Walter Roberson
le 11 Sep 2012
We've seen some reports of this having to do with 64 bit MATLAB on i5 and i7 processors. I seem to recall the reports were more about R2011b, but I would have to check that.
Jan
le 11 Sep 2012
@Walter: Are there explanations of this effect, or even workarounds? If you do not know any, does TMW do?
per isakson
le 11 Sep 2012
Sebastian,
Would it be possible for you to provide a piece of code, with which we could try to reproduce your findings?
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!