-
Notifications
You must be signed in to change notification settings - Fork 142
Description
For our simulation , we need multiple custom mpi communicators. One custom communicator along columns and one along rows. I am using enQ_commsplit for creating custom communicators. The issue is , the collective routines works fine when the process ranks are in consecutive order in a communicator. But when they are not, the system gets into a deadlock. I am sharing an example -
Suppose, we have 6 processors. We will be creating 3 column communicators and 3 row communicators each having 2 processors in it. Processes in column communicator will have consecutive order e.g - (0,1) in one communicator , (2,3) in the next one and (4,5) in the next one. When I create communicators in this way , all the collective routines run fine.
The row communicator is created having (0,5) in one communicator , (2,1) in the next communicator and (4,3) in the next communicator. When I split the ranks in this way , the collective routines get into a deadlock.
Is the enQ_commsplit only supposed to work when the process ranks are in consecutive order? If not , what can I do to use collectives along row communicators?
Thanks in advance.