diff --git a/P2/distributedtests.cpp b/P2/distributedtests.cpp
index e3d8ca75431acfd886c7f6011a8bc042db2863d3..cbc483a6fed91eff42feb188f32d2be715608c0a 100644
--- a/P2/distributedtests.cpp
+++ b/P2/distributedtests.cpp
@@ -6,20 +6,19 @@
 #include <cassert>
 #include <cmath>
 #include <functional>
+#include <nvToolsExt.h>  // Pour NVTX
 
-
-
-// Helper function to test if two doubles are approximately equal
+// Fonction utilitaire pour vérifier si deux doubles sont proches
 bool approxEqual(double a, double b, double epsilon = 1e-10) {
     return std::abs(a - b) < epsilon;
 }
 
-// Helper function to test if two matrices are approximately equal
+// Fonction utilitaire pour vérifier si deux matrices sont égales
 bool matricesEqual(const Matrix& a, const Matrix& b, double epsilon = 1e-10) {
     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 (!approxEqual(a.get(i, j), b.get(i, j), epsilon)) {
@@ -27,66 +26,75 @@ bool matricesEqual(const Matrix& a, const Matrix& b, double epsilon = 1e-10) {
             }
         }
     }
-    
+
     return true;
 }
 
-// Test multiplyTransposed
+// Test multiplyTransposed avec NVTX pour marquage et analyse des performances
 void testMultiplyTransposed() {
     int rank;
     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
     
-    // Create test matrices
-    Matrix matrix1Full(256, 256);
-    Matrix matrix2Full(256, 256);
-    for (int i = 0; i < 256; i++) {
-        for (int j = 0; j < 256; j++) {
+    // Créer des matrices de test
+    Matrix matrix1Full(1024, 1024);  // Taille plus petite pour une exécution rapide
+    Matrix matrix2Full(1024, 1024);
+    for (int i = 0; i < 1024; i++) {
+        for (int j = 0; j < 1024; j++) {
             matrix1Full.set(i, j, i * 5 + j + 1);
         }
     }
-    for (int i = 0; i < 256; i++) {
-        for (int j = 0; j < 256; j++) {
+    for (int i = 0; i < 1024; i++) {
+        for (int j = 0; j < 1024; j++) {
             matrix2Full.set(i, j, i * 5 + j + 2);
         }
     }
-    
-    // Create distributed matrices
+
+    // Créer des matrices distribuées
     int numProcs;
     MPI_Comm_size(MPI_COMM_WORLD, &numProcs);
     DistributedMatrix matrix1(matrix1Full, numProcs);
     DistributedMatrix matrix2(matrix2Full, numProcs);
-    
-    // Compute expected result
+
+    // Calculer la matrice attendue (référence)
     Matrix expectedMatrix = matrix1Full * matrix2Full.transpose();
 
-    // Compute A * B^T
+    // Profilage avec NVTX pour marquer les sections de calcul
+    nvtxRangePushA("MPI_Init");  // Début de l'initialisation MPI
+
+    // Profilage du calcul (avant l'opération)
+    nvtxRangePushA("DistributedMatrix::multiplyTransposed");
+
+    // Exécuter A * B^T
     Matrix result = matrix1.multiplyTransposed(matrix2);
-    
-    // Check
+
+    nvtxRangePop();  // Fin de l'opération multiplyTransposed
+    nvtxRangePop();  // Fin de l'initialisation MPI
+
+    // Vérification du résultat
     assert(matricesEqual(result, expectedMatrix, 1e-8));
-    
+
     if (rank == 0) {
         std::cout << "MultiplyTransposed test passed!" << std::endl;
     }
 }
 
 int main(int argc, char** argv) {
-    // Initialize MPI
+    // Initialiser MPI
     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 DistributedMatrix tests..." << std::endl;
     }
-    
+
     try {
-        // Run tests
+        // Lancer le test
         testMultiplyTransposed();
         
         if (rank == 0) {
@@ -99,14 +107,8 @@ int main(int argc, char** argv) {
         }
         MPI_Abort(MPI_COMM_WORLD, 1);
     }
-    
-    // Finalize MPI if we initialized it
-    // int finalized;
-    // MPI_Finalized(&finalized);
-    // if (!finalized && initialized) {
-    //     MPI_Finalize();
-    // }
 
+    // Finaliser MPI si nécessaire
     MPI_Finalize();
     return 0;
-}
\ No newline at end of file
+}
diff --git a/P2/profile_mpi_computation.nsys-rep b/P2/profile_mpi_computation.nsys-rep
index 8ffd1dbfd35e6e705424d7690dbeac0d19c8e1dd..9591b0509a910c333d80c1e61fe1c11d076a3321 100644
Binary files a/P2/profile_mpi_computation.nsys-rep and b/P2/profile_mpi_computation.nsys-rep differ