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;
-# 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