Why does the same code run 50 times faster in 2008b than in 2012a?
Show older comments
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 Comments
Oleg Komarov
on 11 Sep 2012
Edited: Oleg Komarov
on 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
on 11 Sep 2012
32bit v. 64bit MATLAB?
Matt Fig
on 11 Sep 2012
Is one a function and the other a script?
Walter Roberson
on 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
on 11 Sep 2012
@Walter: Are there explanations of this effect, or even workarounds? If you do not know any, does TMW do?
per isakson
on 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?
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!