Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
- corrected mvmul.c to avoid warnings
[simgrid.git] / examples / smpi / bcast.c
index 002061c..27b58ee 100644 (file)
@@ -1,25 +1,27 @@
 #include <stdio.h>
 #include <mpi.h>
 
-#define INIT_VALUE 3
-#define TARGET_VALUE 42
-
 int main (int argc, char **argv) {
   int size, rank;
-  int value = INIT_VALUE;
+  int value = 3;
+  double start_timer;
+
   MPI_Init(&argc, &argv);
   MPI_Comm_size(MPI_COMM_WORLD, &size);
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+
+  start_timer = MPI_Wtime();
+
   if (0 == rank) {
-    value = TARGET_VALUE;
+    value = 17;
   }
-  fprintf(stderr,"node %d has value %d before broadcast\n", rank, value);
+  printf("node %d has value %d\n", rank, value);
   MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD);
-  fprintf(stderr,"node %d has value %d after broadcast\n", rank, value);
-  if (value != TARGET_VALUE) {
-         fprintf(stderr,"node %d don't have the target value after broadcast!!\n", rank);
-         exit(1);
-  }
+  printf("node %d has value %d\n", rank, value);
+
+  MPI_Barrier( MPI_COMM_WORLD );
+  if ( 0 == rank)
+           printf("Elapsed time on rank %d: %lf s\n", rank, MPI_Wtime()-start_timer);
   MPI_Finalize();
   return 0;
 }