Why does the same code run 50 times faster in 2008b than in 2012a?

1 view (last 30 days)
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
Jan
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
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?

Sign in to comment.

Accepted Answer

Ryan G
Ryan G on 26 Sep 2012
In general you should expect some minor slowdown between versions for the same code on the same machine with a new version of MATLAB. This is because of added features, maybe some error checking, who knows. However, 26 minutes is a huge slowdown that would be unexpected.. I would also suggest you utilize the MATLAB Profiler to determine where the slowdown occurs.
To speed this up from there you can use PARFOR. See examples below:

More Answers (0)

Categories

Find more on Historical Contests 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!