Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines.
[simgrid.git] / teshsuite / smpi / macro-shared / macro-shared.c
index 51da71b..3d66e90 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2017. The SimGrid Team.
+/* Copyright (c) 2009-2021. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -54,6 +54,17 @@ int main(int argc, char *argv[])
 
   printf("[%d] After change, the value in the shared buffer is: %" PRIu64"\n", rank, *buf);
 
+  //try to send/receive shared data, to check if we skip the copies correctly.
+  if(rank==0)
+    MPI_Send(buf, 1, MPI_AINT, 1, 100, MPI_COMM_WORLD);
+  else if (rank ==1)
+    MPI_Recv(buf, 1, MPI_AINT, 0, 100, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
+    
+  //same thing with an MPI_IN_PLACE collective (no)
+  if (rank == 0)
+    MPI_Scatter(buf, 1, MPI_AINT, MPI_IN_PLACE, -1, MPI_DATATYPE_NULL, 0, MPI_COMM_WORLD);
+  else
+    MPI_Scatter(NULL, -1, MPI_DATATYPE_NULL, buf, 1, MPI_AINT, 0, MPI_COMM_WORLD);
   SMPI_SHARED_FREE(buf);
 
   MPI_Finalize();