1
1
openmpi/ompi
Nathan Hjelm 4c49c42dd0 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 <hjelmn@lanl.gov>
2016-07-18 12:47:05 -06:00
..
attribute more c99 updates 2015-06-25 10:14:13 -06:00
class Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
communicator ompi/comm: improve comm_split_type scalability 2016-07-18 12:47:05 -06:00
contrib Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
datatype ompi/datatype: Fix args of DARRAY 2016-06-15 11:24:22 +09:00
debuggers Merge pull request #1640 from jsquyres/pr/mpir-cleanup 2016-05-05 21:23:30 -04:00
dpm ompi/comm: refactor communicator cid code 2016-07-18 12:47:05 -06:00
errhandler Enable the PMIx event notification capability and use that for all error notifications, including debugger release. This capability requires use of PMIx 2.0 or above as the features are not available with earlier PMIx releases. When OMPI master is built against an earlier external version, it will fallback to the prior behavior - i.e., debugger will be released via RML and all notifications will go strictly to the default error handler. 2016-06-14 13:08:41 -07:00
etc Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
file io: do not cast way the const modifier when this is not necessary 2015-09-09 09:18:58 +09:00
group ompi/group: get rid of malloc(0) in ompi_group_intersection(...) 2016-07-14 11:19:46 +09:00
include Enable the PMIx event notification capability and use that for all error notifications, including debugger release. This capability requires use of PMIx 2.0 or above as the features are not available with earlier PMIx releases. When OMPI master is built against an earlier external version, it will fallback to the prior behavior - i.e., debugger will be released via RML and all notifications will go strictly to the default error handler. 2016-06-14 13:08:41 -07:00
info ompi: fixup hostname max length usage 2016-04-25 07:08:23 +02:00
mca fcoll/base: mv coll_array functionis to fcoll base 2016-07-14 08:41:14 -05:00
message Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
mpi ompi/comm: refactor communicator cid code 2016-07-18 12:47:05 -06:00
mpiext In case, we do not build Fortran, Fortran 2008 or CXX, the regexp in make_manpage.pl will delete all 2016-05-17 14:21:35 +02:00
op op: Add a default value for MPI_OP o_name 2016-07-01 13:46:01 -05:00
patterns Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
peruse more c99 updates 2015-06-25 10:14:13 -06:00
proc ompi_proc_complete_init_single: make the subroutine public 2016-02-22 11:01:06 +09:00
request Merge pull request #1835 from hjelmn/thread_fix 2016-06-30 18:50:32 -06:00
runtime Merge pull request #1767 from rhc54/topic/pmix2 2016-06-16 15:27:43 -07:00
tools configury: fix mpifort and oshmemfort wrapper data 2016-06-06 11:54:12 +09:00
win ompi/win: silence an other warning 2016-05-31 13:18:39 +09:00
Makefile.am use-mpi extensions do not have a .la lib, so the fortran module should not depend on them. 2016-05-03 11:54:35 -04:00