Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Enhance pt2pt test for dsend to test MPI_Isend/MPI_Irecv as well.
authordegomme <augustin.degomme@unibas.ch>
Wed, 8 Jun 2016 14:34:49 +0000 (16:34 +0200)
committerdegomme <augustin.degomme@unibas.ch>
Wed, 8 Jun 2016 14:42:59 +0000 (16:42 +0200)
teshsuite/smpi/pt2pt-dsend/pt2pt-dsend.c

index 4a1f8b9..7244ec4 100644 (file)
@@ -17,17 +17,30 @@ int main(int argc, char *argv[]) {
 
   MPI_Init(&argc, &argv);
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+  MPI_Request r;
+  if (rank==1) {
+    data=22;
+    MPI_Send(&data,1,MPI_BYTE,(rank+1)%2,666,MPI_COMM_WORLD);
+  } else {
+    MPI_Recv(&data,1,MPI_BYTE,MPI_ANY_SOURCE,666,MPI_COMM_WORLD,NULL);
+    if (data !=22) {
+      printf("rank %d: Damn, data does not match (got %d)\n",rank, data);
+    }
+  }
 
   if (rank==1) {
     data=22;
-    MPI_Send(&data,1,MPI_INT,(rank+1)%2,666,MPI_COMM_WORLD);
+    MPI_Isend(&data,1,MPI_BYTE,(rank+1)%2,666,MPI_COMM_WORLD, &r);
+    MPI_Wait(&r, MPI_STATUS_IGNORE);
   } else {
-    MPI_Recv(&data,1,MPI_INT,MPI_ANY_SOURCE,666,MPI_COMM_WORLD,NULL);
+    MPI_Irecv(&data,1,MPI_BYTE,MPI_ANY_SOURCE,666,MPI_COMM_WORLD,&r);
+    MPI_Wait(&r, MPI_STATUS_IGNORE);
     if (data !=22) {
       printf("rank %d: Damn, data does not match (got %d)\n",rank, data);
     }
   }
 
+
   XBT_INFO("rank %d: data exchanged", rank);
   MPI_Finalize();
   return 0;