PDS/homework_3/matlab/SpeedUp.m

35 lines
1.6 KiB
Matlab

% MATLAB script to plot Speedup (Serial Time / Total Time)
% Define Q values
Q = 20:30;
% Define Serial execution times (converted to milliseconds)
serial_times = [
74, 154, 328, 689, 1441, 3028, 6293, 13700, 27170, 55340, 115580];
% Define Total execution times (converted to milliseconds)
total_times = [
8.733, 12, 59, 37, 56, 98, 229, 420, 976, 1910, 3971; % V0 - ampere
2.676, 6.308, 10, 18, 34, 83, 134, 331, 664, 1364, 2938; % V1 - ampere
2.883, 5.861, 12, 21, 34, 86, 135, 331, 749, 1459, 3063; % V2 - ampere
6.559, 12, 23, 49, 101, 210, 442, 939, 1986, 4211, 9071; % V0 - tesla
4.559, 9.014, 18, 39, 80, 169, 358, 761, 1618, 3440, 7326; % V1 - tesla
4.407, 8.751, 17, 38, 75, 159, 338, 719, 1533, 3262, 6932; % V2 - tesla
16, 33, 71, 153, 327, 696, 1493, 3177, 6782, 14420, NaN; % V0 - gtx1650
8.271, 17, 37, 78, 161, 353, 774, 1709, 3701, 8106, NaN; % V1 - gtx1650
8.985, 18, 38, 81, 169, 370, 810, 1779, 3864, 8424, NaN % V2 - gtx1650
];
% Compute Speedup
speedup = serial_times ./ total_times;
% Plot in log scale
figure('Name', 'Results-SpeedUp', 'Position', [100, 100, 1600, 900]);
plot(Q, speedup', '-o', 'LineWidth', 1.5);
grid on;
xlabel('Q (Memory Size)');
ylabel('Speedup (Serial / Total)');
title('Speed up over memory size');
legend({'V0 ampere', 'V1 ampere', 'V2 ampere', 'V0 tesla', 'V1 tesla', 'V2 tesla', 'V0 gtx1650', 'V1 gtx1650', 'V2 gtx1650'}, 'Location', 'northwest');
saveas(gcf, 'speedup_plot.png');