Communicators

An MPI communicator specifies the communication context for a communication operation. In particular, it specifies the set of processes which share the context, and assigns each each process a unique rank (see MPI.Comm_rank) taking an integer value in 0:n-1, where n is the number of processes in the communicator (see MPI.Comm_size.

Constants

MPI.COMM_WORLDConstant
MPI.COMM_WORLD

A communicator containing all processes with which the local rank can communicate at initialization. In a typical "static-process" model, this will be all processes.

source

Functions

Constructors

MPI.Comm_spawnFunction
Comm_spawn(command, argv::Vector{String}, nprocs::Integer, comm::Comm[, errors::Vector{Cint}]; kwargs...)

source
MPI.Comm_splitFunction
Comm_split(comm::Comm, color::Union{Integer,Nothing}, key::Integer)

Partition the communicator comm, one for each value of color, returning a new communicator. Within each group, the processes are ranked in the order of key, with ties broken by the order of comm.

color should be a non-negative integer, or nothing, in which case a null communicator is returned for that rank.

source
MPI.Comm_split_typeFunction
Comm_split_type(comm::Comm, split_type, key::Integer; kwargs...)

Partitions the communicator comm based on split_type, returning a new communicator. Within each group, the processes are ranked in the order of key, with ties broken by the order of comm.

Currently only one split_type is provided:

• MPI.COMM_TYPE_SHARED: splits the communicator into subcommunicators, each of which can create a shared memory region.

MPI.universe_sizeFunction
universe_size()
The total number of available slots, or nothing if it is not defined. This is determined by the MPI_UNIVERSE_SIZE attribute of COMM_WORLD.
This is typically dependent on the MPI implementation: for MPICH-based implementations, this is specified by the -usize argument. OpenMPI defines a default value based on the number of processes available.