Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
smaller size so ctest don't give a timeout during tests
[simgrid.git] / examples / smpi / smpi_traced.c
index 3fa968f..b39cc32 100644 (file)
@@ -6,6 +6,9 @@
 
 #include "mpi.h"
 #include <stdio.h>
+#include "instr/instr.h"
+
+#define DATATOSENT 100000
 
 int main(int argc, char *argv[])
 {
@@ -50,21 +53,24 @@ int main(int argc, char *argv[])
     MPI_Status status;
     MPI_Request req[2*N];
     MPI_Status sta[2*N];
-    int r;
+    int *r = (int*)malloc(sizeof(int)*DATATOSENT);
     if (A){
-      MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &request);
+      TRACE_smpi_set_category ("A");
+      MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &request);
       MPI_Wait (&request, &status);
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (B){
-      MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+      TRACE_smpi_set_category ("B");
+      MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (C){
+      TRACE_smpi_set_category ("C");
       for (i = 0; i < N; i++){
-        MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         MPI_Wait (&req[i], &sta[i]);
@@ -73,8 +79,9 @@ int main(int argc, char *argv[])
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (D){
+      TRACE_smpi_set_category ("D");
       for (i = 0; i < N; i++){
-        MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         int completed;
@@ -84,48 +91,53 @@ int main(int argc, char *argv[])
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (E){
+      TRACE_smpi_set_category ("E");
       for (i = 0; i < N; i++){
-        MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+        MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (F){
+      TRACE_smpi_set_category ("F");
       for (i = 0; i < N; i++){
-        MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+        MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (G){
+      TRACE_smpi_set_category ("G");
       for (i = 0; i < N; i++){
-        MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
       }
       MPI_Waitall (N, req, sta);
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (H){
+      TRACE_smpi_set_category ("H");
       for (i = 0; i < N; i++){
-        MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+        MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (I){
+      TRACE_smpi_set_category ("I");
       for (i = 0; i < 2*N; i++){
         if (i < N){
-          MPI_Send(&rank, 1, MPI_INT, 2, tag, MPI_COMM_WORLD);
+          MPI_Send(r, DATATOSENT, MPI_INT, 2, tag, MPI_COMM_WORLD);
         }else{
-          MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+          MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
         }
       }
       MPI_Barrier (MPI_COMM_WORLD);
       for (i = 0; i < 2*N; i++){
         if (i < N){
-          MPI_Irecv(&r, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+          MPI_Irecv(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
         }else{
-          MPI_Irecv(&r, 1, MPI_INT, 2, tag, MPI_COMM_WORLD, &req[i]);
+          MPI_Irecv(r, DATATOSENT, MPI_INT, 2, tag, MPI_COMM_WORLD, &req[i]);
         }
       }
       MPI_Waitall (2*N, req, sta);
@@ -133,8 +145,9 @@ int main(int argc, char *argv[])
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (J){
+      TRACE_smpi_set_category ("J");
       for (i = 0; i < N; i++){
-        MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         int flag;
@@ -153,36 +166,41 @@ int main(int argc, char *argv[])
     MPI_Status status;
     MPI_Request req[N];
     MPI_Status sta[N];
-    int r;
+    int *r = (int*)malloc(sizeof(int)*DATATOSENT);
 
     if (A){
-      MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &status);
+      TRACE_smpi_set_category ("A");
+      MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &status);
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (B){
-      MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &request);
+      TRACE_smpi_set_category ("B");
+      MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &request);
       MPI_Wait (&request, &status);
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (C){
+      TRACE_smpi_set_category ("C");
       for (i = 0; i < N; i++){
-        MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
+        MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (D){
+      TRACE_smpi_set_category ("D");
       for (i = 0; i < N; i++){
-        MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
+        MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (E){
+      TRACE_smpi_set_category ("E");
       for (i = 0; i < N; i++){
-        MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         MPI_Wait (&req[i], &sta[i]);
@@ -191,8 +209,9 @@ int main(int argc, char *argv[])
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (F){
+      TRACE_smpi_set_category ("F");
       for (i = 0; i < N; i++){
-        MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         int completed;
@@ -202,29 +221,32 @@ int main(int argc, char *argv[])
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (G){
+      TRACE_smpi_set_category ("G");
       for (i = 0; i < N; i++){
-        MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
+        MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (H){
+      TRACE_smpi_set_category ("H");
       for (i = 0; i < N; i++){
-        MPI_Irecv(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       MPI_Waitall (N, req, sta);
     }
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (I){
+      TRACE_smpi_set_category ("I");
       for (i = 0; i < N; i++){
-        MPI_Irecv(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       MPI_Waitall (N, req, sta);
 
       MPI_Barrier (MPI_COMM_WORLD);
       for (i = 0; i < N; i++){
-        MPI_Isend(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Isend(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       MPI_Waitall (N, req, sta);
 //      for (i = 0; i < N; i++){
@@ -234,8 +256,9 @@ int main(int argc, char *argv[])
     MPI_Barrier (MPI_COMM_WORLD);
 
     if (J){
+      TRACE_smpi_set_category ("J");
       for (i = 0; i < N; i++){
-        MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         int flag;
@@ -254,7 +277,7 @@ int main(int argc, char *argv[])
 //    MPI_Status status;
     MPI_Request req[N];
     MPI_Status sta[N];
-    int r;
+    int *r = (int*)malloc(sizeof(int)*DATATOSENT);
 
     if (A) {} 
     MPI_Barrier (MPI_COMM_WORLD);
@@ -273,8 +296,9 @@ int main(int argc, char *argv[])
     if (H) {} 
     MPI_Barrier (MPI_COMM_WORLD);
     if (I){
+      TRACE_smpi_set_category ("I");
       for (i = 0; i < N; i++){
-        MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+        MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
       }
       for (i = 0; i < N; i++){
         int completed;
@@ -283,7 +307,7 @@ int main(int argc, char *argv[])
       MPI_Barrier (MPI_COMM_WORLD);
 
       for (i = 0; i < N; i++){
-        MPI_Send(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD);
+        MPI_Send(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD);
       }
     }
     MPI_Barrier (MPI_COMM_WORLD);