mpi4py.MPI.Comm¶
- class mpi4py.MPI.Comm(comm=None)¶
Bases:
objectCommunicator
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
Sendblocks 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