I've had a hang reported on BG/Q after about 2K MPI_Comm_create's.
It hangs on the latest 2 releases (mpich2 v1.5.x and v1.4.x) on BG/Q.
It also hangs on linux: 64bit (MPI over PAMI) MPICH2 library.
On older mpich 1.? (BG/P) it failed with 'too many communicators' and
didn't hang, which is what they expected.
It seems like it's stuck in the while (*context_id == 0) loop
repeatedly calling allreduce and never settling on a context id in
commutil.c. I didn't do a lot of debug but seems like it's in
vanilla mpich code, not something we modified.
ftmain.f90 fails if you run it on >2k ranks (creates one comm per
rank). This was the original customer testcase.
ftmain2.f90 fails by looping so you can run on fewer ranks.
I just noticed that with --np 1, I get the 'too many communicators' from
ftmain2. But --np 2 and up hangs.
stdout[0]: check_newcomm do-start 0 , repeat 2045 ,
total 2046
stderr[0]: Abort(1) on node 0 (rank 0 in comm 1140850688): Fatal error in
PMPI_Comm_create: Other MPI error, error stack:
stderr[0]: PMPI_Comm_create(609).........: MPI_Comm_create(MPI_COMM_WORLD,
group=0xc80700f6, new_comm=0x1dbfffb520) failed
stderr[0]: PMPI_Comm_create(590).........:
stderr[0]: MPIR_Comm_create_intra(250)...:
stderr[0]: MPIR_Get_contextid(521).......:
stderr[0]: MPIR_Get_contextid_sparse(752): Too many communicators