MPI_Comm_split

Partitions the group that is associated with the specified communicator into a specified number of disjoint subgroups.

Syntax

  • newcomm = MPI_Comm_split(comm, color, key)

Input argument

  • comm - a MPI_Comm object.
  • color - an integer value: The new communicator that the calling process is to be assigned to. The value of color must be non-negative.
  • key - an integer value: The relative rank of the calling process in the group of the new communicator.

Output argument

  • newcomm - MPI_Comm object: handle to a new communicator.

Description

Partitions the group that is associated with the specified communicator into a specified number of disjoint subgroups.

See also

MPI_Comm_rank.

Example

mpiexec([modulepath('mpi'), '/examples/help_examples/MPI_Comm_split.m'], 10)

if ~MPI_Initialized() MPI_Init(); end comm = MPI_Comm_object(); world_rank = MPI_Comm_rank(); world_size = MPI_Comm_size(); color = world_rank * inv(4); % Split the communicator based on the color and use the % original rank for ordering row_comm = MPI_Comm_split(comm, color, world_rank); row_rank = MPI_Comm_rank(); row_size = MPI_Comm_size(); disp(['WORLD RANK/SIZE: ',int2str(world_rank), '/', int2str(world_size), ' ROW RANK/SIZE: ', int2str(row_rank), '/', int2str(row_size)]); if MPI_Initialized() MPI_Finalize(); end

History

VersionDescription
1.0.0initial version

Author

Allan CORNET