Good afternoon, I am attaching a simple fortran code that:

   - calls the MPI_INIT
   - duplicates the global communicator, via MPI_COMM_DUP
   - creates a group with half of processes of the global
communicator, via MPI_COMM_GROUP
   - finally from this group creates a new communicator via
MPI_COMM_CREATE_GROUP

This last call is done using as a first argument MPI_COMM_WORLD
instead of the duplicated communicator used for creating the group.
With the intel MPI (ifort version 19.0.2.187, but also older) this
generates a seg fault, while using openMPI it doesn't.

Uncommenting line 18 and commenting line 19 works fine with both.
Now, looking at the documentation
<https://www.mpich.org/static/docs/v3.1/www3/MPI_Comm_dup.html>, it
seems like this code shouldn't work after all, because the

"MPI_COMM_DUP creates a new communicator over the same group as comm
but with a* new context*"

and so it should't be possible to use the MPI_COMM_WORLD as a first
argument of the create MPI_COMM_CREATE_GROUP.

What do you think? In the beginning I was thinking about a bug in the
intel MPI, but now I'm simply a bit confused ...

Thank you in advance for the help

Stella

Attachment: mpi_comm_create_group.F90
Description: Binary data

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

Reply via email to