From 6190d4b234540cf1a59ab3a8e01c4dc4333fd9d7 Mon Sep 17 00:00:00 2001 From: "Jordan Hanotiaux (jordan.hanotiaux@student.uclouvain.be)" <jhano@lm4-f001.hpc.local> Date: Sun, 13 Apr 2025 09:23:56 +0200 Subject: [PATCH] Test passed --- P2/distributedmatrix.o | Bin 0 -> 92616 bytes P2/distributedtests | Bin 0 -> 87880 bytes P2/distributedtests.o | Bin 0 -> 20832 bytes P2/globals.o | Bin 0 -> 31856 bytes P2/matrix.o | Bin 0 -> 76784 bytes P2/mlp_sgd_distributed.o | Bin 0 -> 2072 bytes P2/profile.cpp | 104 --------------------------------------- P2/results.csv | 4 ++ 8 files changed, 4 insertions(+), 104 deletions(-) create mode 100644 P2/distributedmatrix.o create mode 100755 P2/distributedtests create mode 100644 P2/distributedtests.o create mode 100644 P2/globals.o create mode 100644 P2/matrix.o create mode 100644 P2/mlp_sgd_distributed.o delete mode 100644 P2/profile.cpp create mode 100644 P2/results.csv diff --git a/P2/distributedmatrix.o b/P2/distributedmatrix.o new file mode 100644 index 0000000000000000000000000000000000000000..20d6a20fd32d76e740d8ea786d3fb7bfff8bc03a GIT binary patch literal 92616 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 literal 0 HcmV?d00001 diff --git a/P2/distributedtests b/P2/distributedtests new file mode 100755 index 0000000000000000000000000000000000000000..13a845fe50d8f6fc4617dc41f29ca8a9fb0448c8 GIT binary patch literal 87880 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 Xk#Fno2xe35pWT)tza2G*KDPb`MTirx literal 0 HcmV?d00001 diff --git a/P2/distributedtests.o b/P2/distributedtests.o new file mode 100644 index 0000000000000000000000000000000000000000..a033b5bfe83e10f7d5a0a7f932dc9205fabf0d5c GIT binary patch literal 20832 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 BZVvze literal 0 HcmV?d00001 diff --git a/P2/globals.o b/P2/globals.o new file mode 100644 index 0000000000000000000000000000000000000000..6870c1902e709f9ccc57307ab09565ec7a2abaf1 GIT binary patch literal 31856 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 literal 0 HcmV?d00001 diff --git a/P2/matrix.o b/P2/matrix.o new file mode 100644 index 0000000000000000000000000000000000000000..7f185cce182028dac522773cf5a934de3fb0739e GIT binary patch literal 76784 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 F{{f&y<75B; literal 0 HcmV?d00001 diff --git a/P2/mlp_sgd_distributed.o b/P2/mlp_sgd_distributed.o new file mode 100644 index 0000000000000000000000000000000000000000..241802e28abcc425d6473eed685bea3291fbfc70 GIT binary patch literal 2072 zcmbtU-%Aux6h5<>TBvPQ5E!x$ltB)=CM6Lvx|vFgMj}WNm)YG(hjw?C`4K8C5<(#K zu+U47J@n99L@&{U20ry4^bZ6+^wOIT!gkKgJ<f0)pE_{wIp;gyx%ZrV@66Ur>0w6G zfJK8zh&@IDR=Q)`2u%ad!yqir?fjnG{*&El9qj~%+pQxlxbeDm*y#WS!+S(Lpy@kJ zyEMgE`{zDo?-F;9_B{C9>2#j&6DyY4V)0&XWOiZsX09-%-`4X{h|0;~ID-R&kOA#S zqD1T=^0}8w$Rp7<pMbWW)rR_e``Q@1iWm)&Nt&hxvu`rRfu0Q{pi8m)gri)hiQ|u> zI6-N$h+sGT#nw(rSLz7^bYX@nRKJ$Mxt}cJ*z++xtQ|c=;_QbtBesfza#YzuAe&K9 zfVYI7gyG{UIEbf9erZAo+p!zAkM4Lu2+uctyCMj&&6>T5p3@L!qbjPF=et2A^z*h2 zVz#t6JypV#pe*J^z19@oD$;DE+2z2us(Pi_#AO$j{0ZCfMA`JL@p)XhSeSVQLR39R ztl`QvD~<FZB30H+VfxlO7AR#{>T{^O7({(d+H@nmIF9gXl8i{4`1C$lMx~*yGnT;5 zG8y$<Y18_Y!|O{pyji*yzQ>#l5SF|yL&2F3y0=mH%`$4=jr1B@u2nO2JOv;0s_C1c zmpu>k5T%<Ert6v;pjVuF-D)7I;rN!0AK55gXXT~zR~v!ebe*Q<`p6BFtu^t&HS3lv z>AzGCv*~sBD61IKUsCY+ONatPsOW5s$c<-t$!&@Bqo!QG%PSJUF7f1>pwK%RSCzW| zEhNyIr{$}B)xU$egDLs%5hLMxBQN$DFJK_8|F$fM`=tKqAIf=*Pa{S(<#8nCgLEz? zLA1Gk){hcclKM62By7%O=ouRH-6h{T#lF#mqSnRrM^OL|4O&ypKahkKCQ7a5HxN%d zzfbb~cz-&-<iCK=FKuty%8-rrNj-oV^~w8lKK(1yw}TMO$%ej=lMuPwF>(Q|wESNZ LY#lQrL(TsOA+N)1 literal 0 HcmV?d00001 diff --git a/P2/profile.cpp b/P2/profile.cpp deleted file mode 100644 index 21677a8..0000000 --- a/P2/profile.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include <iostream> -#include <mpi.h> -#include <cassert> -#include <cmath> -#include <nvToolsExt.h> -#include <functional> -#include "matrix.hpp" -#include "distributedmatrix.hpp" - -// Fonction utilitaire pour comparer deux matrices -bool matricesEqual(const Matrix& a, const Matrix& b, double tol = 1e-8) { - if (a.numRows() != b.numRows() || a.numCols() != b.numCols()) return false; - for (int i = 0; i < a.numRows(); ++i) { - for (int j = 0; j < a.numCols(); ++j) { - if (std::abs(a.get(i, j) - b.get(i, j)) > tol) return false; - } - } - return true; -} - -void testMultiplyTransposed(int rowsA, int colsA, int rowsB) { - int rank, numProcs; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - MPI_Comm_size(MPI_COMM_WORLD, &numProcs); - - // Générer matrices pleines - Matrix matrix1Full(rowsA, colsA); - Matrix matrix2Full(rowsB, colsA); - - for (int i = 0; i < rowsA; i++) { - for (int j = 0; j < colsA; j++) { - matrix1Full.set(i, j, sin(i * colsA + j)); - } - } - - for (int i = 0; i < rowsB; i++) { - for (int j = 0; j < colsA; j++) { - matrix2Full.set(i, j, cos(i * colsA + j)); - } - } - - DistributedMatrix distA(matrix1Full, numProcs); - DistributedMatrix distB(matrix2Full, numProcs); - - // Calcule de référence - Matrix expected = matrix1Full * matrix2Full.transpose(); - - if (rank == 0) { - std::cout << "Expected result [0][0]: " << expected.get(0, 0) << std::endl; - } - - // Test de multiplyTransposed avec marquage NVTX - nvtxRangePushA("DistributedMatrix::multiplyTransposed"); - Matrix result = distA.multiplyTransposed(distB); - nvtxRangePop(); - - if (rank == 0) { - std::cout << "Result [0][0]: " << result.get(0, 0) << std::endl; - } - - // Vérification du résultat - assert(matricesEqual(result, expected, 1e-8)); - if (rank == 0) { - std::cout << "Test passed! Matrices are equal." << std::endl; - } -} - -int main(int argc, char** argv) { - int initialized; - MPI_Initialized(&initialized); - if (!initialized) { - MPI_Init(&argc, &argv); - } - - int rank; - MPI_Comm_rank(MPI_COMM_WORLD, &rank); - - if (rank == 0) { - std::cout << "Starting MultiplyTransposed tests..." << std::endl; - } - - try { - testMultiplyTransposed(512, 256, 512); // Taille paramétrable - if (rank == 0) { - std::cout << "Tests passed successfully!" << std::endl; - } - } - catch (std::exception& e) { - if (rank == 0) { - std::cerr << "Test failed with exception: " << e.what() << std::endl; - } - MPI_Abort(MPI_COMM_WORLD, 1); - } - - // Finalize MPI if we initialized it - // int finalized; - // MPI_Finalized(&finalized); - // if (!finalized && initialized) { - // MPI_Finalize(); - // } - - MPI_Finalize(); - return 0; -} diff --git a/P2/results.csv b/P2/results.csv new file mode 100644 index 0000000..8f0acfe --- /dev/null +++ b/P2/results.csv @@ -0,0 +1,4 @@ +MatrixSize,AverageSequentialTime,AverageDistributedTime,AverageSpeedUp +256,0.655928,0.182856,3.58713 +512,5.07488,1.39987,3.62526 +1024,40.312,10.5835,3.80895 -- GitLab