mpi4py.MPI

Package mpi4py :: Module MPI |
[hide private]
[frames] | no frames]

# Module MPI

Message Passing Interface.

Classes | [hide private]
| Cartcomm Cartesian topology intracommunicator
| Comm Communicator
| Datatype Datatype object
| Distgraphcomm Distributed graph topology intracommunicator
| Errhandler Error handler
| Exception Exception class
| File File handle
| Graphcomm General graph topology intracommunicator
| Grequest Generalized request handle
| Group Group of processes
| Info Info object
| Intercomm Intercommunicator
| Intracomm Intracommunicator
| Message Matched message handle
| Op Operation object
| Pickle Pickle(dumps: Optional[Callable[[Any, int], bytes]] = None, loads: Optional[Callable[[Buffer], Any]] = None, protocol: Optional[int] = None) -> None
| Prequest Persistent request handle
| Request Request handle
| Status Status object
| Topocomm Topology intracommunicator
| Win Window handle
| memory Memory buffer

Functions | [hide private]
int |
Add_error_class() Add an error class to the known error classes |
int |
Add_error_code(errorclass: int) Add an error code to an error class |
None |
Add_error_string(errorcode: int, string: str) Associate an error string with an error class or errorcode |
int |
Aint_add(base: int, disp: int) Return the sum of base address and displacement |
int |
Aint_diff(addr1: int, addr2: int) Return the difference between absolute addresses |
memory |
Alloc_mem(size: int, info: Info= INFO_NULL) Allocate memory for message passing and RMA |
None |
Attach_buffer(buf: Buffer) Attach a user-provided buffer for sending in buffered mode |
None |
Close_port(port_name: str) Close a port |
List[int] |
Compute_dims(nnodes: int, dims: Unionint=..., Sequenceint=...) Return a balanced distribution of processes per coordinate direction |
Buffer |
Detach_buffer() Remove an existing attached buffer |
None |
Finalize() Terminate the MPI execution environment |
None |
Free_mem(mem: memory) Free memory allocated with Alloc_mem() |
int |
Get_address(location: UnionBuffer=..., Bottom=...) Get the address of a location in memory |
int |
Get_error_class(errorcode: int) Convert an error code into an error class |
str |
Get_error_string(errorcode: int) Return the error string for a given error class or error code |
str |
Get_library_version() Obtain the version string of the MPI library |
str |
Get_processor_name() Obtain the name of the calling processor |
Tuple[int, int] |
Get_version() Obtain the version number of the MPI standard supported by the implementation as a tuple `(version, subversion)` |
None |
Init() Initialize the MPI execution environment |
int |
Init_thread(required: int= THREAD_MULTIPLE) Initialize the MPI execution environment |
bool |
Is_finalized() Indicates whether Finalize has completed |
bool |
Is_initialized() Indicates whether Init has been called |
bool |
Is_thread_main() Indicate whether this thread called Init or Init_thread |
str |
Lookup_name(service_name: str, info: Info= INFO_NULL) Lookup a port name given a service name |
str |
Open_port(info: Info= INFO_NULL) Return an address that can be used to establish connections between groups of MPI processes |
None |
Pcontrol(level: int) Control profiling |
None |
Publish_name(service_name: str, port_name: str, info: Info= INFO_NULL) Publish a service name |
int |
Query_thread() Return the level of thread support provided by the MPI library |
None |
Register_datarep(datarep: str, read_fn: CallableBuffer=..., Datatype=..., int=..., Buffer=..., int=..., None=..., write_fn: CallableBuffer=..., Datatype=..., int=..., Buffer=..., int=..., None=..., extent_fn: CallableDatatype=..., int=...) Register user-defined data representations |
None |
Unpublish_name(service_name: str, port_name: str, info: Info= INFO_NULL) Unpublish a service name |
float |
Wtick() Return the resolution of Wtime |
float |
Wtime() Return an elapsed time on the calling processor |
int |
_addressof(arg: Any) Memory address of the underlying MPI handle |
Lock |
_comm_lock(comm: Comm, key: Hashable= None) Create/get communicator lock |
Dict[Hashable, Lock] |
_comm_lock_table(comm: Comm) Internal communicator lock table |
Tuple[Intercomm, int, Intracomm, bool] |
_commctx_inter(comm: Intercomm) Create/get intercommunicator duplicate |
Tuple[Intracomm, int] |
_commctx_intra(comm: Intracomm) Create/get intracommunicator duplicate |
int |
_handleof(arg: Any) Unsigned integer value with the underlying MPI handle |
Dict[Hashable, Lock] |
_lock_table(comm: Comm) Internal communicator lock table |
None |
_set_abort_status(status: Any) Helper for `python -m mpi4py.run ...` |
int |
_sizeof(arg: Any) Size in bytes of the underlying MPI handle |
Optional[str] |
_typecode(datatype: Datatype) Map MPI datatype to typecode string |
Tuple[str, Tuple[int, int, int]] |
get_vendor() Infomation about the underlying MPI implementation |

Variables | [hide private]
| AINT = `<mpi4py.MPI.Datatype object at 0x7f5869b7a6e8>`
| ANY_SOURCE = `-32766`
| ANY_TAG = `-32766`
| APPNUM = `0`
| BAND = `<mpi4py.MPI.Op object at 0x7f5869bae0a0>`
| BOOL = `<mpi4py.MPI.Datatype object at 0x7f5869ba0030>`
| BOR = `<mpi4py.MPI.Op object at 0x7f5869bae110>`
| BOTTOM = `BOTTOM`
| BSEND_OVERHEAD = `0`
| BXOR = `<mpi4py.MPI.Op object at 0x7f5869bae180>`
| BYTE = `<mpi4py.MPI.Datatype object at 0x7f5869b7ae18>`
| CART = `-32766`
| CHAR = `<mpi4py.MPI.Datatype object at 0x7f5869b7ae90>`
| CHARACTER = `<mpi4py.MPI.Datatype object at 0x7f5869ba0468>`
| COMBINER_CONTIGUOUS = `-32766`
| COMBINER_DARRAY = `-32766`
| COMBINER_DUP = `-32766`
| COMBINER_F90_COMPLEX = `-32766`
| COMBINER_F90_INTEGER = `-32766`
| COMBINER_F90_REAL = `-32766`
| COMBINER_HINDEXED = `-32766`
| COMBINER_HINDEXED_BLOCK = `-32766`
| COMBINER_HVECTOR = `-32766`
| COMBINER_INDEXED = `-32766`
| COMBINER_INDEXED_BLOCK = `-32766`
| COMBINER_NAMED = `-32766`
| COMBINER_RESIZED = `-32766`
| COMBINER_STRUCT = `-32766`
| COMBINER_SUBARRAY = `-32766`
| COMBINER_VECTOR = `-32766`
| COMM_NULL = `<mpi4py.MPI.Comm object at 0x7f5869ba0918>`
| COMM_SELF = `<mpi4py.MPI.Intracomm object at 0x7f5869ba0940>`
| COMM_TYPE_SHARED = `-32766`
| COMM_WORLD = `<mpi4py.MPI.Intracomm object at 0x7f5869ba0968>`
| COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0530>`
| COMPLEX16 = `<mpi4py.MPI.Datatype object at 0x7f5869ba07b0>`
| COMPLEX32 = `<mpi4py.MPI.Datatype object at 0x7f5869ba07d8>`
| COMPLEX4 = `<mpi4py.MPI.Datatype object at 0x7f5869ba01c0>`
| COMPLEX8 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0788>`
| CONGRUENT = `2`
| COUNT = `<mpi4py.MPI.Datatype object at 0x7f5869b7ae68>`
| CXX_BOOL = `<mpi4py.MPI.Datatype object at 0x7f5869ba02d8>`
| CXX_DOUBLE_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba`...``
| CXX_FLOAT_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0`...``
| CXX_LONG_DOUBLE_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5`...``
| C_BOOL = `<mpi4py.MPI.Datatype object at 0x7f5869ba0030>`
| C_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba01e8>`
| C_DOUBLE_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0288>`
| C_FLOAT_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0238>`
| C_LONG_DOUBLE_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f586`...``
| DATATYPE_NULL = `<mpi4py.MPI.Datatype object at 0x7f5869b7ad00>`
| DISPLACEMENT_CURRENT = `3`
| DISP_CUR = `3`
| DISTRIBUTE_BLOCK = `1`
| DISTRIBUTE_CYCLIC = `2`
| DISTRIBUTE_DFLT_DARG = `4`
| DISTRIBUTE_NONE = `0`
| DIST_GRAPH = `-32766`
| DOUBLE = `<mpi4py.MPI.Datatype object at 0x7f5869b7acd8>`
| DOUBLE_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0558>`
| DOUBLE_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba03f0>`
| DOUBLE_PRECISION = `<mpi4py.MPI.Datatype object at 0x7f5869ba0508>`
| ERRHANDLER_NULL = `<mpi4py.MPI.Errhandler object at 0x7f5869ba0`...``
| ERRORS_ARE_FATAL = `<mpi4py.MPI.Errhandler object at 0x7f5869ba`...``
| ERRORS_RETURN = `<mpi4py.MPI.Errhandler object at 0x7f5869ba08c8>`
| ERR_ACCESS = `1`
| ERR_AMODE = `1`
| ERR_ARG = `1`
| ERR_ASSERT = `1`
| ERR_BAD_FILE = `1`
| ERR_BASE = `1`
| ERR_BUFFER = `1`
| ERR_COMM = `1`
| ERR_CONVERSION = `1`
| ERR_COUNT = `1`
| ERR_DIMS = `1`
| ERR_DISP = `1`
| ERR_DUP_DATAREP = `1`
| ERR_FILE = `1`
| ERR_FILE_EXISTS = `1`
| ERR_FILE_IN_USE = `1`
| ERR_GROUP = `1`
| ERR_INFO = `1`
| ERR_INFO_KEY = `1`
| ERR_INFO_NOKEY = `1`
| ERR_INFO_VALUE = `1`
| ERR_INTERN = `1`
| ERR_IN_STATUS = `1`
| ERR_IO = `1`
| ERR_KEYVAL = `1`
| ERR_LASTCODE = `1`
| ERR_LOCKTYPE = `1`
| ERR_NAME = `1`
| ERR_NOT_SAME = `1`
| ERR_NO_MEM = `1`
| ERR_NO_SPACE = `1`
| ERR_NO_SUCH_FILE = `1`
| ERR_OP = `1`
| ERR_OTHER = `1`
| ERR_PENDING = `1`
| ERR_PORT = `1`
| ERR_QUOTA = `1`
| ERR_RANK = `1`
| ERR_READ_ONLY = `1`
| ERR_REQUEST = `1`
| ERR_RMA_ATTACH = `1`
| ERR_RMA_CONFLICT = `1`
| ERR_RMA_FLAVOR = `1`
| ERR_RMA_RANGE = `1`
| ERR_RMA_SHARED = `1`
| ERR_RMA_SYNC = `1`
| ERR_ROOT = `1`
| ERR_SERVICE = `1`
| ERR_SIZE = `1`
| ERR_SPAWN = `1`
| ERR_TAG = `1`
| ERR_TOPOLOGY = `1`
| ERR_TRUNCATE = `1`
| ERR_TYPE = `1`
| ERR_UNKNOWN = `1`
| ERR_UNSUPPORTED_DATAREP = `1`
| ERR_UNSUPPORTED_OPERATION = `1`
| ERR_WIN = `1`
| FILE_NULL = `<mpi4py.MPI.File object at 0x7f5869ba09b8>`
| FLOAT = `<mpi4py.MPI.Datatype object at 0x7f5869b7ac60>`
| FLOAT_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba03c8>`
| F_BOOL = `<mpi4py.MPI.Datatype object at 0x7f5869ba0440>`
| F_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0530>`
| F_DOUBLE = `<mpi4py.MPI.Datatype object at 0x7f5869ba0508>`
| F_DOUBLE_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0558>`
| F_FLOAT = `<mpi4py.MPI.Datatype object at 0x7f5869ba0490>`
| F_FLOAT_COMPLEX = `<mpi4py.MPI.Datatype object at 0x7f5869ba0530>`
| F_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba0210>`
| GRAPH = `-32766`
| GROUP_EMPTY = `<mpi4py.MPI.Group object at 0x7f5869ba0800>`
| GROUP_NULL = `<mpi4py.MPI.Group object at 0x7f5869ba0828>`
| HOST = `0`
| IDENT = `1`
| INFO_ENV = `<mpi4py.MPI.Info object at 0x7f5869ba0878>`
| INFO_NULL = `<mpi4py.MPI.Info object at 0x7f5869ba0850>`
| INT = `<mpi4py.MPI.Datatype object at 0x7f5869b7af08>`
| INT16_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0080>`
| INT32_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba00a8>`
| INT64_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba00d0>`
| INT8_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0058>`
| INTEGER = `<mpi4py.MPI.Datatype object at 0x7f5869ba0210>`
| INTEGER1 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0648>`
| INTEGER16 = `<mpi4py.MPI.Datatype object at 0x7f5869ba04e0>`
| INTEGER2 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0670>`
| INTEGER4 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0698>`
| INTEGER8 = `<mpi4py.MPI.Datatype object at 0x7f5869ba06c0>`
| INT_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba0378>`
| IN_PLACE = `IN_PLACE`
| IO = `0`
| KEYVAL_INVALID = `0`
| LAND = `<mpi4py.MPI.Op object at 0x7f5869bae068>`
| LASTUSEDCODE = `0`
| LB = `<mpi4py.MPI.Datatype object at 0x7f5869b7adc8>`
| LOCK_EXCLUSIVE = `-32766`
| LOCK_SHARED = `-32766`
| LOGICAL = `<mpi4py.MPI.Datatype object at 0x7f5869ba0440>`
| LOGICAL1 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0580>`
| LOGICAL2 = `<mpi4py.MPI.Datatype object at 0x7f5869ba05a8>`
| LOGICAL4 = `<mpi4py.MPI.Datatype object at 0x7f5869ba05d0>`
| LOGICAL8 = `<mpi4py.MPI.Datatype object at 0x7f5869ba05f8>`
| LONG = `<mpi4py.MPI.Datatype object at 0x7f5869b7af30>`
| LONG_DOUBLE = `<mpi4py.MPI.Datatype object at 0x7f5869b7abe8>`
| LONG_DOUBLE_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba0418>`
| LONG_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba03a0>`
| LONG_LONG = `<mpi4py.MPI.Datatype object at 0x7f5869b7af58>`
| LOR = `<mpi4py.MPI.Op object at 0x7f5869bae0d8>`
| LXOR = `<mpi4py.MPI.Op object at 0x7f5869bae148>`
| MAX = `<mpi4py.MPI.Op object at 0x7f5869b9ef48>`
| MAXLOC = `<mpi4py.MPI.Op object at 0x7f5869bae1b8>`
| MAX_DATAREP_STRING = `1`
| MAX_ERROR_STRING = `1`
| MAX_INFO_KEY = `1`
| MAX_INFO_VAL = `1`
| MAX_LIBRARY_VERSION_STRING = `8`
| MAX_OBJECT_NAME = `1`
| MAX_PORT_NAME = `1`
| MAX_PROCESSOR_NAME = `1`
| MESSAGE_NO_PROC = `<mpi4py.MPI.Message object at 0x7f5869ba6460>`
| MESSAGE_NULL = `<mpi4py.MPI.Message object at 0x7f5869ba6410>`
| MIN = `<mpi4py.MPI.Op object at 0x7f5869b9ef80>`
| MINLOC = `<mpi4py.MPI.Op object at 0x7f5869bae1f0>`
| MODE_APPEND = `128`
| MODE_CREATE = `8`
| MODE_DELETE_ON_CLOSE = `32`
| MODE_EXCL = `16`
| MODE_NOCHECK = `-32766`
| MODE_NOPRECEDE = `-32766`
| MODE_NOPUT = `-32766`
| MODE_NOSTORE = `-32766`
| MODE_NOSUCCEED = `-32766`
| MODE_RDONLY = `1`
| MODE_RDWR = `2`
| MODE_SEQUENTIAL = `256`
| MODE_UNIQUE_OPEN = `64`
| MODE_WRONLY = `4`
| NO_OP = `<mpi4py.MPI.Op object at 0x7f5869bae260>`
| OFFSET = `<mpi4py.MPI.Datatype object at 0x7f5869b7ae40>`
| OP_NULL = `<mpi4py.MPI.Op object at 0x7f5869b9ef10>`
| ORDER_C = `0`
| ORDER_F = `1`
| ORDER_FORTRAN = `1`
| PACKED = `<mpi4py.MPI.Datatype object at 0x7f5869b7adf0>`
| PROC_NULL = `-32766`
| PROD = `<mpi4py.MPI.Op object at 0x7f5869bae030>`
| REAL = `<mpi4py.MPI.Datatype object at 0x7f5869ba0490>`
| REAL16 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0738>`
| REAL2 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0620>`
| REAL4 = `<mpi4py.MPI.Datatype object at 0x7f5869ba06e8>`
| REAL8 = `<mpi4py.MPI.Datatype object at 0x7f5869ba0710>`
| REPLACE = `<mpi4py.MPI.Op object at 0x7f5869bae228>`
| REQUEST_NULL = `<mpi4py.MPI.Request object at 0x7f5869ba63c0>`
| ROOT = `-32766`
| SEEK_CUR = `1`
| SEEK_END = `2`
| SEEK_SET = `0`
| SHORT = `<mpi4py.MPI.Datatype object at 0x7f5869b7aeb8>`
| SHORT_INT = `<mpi4py.MPI.Datatype object at 0x7f5869ba0350>`
| SIGNED_CHAR = `<mpi4py.MPI.Datatype object at 0x7f5869b7ad50>`
| SIGNED_INT = `<mpi4py.MPI.Datatype object at 0x7f5869b7af08>`
| SIGNED_LONG = `<mpi4py.MPI.Datatype object at 0x7f5869b7af30>`
| SIGNED_LONG_LONG = `<mpi4py.MPI.Datatype object at 0x7f5869b7af58>`
| SIGNED_SHORT = `<mpi4py.MPI.Datatype object at 0x7f5869b7aeb8>`
| SIMILAR = `3`
| SINT16_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0080>`
| SINT32_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba00a8>`
| SINT64_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba00d0>`
| SINT8_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0058>`
| SUBVERSION = `0`
| SUCCESS = `0`
| SUM = `<mpi4py.MPI.Op object at 0x7f5869b9efb8>`
| TAG_UB = `0`
| THREAD_FUNNELED = `1`
| THREAD_MULTIPLE = `3`
| THREAD_SERIALIZED = `2`
| THREAD_SINGLE = `0`
| TWOINT = `<mpi4py.MPI.Datatype object at 0x7f5869ba0378>`
| TYPECLASS_COMPLEX = `-32766`
| TYPECLASS_INTEGER = `-32766`
| TYPECLASS_REAL = `-32766`
| UB = `<mpi4py.MPI.Datatype object at 0x7f5869b7ada0>`
| UINT16_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0120>`
| UINT32_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0148>`
| UINT64_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba0198>`
| UINT8_T = `<mpi4py.MPI.Datatype object at 0x7f5869ba00f8>`
| UNDEFINED = `-32766`
| UNEQUAL = `4`
| UNIVERSE_SIZE = `0`
| UNSIGNED = `<mpi4py.MPI.Datatype object at 0x7f5869b7afa8>`
| UNSIGNED_CHAR = `<mpi4py.MPI.Datatype object at 0x7f5869b7af80>`
| UNSIGNED_INT = `<mpi4py.MPI.Datatype object at 0x7f5869b7afa8>`
| UNSIGNED_LONG = `<mpi4py.MPI.Datatype object at 0x7f5869b7afd0>`
| UNSIGNED_LONG_LONG = `<mpi4py.MPI.Datatype object at 0x7f5869b7`...``
| UNSIGNED_SHORT = `<mpi4py.MPI.Datatype object at 0x7f5869b7ad78>`
| UNWEIGHTED = `0`
| VERSION = `1`
| WCHAR = `<mpi4py.MPI.Datatype object at 0x7f5869b7aee0>`
| WEIGHTS_EMPTY = `140017483014456`
| WIN_BASE = `0`
| WIN_CREATE_FLAVOR = `0`
| WIN_DISP_UNIT = `0`
| WIN_FLAVOR = `0`
| WIN_FLAVOR_ALLOCATE = `-32766`
| WIN_FLAVOR_CREATE = `-32766`
| WIN_FLAVOR_DYNAMIC = `-32766`
| WIN_FLAVOR_SHARED = `-32766`
| WIN_MODEL = `0`
| WIN_NULL = `<mpi4py.MPI.Win object at 0x7f5869ba64b0>`
| WIN_SEPARATE = `-32766`
| WIN_SIZE = `0`
| WIN_UNIFIED = `-32766`
| WTIME_IS_GLOBAL = `0`
| __pyx_capi__ = ``{``'``PyMPIComm_Get``'``:` <capsule object "MPI_Comm *(P`...``
| _keyval_registry = ``{``'``Comm``'``:` `{``}``,` `'``Datatype``'``:` `{``}``,` `'``Win``'``:` `{``}``}``
| _typedict = ``{``}``
| _typedict_c = ``{``}``
| _typedict_f = ``{``}``
| pickle = `<mpi4py.MPI.Pickle object at 0x7f5869bac5f0>`

Function Details | [hide private]

### get_vendor() |
Infomation about the underlying MPI implementation Returns: a string with the name of the MPI implementation an integer 3-tuple version `(major, minor, micro)` Returns: Tuple[str, Tuple[int, int, int]]

Variables Details | [hide private]

  ### CXX_DOUBLE_COMPLEX Value:
      <mpi4py.MPI.Datatype object at 0x7f5869ba0328>

  ### CXX_FLOAT_COMPLEX Value:
      <mpi4py.MPI.Datatype object at 0x7f5869ba0260>

  ### CXX_LONG_DOUBLE_COMPLEX Value:
      <mpi4py.MPI.Datatype object at 0x7f5869ba0300>

  ### C_LONG_DOUBLE_COMPLEX Value:
      <mpi4py.MPI.Datatype object at 0x7f5869ba02b0>

  ### ERRHANDLER_NULL Value:
      <mpi4py.MPI.Errhandler object at 0x7f5869ba08a0>

  ### ERRORS_ARE_FATAL Value:
      <mpi4py.MPI.Errhandler object at 0x7f5869ba08f0>

  ### UNSIGNED_LONG_LONG Value:
      <mpi4py.MPI.Datatype object at 0x7f5869b7ad28>

  ### __pyx_capi__ Value:
      {'PyMPIComm_Get': <capsule object "MPI_Comm *(PyObject *)" at 0x7f5869
      b92660>,
       'PyMPIComm_New': <capsule object "PyObject *(MPI_Comm)" at 0x7f5869b9
      2630>,
       'PyMPIDatatype_Get': <capsule object "MPI_Datatype *(PyObject *)" at
      0x7f5869b92300>,
       'PyMPIDatatype_New': <capsule object "PyObject *(MPI_Datatype)" at 0x
      7f5869b922d0>,
      ...