Hi all,
Recently, when I ran a Matlab program (Matlab 2011 a), I observed a noticable difference between an HP dv6z A8-3550mx (2.0/2.7GHz ) running Win8 and an DIY A8-3850 (2.9GHz) runing Win7. For curiousity sake, I decided to perform a little Matlab bench on my own. The "supposedly" fastest machine, I have access to is a 3 year old, company provided build machine on Windows 2008 (HP z-400 work station, Xeon W3550 3.06GHz). When I used that as an reference, I found something even more interesting.
Matlab benching program I used is a script (not a function, so it compiles and runs). The bench contains 10,000 discrete biot-savart operation and puke fprintf 4 debug messages on the command window. Each iteration runs this bench 10 times (compile script 10 times and run functions 10 times), and there are 10 iterations in total.
I used the second set of 10 iterations, (so everything is cached nicely) , I recorded the following
Xeon W3550 recorded:
14.6206 14.5981 14.6176 14.6121 14.6090 14.6179 14.5892 14.6454 14.6040 14.6094
My own A8-3850 recorded:
14.4000 14.3661 14.3324 14.3389 14.3378 14.3643 14.3551 14.3484 14.3336 14.3708
(I cannot comment on Win8 bench due to NDA.)
On paper, Xeon processor should be much faster than newer llano. This is not something I expected. Can somebody elaborate me on why this is the case?
The following is the base script I use.
fprintf('fprintf half circle 0.003125005086285 to pi - 0.003125005086285 \n');
R = 0.008;
x = R * cos([0.003125005086285: 1*10^-4: pi - 0.003125005086285]);
y = (R^2 - x.^2).^(0.5);
z = zeros(1, length(x));
fprintf('fprintf function 2, half circle from x = %d to x = %d, with dx = %d \n', x(1), x(end), x(2) - x(1));
%fprintf('Step a): half circle from x = %d to x = %d, with dx = %d \n', x(1), x(end), x(2) - x(1))
wirelist = [x; y; z];
remotepoint = [0; D; 0];
I = 3;
mu_r = 100;
fprintf('fprintf function 3, calculate Bz \n');
%fprintf('Step b): calculate Bz \n')
Bz = DiscretePlanarBiotSavart(wirelist, remotepoint, I, mu_r);
fprintf('fprintf function 4, Bz %d \n', Bz);
Recently, when I ran a Matlab program (Matlab 2011 a), I observed a noticable difference between an HP dv6z A8-3550mx (2.0/2.7GHz ) running Win8 and an DIY A8-3850 (2.9GHz) runing Win7. For curiousity sake, I decided to perform a little Matlab bench on my own. The "supposedly" fastest machine, I have access to is a 3 year old, company provided build machine on Windows 2008 (HP z-400 work station, Xeon W3550 3.06GHz). When I used that as an reference, I found something even more interesting.
Matlab benching program I used is a script (not a function, so it compiles and runs). The bench contains 10,000 discrete biot-savart operation and puke fprintf 4 debug messages on the command window. Each iteration runs this bench 10 times (compile script 10 times and run functions 10 times), and there are 10 iterations in total.
I used the second set of 10 iterations, (so everything is cached nicely) , I recorded the following
Xeon W3550 recorded:
14.6206 14.5981 14.6176 14.6121 14.6090 14.6179 14.5892 14.6454 14.6040 14.6094
My own A8-3850 recorded:
14.4000 14.3661 14.3324 14.3389 14.3378 14.3643 14.3551 14.3484 14.3336 14.3708
(I cannot comment on Win8 bench due to NDA.)
On paper, Xeon processor should be much faster than newer llano. This is not something I expected. Can somebody elaborate me on why this is the case?
The following is the base script I use.
fprintf('fprintf half circle 0.003125005086285 to pi - 0.003125005086285 \n');
R = 0.008;
x = R * cos([0.003125005086285: 1*10^-4: pi - 0.003125005086285]);
y = (R^2 - x.^2).^(0.5);
z = zeros(1, length(x));
fprintf('fprintf function 2, half circle from x = %d to x = %d, with dx = %d \n', x(1), x(end), x(2) - x(1));
%fprintf('Step a): half circle from x = %d to x = %d, with dx = %d \n', x(1), x(end), x(2) - x(1))
wirelist = [x; y; z];
remotepoint = [0; D; 0];
I = 3;
mu_r = 100;
fprintf('fprintf function 3, calculate Bz \n');
%fprintf('Step b): calculate Bz \n')
Bz = DiscretePlanarBiotSavart(wirelist, remotepoint, I, mu_r);
fprintf('fprintf function 4, Bz %d \n', Bz);