-
Notifications
You must be signed in to change notification settings - Fork 903
Commit 91337bf
committed
ompi/comm: improve comm_split_type scalability
This commit introduces a new algorithm for MPI_Comm_split_type. The
old algorithm performed an allgather on the communicator to decide
which processes were part of the new communicators. This does not
scale well in either time or memory.
The new algorithm performs a couple of all reductions to determine the
global parameters of the MPI_Comm_split_type call. If any rank gives
an inconsistent split_type (as defined by the standard) an error is
returned without proceeding further. The algorithm then creates a
communicator with all the ranks that match the split_type (no
communication required) in the same order as the original
communicator. It then does an allgather on the new communicator (which
should be much smaller) to determine 1) if the new communicator is in
the correct order, and 2) if any ranks in the new communicator
supplied MPI_UNDEFINED as the split_type. If either of these
conditions are detected the new communicator is split using
ompi_comm_split and the intermediate communicator is freed.
Signed-off-by: Nathan Hjelm <[email protected]>
(cherry picked from commit 4c49c42)
Signed-off-by: Nathan Hjelm <[email protected]>1 parent d52a2d0 commit 91337bfCopy full SHA for 91337bf
File tree
Expand file treeCollapse file tree
1 file changed
+183
-158
lines changedFilter options
- ompi/communicator
Expand file treeCollapse file tree
1 file changed
+183
-158
lines changed
0 commit comments