Hello,
MPI_Group_compare is broken in both 1.3.2 and svn. Here is a patch
which fixes the problem:
diff --git a/ompi/mpi/c/group_compare.c b/ompi/mpi/c/group_compare.c
index 0d199c1..89c83f9 100644
--- a/ompi/mpi/c/group_compare.c
+++ b/ompi/mpi/c/group_compare.c
@@ -106,6 +106,7 @@ int MPI_Group_compare(MPI_Group group1, MPI_Group
group2, int *result) {
} /* end proc2 loop */
if( match== -1 ) {
similar=false;
+ identical=false;
break;
}
} /* end proc1 loop */
and a C test program which illustrates it:
#include <mpi.h>
#include <stdio.h>
int main(int argc,char* argv[])
{
MPI_Init(&argc,&argv);
MPI_Group group;
MPI_Comm_group(MPI_COMM_WORLD, &group);
int r1[2] = {0, 1};
int r2[2] = {1, 2};
MPI_Group g1, g2;
MPI_Group_incl(group, 2, r1, &g1);
MPI_Group_incl(group, 2, r2, &g2);
int cmp;
MPI_Group_compare(g1, g2, &cmp);
printf("compare %d, ident %d\n", cmp, MPI_IDENT);
assert(cmp != MPI_IDENT);
MPI_Finalize();
return 0;
}
A quick glance through the history (thanks git log -pM --follow) seems
to indicate that MPI_Group_compare hasn't ever worked in OpenMPI, so
apparently I'm the only user of this function. :)
Geoffrey