mpi4py.MPI.Comm
- class mpi4py.MPI.Comm(comm=None)
Bases:
object
Communicator
Methods Summary
Abort
([errorcode])Terminate MPI execution environment
Allgather
(sendbuf, recvbuf)Gather to All, gather data from all processes and distribute it to all other processes in a group
Allgatherv
(sendbuf, recvbuf)Gather to All Vector, gather data from all processes and distribute it to all other processes in a group providing different amount of data and displacements
Allreduce
(sendbuf, recvbuf[, op])Reduce to All
Alltoall
(sendbuf, recvbuf)All to All Scatter/Gather, send data from all to all processes in a group
Alltoallv
(sendbuf, recvbuf)All to All Scatter/Gather Vector, send data from all to all processes in a group providing different amount of data and displacements
Alltoallw
(sendbuf, recvbuf)Generalized All-to-All communication allowing different counts, displacements and datatypes for each partner
Barrier
()Barrier synchronization
Bcast
(buf[, root])Broadcast a message from one process to all other processes in a group
Bsend
(buf, dest[, tag])Blocking send in buffered mode
Bsend_init
(buf, dest[, tag])Persistent request for a send in buffered mode
Call_errhandler
(errorcode)Call the error handler installed on a communicator
Clone
()Clone an existing communicator
Compare
(comm1, comm2)Compare two communicators
Create
(group)Create communicator from group
Create_group
(group[, tag])Create communicator from group
Create_keyval
([copy_fn, delete_fn, nopython])Create a new attribute key for communicators
Delete_attr
(keyval)Delete attribute value associated with a key
Disconnect from a communicator
Dup
([info])Duplicate an existing communicator
Dup_with_info
(info)Duplicate an existing communicator
Free
()Free a communicator
Free_keyval
(keyval)Free an attribute key for communicators
Gather
(sendbuf, recvbuf[, root])Gather together values from a group of processes
Gatherv
(sendbuf, recvbuf[, root])Gather Vector, gather data to one process from all other processes in a group providing different amount of data and displacements at the receiving sides
Get_attr
(keyval)Retrieve attribute value by key
Get the error handler for a communicator
Access the group associated with a communicator
Get_info
()Return the hints for a communicator that are currently in use
Get_name
()Get the print name for this communicator
Return the parent intercommunicator for this process
Get_rank
()Return the rank of this process in a communicator
Get_size
()Return the number of processes in a communicator
Determine the type of topology (if any) associated with a communicator
Iallgather
(sendbuf, recvbuf)Nonblocking Gather to All
Iallgatherv
(sendbuf, recvbuf)Nonblocking Gather to All Vector
Iallreduce
(sendbuf, recvbuf[, op])Nonblocking Reduce to All
Ialltoall
(sendbuf, recvbuf)Nonblocking All to All Scatter/Gather
Ialltoallv
(sendbuf, recvbuf)Nonblocking All to All Scatter/Gather Vector
Ialltoallw
(sendbuf, recvbuf)Nonblocking Generalized All-to-All
Ibarrier
()Nonblocking Barrier
Ibcast
(buf[, root])Nonblocking Broadcast
Ibsend
(buf, dest[, tag])Nonblocking send in buffered mode
Idup
()Nonblocking duplicate an existing communicator
Igather
(sendbuf, recvbuf[, root])Nonblocking Gather
Igatherv
(sendbuf, recvbuf[, root])Nonblocking Gather Vector
Improbe
([source, tag, status])Nonblocking test for a matched message
Iprobe
([source, tag, status])Nonblocking test for a message
Irecv
(buf[, source, tag])Nonblocking receive
Ireduce
(sendbuf, recvbuf[, op, root])Nonblocking Reduce to Root
Ireduce_scatter
(sendbuf, recvbuf[, ...])Nonblocking Reduce-Scatter (vector version)
Ireduce_scatter_block
(sendbuf, recvbuf[, op])Nonblocking Reduce-Scatter Block (regular, non-vector version)
Irsend
(buf, dest[, tag])Nonblocking send in ready mode
Is_inter
()Test to see if a comm is an intercommunicator
Is_intra
()Test to see if a comm is an intracommunicator
Iscatter
(sendbuf, recvbuf[, root])Nonblocking Scatter
Iscatterv
(sendbuf, recvbuf[, root])Nonblocking Scatter Vector
Isend
(buf, dest[, tag])Nonblocking send
Issend
(buf, dest[, tag])Nonblocking send in synchronous mode
Join
(fd)Create a intercommunicator by joining two processes connected by a socket
Mprobe
([source, tag, status])Blocking test for a matched message
Probe
([source, tag, status])Blocking test for a message
Recv
(buf[, source, tag, status])Blocking receive
Recv_init
(buf[, source, tag])Create a persistent request for a receive
Reduce
(sendbuf, recvbuf[, op, root])Reduce to Root
Reduce_scatter
(sendbuf, recvbuf[, ...])Reduce-Scatter (vector version)
Reduce_scatter_block
(sendbuf, recvbuf[, op])Reduce-Scatter Block (regular, non-vector version)
Rsend
(buf, dest[, tag])Blocking send in ready mode
Rsend_init
(buf, dest[, tag])Persistent request for a send in ready mode
Scatter
(sendbuf, recvbuf[, root])Scatter data from one process to all other processes in a group
Scatterv
(sendbuf, recvbuf[, root])Scatter Vector, scatter data from one process to all other processes in a group providing different amount of data and displacements at the sending side
Send
(buf, dest[, tag])Blocking send
Send_init
(buf, dest[, tag])Create a persistent request for a standard send
Sendrecv
(sendbuf, dest[, sendtag, recvbuf, ...])Send and receive a message
Sendrecv_replace
(buf, dest[, sendtag, ...])Send and receive a message
Set_attr
(keyval, attrval)Store attribute value associated with a key
Set_errhandler
(errhandler)Set the error handler for a communicator
Set_info
(info)Set new values for the hints associated with a communicator
Set_name
(name)Set the print name for this communicator
Split
([color, key])Split communicator by color and key
Split_type
(split_type[, key, info])Split communicator by split type
Ssend
(buf, dest[, tag])Blocking send in synchronous mode
Ssend_init
(buf, dest[, tag])Persistent request for a send in synchronous mode
allgather
(sendobj)Gather to All
allreduce
(sendobj[, op])Reduce to All
alltoall
(sendobj)All to All Scatter/Gather
barrier
()Barrier
bcast
(obj[, root])Broadcast
bsend
(obj, dest[, tag])Send in buffered mode
f2py
(arg)gather
(sendobj[, root])Gather
ibsend
(obj, dest[, tag])Nonblocking send in buffered mode
improbe
([source, tag, status])Nonblocking test for a matched message
iprobe
([source, tag, status])Nonblocking test for a message
irecv
([buf, source, tag])Nonblocking receive
isend
(obj, dest[, tag])Nonblocking send
issend
(obj, dest[, tag])Nonblocking send in synchronous mode
mprobe
([source, tag, status])Blocking test for a matched message
probe
([source, tag, status])Blocking test for a message
py2f
()recv
([buf, source, tag, status])Receive
reduce
(sendobj[, op, root])Reduce to Root
scatter
(sendobj[, root])Scatter
send
(obj, dest[, tag])Send
sendrecv
(sendobj, dest[, sendtag, recvbuf, ...])Send and Receive
ssend
(obj, dest[, tag])Send in synchronous mode
Attributes Summary
communicator group
communicator info
is intercommunicator
is intracommunicator
is a topology communicator
communicator name
rank of this process in communicator
number of processes in communicator
communicator topology type
Methods Documentation
- Abort(errorcode=0)
Terminate MPI execution environment
Warning
This is a direct call, use it with care!!!.
- Parameters
errorcode (int) –
- Return type
NoReturn
- Allgather(sendbuf, recvbuf)
Gather to All, gather data from all processes and distribute it to all other processes in a group
- Parameters
sendbuf (Union[BufSpec, InPlace]) –
recvbuf (BufSpecB) –
- Return type
- Allgatherv(sendbuf, recvbuf)
Gather to All Vector, gather data from all processes and distribute it to all other processes in a group providing different amount of data and displacements
- Parameters
sendbuf (Union[BufSpec, InPlace]) –
recvbuf (BufSpecV) –
- Return type
- Allreduce(sendbuf, recvbuf, op=SUM)
Reduce to All
- Alltoall(sendbuf, recvbuf)
All to All Scatter/Gather, send data from all to all processes in a group
- Parameters
sendbuf (Union[BufSpecB, InPlace]) –
recvbuf (BufSpecB) –
- Return type
- Alltoallv(sendbuf, recvbuf)
All to All Scatter/Gather Vector, send data from all to all processes in a group providing different amount of data and displacements
- Parameters
sendbuf (Union[BufSpecV, InPlace]) –
recvbuf (BufSpecV) –
- Return type
- Alltoallw(sendbuf, recvbuf)
Generalized All-to-All communication allowing different counts, displacements and datatypes for each partner
- Parameters
sendbuf (Union[BufSpecW, InPlace]) –
recvbuf (BufSpecW) –
- Return type
- Bcast(buf, root=0)
Broadcast a message from one process to all other processes in a group
- Bsend(buf, dest, tag=0)
Blocking send in buffered mode
- Bsend_init(buf, dest, tag=0)
Persistent request for a send in buffered mode
- Call_errhandler(errorcode)
Call the error handler installed on a communicator
- classmethod Compare(comm1, comm2)
Compare two communicators
- Create_group(group, tag=0)
Create communicator from group
- classmethod Create_keyval(copy_fn=None, delete_fn=None, nopython=False)
Create a new attribute key for communicators
- Delete_attr(keyval)
Delete attribute value associated with a key
- Dup(info=None)
Duplicate an existing communicator
- classmethod Free_keyval(keyval)
Free an attribute key for communicators
- Gather(sendbuf, recvbuf, root=0)
Gather together values from a group of processes
- Gatherv(sendbuf, recvbuf, root=0)
Gather Vector, gather data to one process from all other processes in a group providing different amount of data and displacements at the receiving sides
- Get_attr(keyval)
Retrieve attribute value by key
- Get_errhandler()
Get the error handler for a communicator
- Return type
- classmethod Get_parent()
Return the parent intercommunicator for this process
- Return type
- Get_topology()
Determine the type of topology (if any) associated with a communicator
- Return type
- Iallgather(sendbuf, recvbuf)
Nonblocking Gather to All
- Parameters
sendbuf (Union[BufSpec, InPlace]) –
recvbuf (BufSpecB) –
- Return type
- Iallgatherv(sendbuf, recvbuf)
Nonblocking Gather to All Vector
- Parameters
sendbuf (Union[BufSpec, InPlace]) –
recvbuf (BufSpecV) –
- Return type
- Iallreduce(sendbuf, recvbuf, op=SUM)
Nonblocking Reduce to All
- Ialltoall(sendbuf, recvbuf)
Nonblocking All to All Scatter/Gather
- Parameters
sendbuf (Union[BufSpecB, InPlace]) –
recvbuf (BufSpecB) –
- Return type
- Ialltoallv(sendbuf, recvbuf)
Nonblocking All to All Scatter/Gather Vector
- Parameters
sendbuf (Union[BufSpecV, InPlace]) –
recvbuf (BufSpecV) –
- Return type
- Ialltoallw(sendbuf, recvbuf)
Nonblocking Generalized All-to-All
- Parameters
sendbuf (Union[BufSpecW, InPlace]) –
recvbuf (BufSpecW) –
- Return type
- Ibcast(buf, root=0)
Nonblocking Broadcast
- Ibsend(buf, dest, tag=0)
Nonblocking send in buffered mode
- Igather(sendbuf, recvbuf, root=0)
Nonblocking Gather
- Igatherv(sendbuf, recvbuf, root=0)
Nonblocking Gather Vector
- Improbe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Nonblocking test for a matched message
- Iprobe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Nonblocking test for a message
- Irecv(buf, source=ANY_SOURCE, tag=ANY_TAG)
Nonblocking receive
- Ireduce(sendbuf, recvbuf, op=SUM, root=0)
Nonblocking Reduce to Root
- Ireduce_scatter(sendbuf, recvbuf, recvcounts=None, op=SUM)
Nonblocking Reduce-Scatter (vector version)
- Ireduce_scatter_block(sendbuf, recvbuf, op=SUM)
Nonblocking Reduce-Scatter Block (regular, non-vector version)
- Irsend(buf, dest, tag=0)
Nonblocking send in ready mode
- Iscatter(sendbuf, recvbuf, root=0)
Nonblocking Scatter
- Iscatterv(sendbuf, recvbuf, root=0)
Nonblocking Scatter Vector
- Isend(buf, dest, tag=0)
Nonblocking send
- Issend(buf, dest, tag=0)
Nonblocking send in synchronous mode
- classmethod Join(fd)
Create a intercommunicator by joining two processes connected by a socket
- Mprobe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Blocking test for a matched message
- Probe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Blocking test for a message
Note
This function blocks until the message arrives.
- Recv(buf, source=ANY_SOURCE, tag=ANY_TAG, status=None)
Blocking receive
Note
This function blocks until the message is received
- Recv_init(buf, source=ANY_SOURCE, tag=ANY_TAG)
Create a persistent request for a receive
- Reduce(sendbuf, recvbuf, op=SUM, root=0)
Reduce to Root
- Reduce_scatter(sendbuf, recvbuf, recvcounts=None, op=SUM)
Reduce-Scatter (vector version)
- Reduce_scatter_block(sendbuf, recvbuf, op=SUM)
Reduce-Scatter Block (regular, non-vector version)
- Rsend(buf, dest, tag=0)
Blocking send in ready mode
- Rsend_init(buf, dest, tag=0)
Persistent request for a send in ready mode
- Scatter(sendbuf, recvbuf, root=0)
Scatter data from one process to all other processes in a group
- Scatterv(sendbuf, recvbuf, root=0)
Scatter Vector, scatter data from one process to all other processes in a group providing different amount of data and displacements at the sending side
- Send(buf, dest, tag=0)
Blocking send
Note
This function may block until the message is received. Whether or not
Send
blocks depends on several factors and is implementation dependent
- Send_init(buf, dest, tag=0)
Create a persistent request for a standard send
- Sendrecv(sendbuf, dest, sendtag=0, recvbuf=None, source=ANY_SOURCE, recvtag=ANY_TAG, status=None)
Send and receive a message
Note
This function is guaranteed not to deadlock in situations where pairs of blocking sends and receives may deadlock.
Caution
A common mistake when using this function is to mismatch the tags with the source and destination ranks, which can result in deadlock.
- Sendrecv_replace(buf, dest, sendtag=0, source=ANY_SOURCE, recvtag=ANY_TAG, status=None)
Send and receive a message
Note
This function is guaranteed not to deadlock in situations where pairs of blocking sends and receives may deadlock.
Caution
A common mistake when using this function is to mismatch the tags with the source and destination ranks, which can result in deadlock.
- Set_attr(keyval, attrval)
Store attribute value associated with a key
- Set_errhandler(errhandler)
Set the error handler for a communicator
- Parameters
errhandler (Errhandler) –
- Return type
- Set_info(info)
Set new values for the hints associated with a communicator
- Split(color=0, key=0)
Split communicator by color and key
- Split_type(split_type, key=0, info=INFO_NULL)
Split communicator by split type
- Ssend(buf, dest, tag=0)
Blocking send in synchronous mode
- Ssend_init(buf, dest, tag=0)
Persistent request for a send in synchronous mode
- allgather(sendobj)
Gather to All
- Parameters
sendobj (Any) –
- Return type
List[Any]
- allreduce(sendobj, op=SUM)
Reduce to All
- Parameters
sendobj (Any) –
op (Union[Op, Callable[[Any, Any], Any]]) –
- Return type
Any
- alltoall(sendobj)
All to All Scatter/Gather
- Parameters
sendobj (Sequence[Any]) –
- Return type
List[Any]
- bsend(obj, dest, tag=0)
Send in buffered mode
- gather(sendobj, root=0)
Gather
- Parameters
sendobj (Any) –
root (int) –
- Return type
Optional[List[Any]]
- ibsend(obj, dest, tag=0)
Nonblocking send in buffered mode
- improbe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Nonblocking test for a matched message
- iprobe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Nonblocking test for a message
- irecv(buf=None, source=ANY_SOURCE, tag=ANY_TAG)
Nonblocking receive
- isend(obj, dest, tag=0)
Nonblocking send
- issend(obj, dest, tag=0)
Nonblocking send in synchronous mode
- mprobe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Blocking test for a matched message
- probe(source=ANY_SOURCE, tag=ANY_TAG, status=None)
Blocking test for a message
- recv(buf=None, source=ANY_SOURCE, tag=ANY_TAG, status=None)
Receive
- reduce(sendobj, op=SUM, root=0)
Reduce to Root
- sendrecv(sendobj, dest, sendtag=0, recvbuf=None, source=ANY_SOURCE, recvtag=ANY_TAG, status=None)
Send and Receive
- ssend(obj, dest, tag=0)
Send in synchronous mode
Attributes Documentation
- group
communicator group
- info
communicator info
- is_inter
is intercommunicator
- is_intra
is intracommunicator
- is_topo
is a topology communicator
- name
communicator name
- rank
rank of this process in communicator
- size
number of processes in communicator
- topology
communicator topology type