From b067fb3b42d36e60c5de5fe62a9e87c3a99a2500 Mon Sep 17 00:00:00 2001 From: giuliaghirardini <giuliaghirardini2001@gmail.com> Date: Sat, 9 Mar 2024 15:24:50 +0100 Subject: [PATCH] [benchmark][speed] Added eigen problem, sum, cross product. (WIP: optimize function division and total exe speed) --- tests/speedBenchmark.m | 36 +++++++++++++++++++++++++++++ tests/speedBenchmarkPlot.m | 47 +++++++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/tests/speedBenchmark.m b/tests/speedBenchmark.m index 395c8bb..27d7a13 100644 --- a/tests/speedBenchmark.m +++ b/tests/speedBenchmark.m @@ -69,4 +69,40 @@ function speed = speedBenchmark(len) tic scalarProductClass = dot(testClass.a,testClass.b); speed.scalarProduct.class = toc; + + %=======SUM======= + tic + sumStruct = testStruct.a + testStruct.b; + speed.sum.struct = toc; + + tic + sumClass = testClass.a + testClass.b; + speed.sum.class = toc; + + %=======CROSS PRODUCT======== (MATRICES) + matrix1 = randi([0, 1000], [3,len]); + matrix2 = randi([0, 1000], [3,len]); + + testClass.a = matrix1; testStruct.a = matrix1; + testClass.b = matrix2; testStruct.b = matrix2; + + tic + crossProductStruct = cross(testStruct.a,testStruct.b); + speed.crossProduct.struct = toc; + + tic + crossProductClass = cross(testClass.a,testClass.b); + speed.crossProduct.class = toc; + + %========EIGENVALUES PROBLEM======== (MATRICES) + matrix1 = randi([0, 1000], [len,len]); + testClass.a = matrix1; testStruct.a = matrix1; + + tic + eigStruct = eig(testStruct.a); + speed.eigen.struct = toc; + + tic + eigClass = eig(testClass.a); + speed.eigen.class = toc; end diff --git a/tests/speedBenchmarkPlot.m b/tests/speedBenchmarkPlot.m index 6abf509..7cadfd5 100644 --- a/tests/speedBenchmarkPlot.m +++ b/tests/speedBenchmarkPlot.m @@ -25,7 +25,7 @@ for i = 1:length(vct) end plt.lgdStruct = plot(nan, nan, 'color', plt.stdBlue); plt.lgdClass = plot(nan, nan, 'color', plt.stdRed); -title('readTime'); +title('Reading time'); xlabel('Number of elements') ylabel('Speed [s]') legend([plt.lgdStruct, plt.lgdClass], {'Struct', 'Class'}) @@ -74,4 +74,49 @@ title('Scalar product time'); xlabel('Number of elements') ylabel('Speed [s]') legend([plt.lgdStruct, plt.lgdClass], {'Struct', 'Class'}) +grid on + +% Sum +figure +for i = 1:length(vct) + semilogx(vct(i), speed(i).sum.struct, '.' ,'Color', plt.stdBlue) + semilogx(vct(i), speed(i).sum.class, '.', 'Color', plt.stdRed) + hold on +end +plt.lgdStruct = plot(nan, nan, 'color', plt.stdBlue); +plt.lgdClass = plot(nan, nan, 'color', plt.stdRed); +title('Sum time'); +xlabel('Number of elements') +ylabel('Speed [s]') +legend([plt.lgdStruct, plt.lgdClass], {'Struct', 'Class'}) +grid on + +% Cross product time (matrices) +figure +for i = 1:length(vct) + semilogx(vct(i), speed(i).crossProduct.struct, '.' ,'Color', plt.stdBlue) + semilogx(vct(i), speed(i).crossProduct.class, '.', 'Color', plt.stdRed) + hold on +end +plt.lgdStruct = plot(nan, nan, 'color', plt.stdBlue); +plt.lgdClass = plot(nan, nan, 'color', plt.stdRed); +title('Cross product time (matrices)'); +xlabel('Number of elements') +ylabel('Speed [s]') +legend([plt.lgdStruct, plt.lgdClass], {'Struct', 'Class'}) +grid on + +% Eigenvalues problem time (matrices) +figure +for i = 1:length(vct) + semilogx(vct(i), speed(i).eigen.struct, '.' ,'Color', plt.stdBlue) + semilogx(vct(i), speed(i).eigen.class, '.', 'Color', plt.stdRed) + hold on +end +plt.lgdStruct = plot(nan, nan, 'color', plt.stdBlue); +plt.lgdClass = plot(nan, nan, 'color', plt.stdRed); +title('Eigenvalues problem time (matrices) '); +xlabel('Number of elements') +ylabel('Speed [s]') +legend([plt.lgdStruct, plt.lgdClass], {'Struct', 'Class'}) grid on \ No newline at end of file -- GitLab