Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Finalize the smpi test (it works)
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 26 Jun 2009 20:22:34 +0000 (20:22 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 26 Jun 2009 20:22:34 +0000 (20:22 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6374 48e7efb5-ca39-0410-a469-dd3cf9ba447f

examples/smpi/bcast.c
examples/smpi/bcast.tesh

index 27b58ee..608c5c3 100644 (file)
@@ -5,22 +5,26 @@ int main (int argc, char **argv) {
   int size, rank;
   int value = 3;
   double start_timer;
+   int quiet = 0;
 
   MPI_Init(&argc, &argv);
   MPI_Comm_size(MPI_COMM_WORLD, &size);
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 
+   if (argc > 1 && !strcmp(argv[1],"-q")) 
+     quiet=1;
+   
   start_timer = MPI_Wtime();
 
   if (0 == rank) {
     value = 17;
   }
-  printf("node %d has value %d\n", rank, value);
+  printf("node %d has value %d before broadcast\n", rank, value);
   MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD);
-  printf("node %d has value %d\n", rank, value);
+  printf("node %d has value %d after broadcast\n", rank, value);
 
   MPI_Barrier( MPI_COMM_WORLD );
-  if ( 0 == rank)
+  if ( 0 == rank && !quiet)
            printf("Elapsed time on rank %d: %lf s\n", rank, MPI_Wtime()-start_timer);
   MPI_Finalize();
   return 0;
index 3584c6d..3dfe407 100644 (file)
@@ -1,41 +1,84 @@
-# define a variable for the command line since it's so long
-# (since we use it only in rewriting in this file, defining it once is enough)
-! setenv cmdline=../../src/smpi/smpirun -quiet -hostfile hostfile -platform ../msg/small_platform.xml 
-
 # use the tested library, not the installed one
 # (since we want to pass it to the child, it has to be redefined before each command)
 ! setenv LD_LIBRARY_PATH=../../src/.libs
 
-# Ignore the output since it contains timing information depending on the host speed
-#   (FIXME: add an option to SIMIX to not display this timing)
-! output display
-
 # Go for the first test
 p Test Broadcast with less processes than hosts
-$ ${cmdline} -np 3 ./bcast
+$ ../../src/smpi/smpirun -quiet -hostfile hostfile -platform ../msg/small_platform.xml -np 3 ./bcast -q
 > [rank 0] -> Tremblay
 > [rank 1] -> Jupiter
 > [rank 2] -> Fafard
-> node 1 has value 3 before broadcast
 > node 0 has value 17 before broadcast
+> node 1 has value 3 before broadcast
 > node 2 has value 3 before broadcast
 > node 1 has value 17 after broadcast
 > node 0 has value 17 after broadcast
 > node 2 has value 17 after broadcast
-> [0.000000] [smpi_kernel/INFO] simulation time 0.00343892
 
 
 
 # second test
 p Test Broadcast with as much processes than hosts
-! output display
 ! setenv LD_LIBRARY_PATH=../../src/.libs
-$ ${cmdline} -np 6 ./bcast
+$ ../../src/smpi/smpirun -quiet -hostfile hostfile -platform ../msg/small_platform.xml -np 6 ./bcast -q
+> [rank 0] -> Tremblay
+> [rank 1] -> Jupiter
+> [rank 2] -> Fafard
+> [rank 3] -> Ginette
+> [rank 4] -> Bourassa
+> [rank 5] -> Tremblay
+> node 0 has value 17 before broadcast
+> node 1 has value 3 before broadcast
+> node 2 has value 3 before broadcast
+> node 3 has value 3 before broadcast
+> node 4 has value 3 before broadcast
+> node 5 has value 3 before broadcast
+> node 4 has value 17 after broadcast
+> node 0 has value 17 after broadcast
+> node 5 has value 17 after broadcast
+> node 2 has value 17 after broadcast
+> node 1 has value 17 after broadcast
+> node 3 has value 17 after broadcast
 
 
 
 # Another test
 p Test Broadcast with more processes than hosts
-! output display
 ! setenv LD_LIBRARY_PATH=../../src/.libs
-$ ${cmdline} -np 12 ./bcast
+$ ../../src/smpi/smpirun -quiet -hostfile hostfile -platform ../msg/small_platform.xml -np 12 ./bcast -q
+> [rank 0] -> Tremblay
+> [rank 1] -> Jupiter
+> [rank 2] -> Fafard
+> [rank 3] -> Ginette
+> [rank 4] -> Bourassa
+> [rank 5] -> Tremblay
+> [rank 6] -> Jupiter
+> [rank 7] -> Fafard
+> [rank 8] -> Ginette
+> [rank 9] -> Bourassa
+> [rank 10] -> Tremblay
+> [rank 11] -> Jupiter
+> node 0 has value 17 before broadcast
+> node 1 has value 3 before broadcast
+> node 2 has value 3 before broadcast
+> node 3 has value 3 before broadcast
+> node 4 has value 3 before broadcast
+> node 5 has value 3 before broadcast
+> node 6 has value 3 before broadcast
+> node 7 has value 3 before broadcast
+> node 8 has value 3 before broadcast
+> node 9 has value 3 before broadcast
+> node 10 has value 3 before broadcast
+> node 11 has value 3 before broadcast
+> node 10 has value 17 after broadcast
+> node 8 has value 17 after broadcast
+> node 0 has value 17 after broadcast
+> node 11 has value 17 after broadcast
+> node 7 has value 17 after broadcast
+> node 9 has value 17 after broadcast
+> node 3 has value 17 after broadcast
+> node 5 has value 17 after broadcast
+> node 1 has value 17 after broadcast
+> node 6 has value 17 after broadcast
+> node 2 has value 17 after broadcast
+> node 4 has value 17 after broadcast