Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
This is a bug in the implementation in OpenMPI, with OpenMPI accidentally working.
authorAugustin Degomme <degomme@idpann.imag.fr>
Tue, 18 Jun 2013 12:02:26 +0000 (14:02 +0200)
committerAugustin Degomme <degomme@idpann.imag.fr>
Tue, 18 Jun 2013 12:06:12 +0000 (14:06 +0200)
That's because MPI_ANY_SOURCE is also -1 in OpenMPI.

src/smpi/colls/barrier-ompi.c

index ad5b748..39bdeb1 100644 (file)
@@ -52,8 +52,8 @@ int smpi_coll_tuned_barrier_ompi_doublering(MPI_Comm comm
     size = smpi_comm_size(comm);
 
     XBT_DEBUG("ompi_coll_tuned_barrier_ompi_doublering rank %d", rank);
     size = smpi_comm_size(comm);
 
     XBT_DEBUG("ompi_coll_tuned_barrier_ompi_doublering rank %d", rank);
-  
-    left = ((rank-1)%size);
+
+    left = ((rank-1+size)%size);
     right = ((rank+1)%size);
 
     if (rank > 0) { /* receive message from the left */
     right = ((rank+1)%size);
 
     if (rank > 0) { /* receive message from the left */