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
Distgraphcomm
Distributed graph topology intracommunicator
Errhandler
Error Handler
Exception
Exception
File
File
Graphcomm
General graph topology intracommunicator
Grequest
Generalized request
Group
Group
Info
Info
Intercomm
Intercommunicator
Intracomm
Intracommunicator
Message
Message
Op
Op
Prequest
Persistent request
Request
Request
Status
Status
Topocomm
Topology intracommunicator
Win
Window
memory
Memory
Functions [hide private]
 
Add_error_class()
Add an error class to the known error classes
 
Add_error_code(int errorclass)
Add an error code to an error class
 
Add_error_string(int errorcode, string)
Associate an error string with an error class or errorcode
 
Aint_add(Aint base, Aint disp)
Return the sum of base address and displacement
 
Aint_diff(Aint addr1, Aint addr2)
Return the difference between absolute addresses
 
Alloc_mem(Aint size, Info info=INFO_NULL)
Allocate memory for message passing and RMA
 
Attach_buffer(buf)
Attach a user-provided buffer for sending in buffered mode
 
Close_port(port_name)
Close a port
 
Compute_dims(int nnodes, dims)
Return a balanced distribution of processes per coordinate direction
 
Detach_buffer()
Remove an existing attached buffer
 
Finalize()
Terminate the MPI execution environment
 
Free_mem(mem)
Free memory allocated with Alloc\_mem()
 
Get_address(location)
Get the address of a location in memory
 
Get_error_class(int errorcode)
Convert an error code into an error class
 
Get_error_string(int errorcode)
Return the error string for a given error class or error code
 
Get_library_version()
Obtain the version string of the MPI library
 
Get_processor_name()
Obtain the name of the calling processor
 
Get_version()
Obtain the version number of the MPI standard supported by the implementation as a tuple (version, subversion)
 
Init()
Initialize the MPI execution environment
 
Init_thread(int required=THREAD_MULTIPLE)
Initialize the MPI execution environment
 
Is_finalized()
Indicates whether Finalize has completed
 
Is_initialized()
Indicates whether Init has been called
 
Is_thread_main()
Indicate whether this thread called Init or Init_thread
 
Lookup_name(service_name, info=INFO_NULL)
Lookup a port name given a service name
 
Open_port(Info info=INFO_NULL)
Return an address that can be used to establish connections between groups of MPI processes
 
Pcontrol(int level)
Control profiling
 
Publish_name(service_name, port_name, info=INFO_NULL)
Publish a service name
 
Query_thread()
Return the level of thread support provided by the MPI library
 
Register_datarep(datarep, read_fn, write_fn, extent_fn)
Register user-defined data representations
 
Unpublish_name(service_name, port_name, info=INFO_NULL)
Unpublish a service name
 
Wtick()
Return the resolution of Wtime
 
Wtime()
Return an elapsed time on the calling processor
 
_addressof(arg)
Memory address of the underlying MPI handle
 
_handleof(arg)
Unsigned integer value with the underlying MPI handle
 
_lock_table(Comm comm)
Internal communicator lock table
 
_set_abort_status(status)
Helper for python -m mpi4py.run ...
 
_sizeof(arg)
Size in bytes of the underlying MPI handle
 
_typecode(Datatype datatype)
Map MPI datatype to typecode string
 
get_vendor()
Infomation about the underlying MPI implementation
Variables [hide private]
  AINT = <mpi4py.MPI.Datatype object at 0x7fb10d9841c8>
  ANY_SOURCE = -2
  ANY_TAG = -1
  APPNUM = 1681915917
  BAND = <mpi4py.MPI.Op object at 0x7fb1008d64b8>
  BOOL = <mpi4py.MPI.Datatype object at 0x7fb10d984378>
  BOR = <mpi4py.MPI.Op object at 0x7fb1008d64e0>
  BOTTOM = 0
  BSEND_OVERHEAD = 96
  BXOR = <mpi4py.MPI.Op object at 0x7fb1008d6580>
  BYTE = <mpi4py.MPI.Datatype object at 0x7fb10d9841b0>
  CART = 2
  CHAR = <mpi4py.MPI.Datatype object at 0x7fb10d984210>
  CHARACTER = <mpi4py.MPI.Datatype object at 0x7fb10d9845a0>
  COMBINER_CONTIGUOUS = 3
  COMBINER_DARRAY = 14
  COMBINER_DUP = 2
  COMBINER_F90_COMPLEX = 16
  COMBINER_F90_INTEGER = 17
  COMBINER_F90_REAL = 15
  COMBINER_HINDEXED = 9
  COMBINER_HINDEXED_BLOCK = 19
  COMBINER_HVECTOR = 6
  COMBINER_INDEXED = 7
  COMBINER_INDEXED_BLOCK = 10
  COMBINER_NAMED = 1
  COMBINER_RESIZED = 18
  COMBINER_STRUCT = 12
  COMBINER_SUBARRAY = 13
  COMBINER_VECTOR = 4
  COMM_NULL = <mpi4py.MPI.Comm object at 0x7fb10d984840>
  COMM_SELF = <mpi4py.MPI.Intracomm object at 0x7fb10d984858>
  COMM_TYPE_SHARED = 1
  COMM_WORLD = <mpi4py.MPI.Intracomm object at 0x7fb10d984870>
  COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984618>
  COMPLEX16 = <mpi4py.MPI.Datatype object at 0x7fb10d9847b0>
  COMPLEX32 = <mpi4py.MPI.Datatype object at 0x7fb10d9847c8>
  COMPLEX4 = <mpi4py.MPI.Datatype object at 0x7fb10d984780>
  COMPLEX8 = <mpi4py.MPI.Datatype object at 0x7fb10d984798>
  CONGRUENT = 1
  COUNT = <mpi4py.MPI.Datatype object at 0x7fb10d9841f8>
  CXX_BOOL = <mpi4py.MPI.Datatype object at 0x7fb10d9844b0>
  CXX_DOUBLE_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d98...
  CXX_FLOAT_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984...
  CXX_LONG_DOUBLE_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb...
  C_BOOL = <mpi4py.MPI.Datatype object at 0x7fb10d984378>
  C_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984450>
  C_DOUBLE_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984480>
  C_FLOAT_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984468>
  C_LONG_DOUBLE_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10...
  DATATYPE_NULL = <mpi4py.MPI.Datatype object at 0x7fb10d984150>
  DISPLACEMENT_CURRENT = -54278278
  DISP_CUR = -54278278
  DISTRIBUTE_BLOCK = 121
  DISTRIBUTE_CYCLIC = 122
  DISTRIBUTE_DFLT_DARG = -49767
  DISTRIBUTE_NONE = 123
  DIST_GRAPH = 3
  DOUBLE = <mpi4py.MPI.Datatype object at 0x7fb10d984348>
  DOUBLE_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984630>
  DOUBLE_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984570>
  DOUBLE_PRECISION = <mpi4py.MPI.Datatype object at 0x7fb10d984600>
  ERRHANDLER_NULL = <mpi4py.MPI.Errhandler object at 0x7fb10d984...
  ERRORS_ARE_FATAL = <mpi4py.MPI.Errhandler object at 0x7fb10d98...
  ERRORS_RETURN = <mpi4py.MPI.Errhandler object at 0x7fb10d984120>
  ERR_ACCESS = 20
  ERR_AMODE = 21
  ERR_ARG = 12
  ERR_ASSERT = 53
  ERR_BAD_FILE = 22
  ERR_BASE = 46
  ERR_BUFFER = 1
  ERR_COMM = 5
  ERR_CONVERSION = 23
  ERR_COUNT = 2
  ERR_DIMS = 11
  ERR_DISP = 52
  ERR_DUP_DATAREP = 24
  ERR_FILE = 27
  ERR_FILE_EXISTS = 25
  ERR_FILE_IN_USE = 26
  ERR_GROUP = 8
  ERR_INFO = 28
  ERR_INFO_KEY = 29
  ERR_INFO_NOKEY = 31
  ERR_INFO_VALUE = 30
  ERR_INTERN = 16
  ERR_IN_STATUS = 17
  ERR_IO = 32
  ERR_KEYVAL = 48
  ERR_LASTCODE = 1073741823
  ERR_LOCKTYPE = 47
  ERR_NAME = 33
  ERR_NOT_SAME = 35
  ERR_NO_MEM = 34
  ERR_NO_SPACE = 36
  ERR_NO_SUCH_FILE = 37
  ERR_OP = 9
  ERR_OTHER = 15
  ERR_PENDING = 18
  ERR_PORT = 38
  ERR_QUOTA = 39
  ERR_RANK = 6
  ERR_READ_ONLY = 40
  ERR_REQUEST = 19
  ERR_RMA_ATTACH = 56
  ERR_RMA_CONFLICT = 49
  ERR_RMA_FLAVOR = 58
  ERR_RMA_RANGE = 55
  ERR_RMA_SHARED = 57
  ERR_RMA_SYNC = 50
  ERR_ROOT = 7
  ERR_SERVICE = 41
  ERR_SIZE = 51
  ERR_SPAWN = 42
  ERR_TAG = 4
  ERR_TOPOLOGY = 10
  ERR_TRUNCATE = 14
  ERR_TYPE = 3
  ERR_UNKNOWN = 13
  ERR_UNSUPPORTED_DATAREP = 43
  ERR_UNSUPPORTED_OPERATION = 44
  ERR_WIN = 45
  FILE_NULL = <mpi4py.MPI.File object at 0x7fb10d9850b0>
  FLOAT = <mpi4py.MPI.Datatype object at 0x7fb10d984330>
  FLOAT_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984558>
  F_BOOL = <mpi4py.MPI.Datatype object at 0x7fb10d9845b8>
  F_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984618>
  F_DOUBLE = <mpi4py.MPI.Datatype object at 0x7fb10d984600>
  F_DOUBLE_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984630>
  F_FLOAT = <mpi4py.MPI.Datatype object at 0x7fb10d9845e8>
  F_FLOAT_COMPLEX = <mpi4py.MPI.Datatype object at 0x7fb10d984618>
  F_INT = <mpi4py.MPI.Datatype object at 0x7fb10d9845d0>
  GRAPH = 1
  GROUP_EMPTY = <mpi4py.MPI.Group object at 0x7fb10d984828>
  GROUP_NULL = <mpi4py.MPI.Group object at 0x7fb10d984810>
  HOST = 1681915907
  IDENT = 0
  INFO_ENV = <mpi4py.MPI.Info object at 0x7fb10d9847f8>
  INFO_NULL = <mpi4py.MPI.Info object at 0x7fb10d9847e0>
  INT = <mpi4py.MPI.Datatype object at 0x7fb10d984270>
  INT16_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843a8>
  INT32_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843c0>
  INT64_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843d8>
  INT8_T = <mpi4py.MPI.Datatype object at 0x7fb10d984390>
  INTEGER = <mpi4py.MPI.Datatype object at 0x7fb10d9845d0>
  INTEGER1 = <mpi4py.MPI.Datatype object at 0x7fb10d9846a8>
  INTEGER16 = <mpi4py.MPI.Datatype object at 0x7fb10d984708>
  INTEGER2 = <mpi4py.MPI.Datatype object at 0x7fb10d9846c0>
  INTEGER4 = <mpi4py.MPI.Datatype object at 0x7fb10d9846d8>
  INTEGER8 = <mpi4py.MPI.Datatype object at 0x7fb10d9846f0>
  INT_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984528>
  IN_PLACE = -1
  IO = 1681915909
  KEYVAL_INVALID = 603979776
  LAND = <mpi4py.MPI.Op object at 0x7fb1008d6490>
  LASTUSEDCODE = 1681915915
  LB = <mpi4py.MPI.Datatype object at 0x7fb10d984180>
  LOCK_EXCLUSIVE = 234
  LOCK_SHARED = 235
  LOGICAL = <mpi4py.MPI.Datatype object at 0x7fb10d9845b8>
  LOGICAL1 = <mpi4py.MPI.Datatype object at 0x7fb10d984648>
  LOGICAL2 = <mpi4py.MPI.Datatype object at 0x7fb10d984660>
  LOGICAL4 = <mpi4py.MPI.Datatype object at 0x7fb10d984678>
  LOGICAL8 = <mpi4py.MPI.Datatype object at 0x7fb10d984690>
  LONG = <mpi4py.MPI.Datatype object at 0x7fb10d984288>
  LONG_DOUBLE = <mpi4py.MPI.Datatype object at 0x7fb10d984360>
  LONG_DOUBLE_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984588>
  LONG_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984540>
  LONG_LONG = <mpi4py.MPI.Datatype object at 0x7fb10d9842a0>
  LOR = <mpi4py.MPI.Op object at 0x7fb1008d6238>
  LXOR = <mpi4py.MPI.Op object at 0x7fb1008d6558>
  MAX = <mpi4py.MPI.Op object at 0x7fb1008d63f0>
  MAXLOC = <mpi4py.MPI.Op object at 0x7fb1008d65d0>
  MAX_DATAREP_STRING = 128
  MAX_ERROR_STRING = 512
  MAX_INFO_KEY = 255
  MAX_INFO_VAL = 1024
  MAX_LIBRARY_VERSION_STRING = 8192
  MAX_OBJECT_NAME = 128
  MAX_PORT_NAME = 256
  MAX_PROCESSOR_NAME = 128
  MESSAGE_NO_PROC = <mpi4py.MPI.Message object at 0x7fb1008e02d0>
  MESSAGE_NULL = <mpi4py.MPI.Message object at 0x7fb1008e0290>
  MIN = <mpi4py.MPI.Op object at 0x7fb1008d6418>
  MINLOC = <mpi4py.MPI.Op object at 0x7fb1008d65a8>
  MODE_APPEND = 128
  MODE_CREATE = 1
  MODE_DELETE_ON_CLOSE = 16
  MODE_EXCL = 64
  MODE_NOCHECK = 1024
  MODE_NOPRECEDE = 8192
  MODE_NOPUT = 4096
  MODE_NOSTORE = 2048
  MODE_NOSUCCEED = 16384
  MODE_RDONLY = 2
  MODE_RDWR = 8
  MODE_SEQUENTIAL = 256
  MODE_UNIQUE_OPEN = 32
  MODE_WRONLY = 4
  NO_OP = <mpi4py.MPI.Op object at 0x7fb1008d6620>
  OFFSET = <mpi4py.MPI.Datatype object at 0x7fb10d9841e0>
  OP_NULL = <mpi4py.MPI.Op object at 0x7fb1008d63c8>
  ORDER_C = 56
  ORDER_F = 57
  ORDER_FORTRAN = 57
  PACKED = <mpi4py.MPI.Datatype object at 0x7fb10d984198>
  PROC_NULL = -1
  PROD = <mpi4py.MPI.Op object at 0x7fb1008d6468>
  REAL = <mpi4py.MPI.Datatype object at 0x7fb10d9845e8>
  REAL16 = <mpi4py.MPI.Datatype object at 0x7fb10d984768>
  REAL2 = <mpi4py.MPI.Datatype object at 0x7fb10d984720>
  REAL4 = <mpi4py.MPI.Datatype object at 0x7fb10d984738>
  REAL8 = <mpi4py.MPI.Datatype object at 0x7fb10d984750>
  REPLACE = <mpi4py.MPI.Op object at 0x7fb1008d65f8>
  REQUEST_NULL = <mpi4py.MPI.Request object at 0x7fb1008e0250>
  ROOT = -3
  SEEK_CUR = 602
  SEEK_END = 604
  SEEK_SET = 600
  SHORT = <mpi4py.MPI.Datatype object at 0x7fb10d984258>
  SHORT_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984510>
  SIGNED_CHAR = <mpi4py.MPI.Datatype object at 0x7fb10d984240>
  SIGNED_INT = <mpi4py.MPI.Datatype object at 0x7fb10d984270>
  SIGNED_LONG = <mpi4py.MPI.Datatype object at 0x7fb10d984288>
  SIGNED_LONG_LONG = <mpi4py.MPI.Datatype object at 0x7fb10d9842a0>
  SIGNED_SHORT = <mpi4py.MPI.Datatype object at 0x7fb10d984258>
  SIMILAR = 2
  SINT16_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843a8>
  SINT32_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843c0>
  SINT64_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843d8>
  SINT8_T = <mpi4py.MPI.Datatype object at 0x7fb10d984390>
  SUBVERSION = 1
  SUCCESS = 0
  SUM = <mpi4py.MPI.Op object at 0x7fb1008d6440>
  TAG_UB = 1681915905
  THREAD_FUNNELED = 1
  THREAD_MULTIPLE = 3
  THREAD_SERIALIZED = 2
  THREAD_SINGLE = 0
  TWOINT = <mpi4py.MPI.Datatype object at 0x7fb10d984528>
  TYPECLASS_COMPLEX = 3
  TYPECLASS_INTEGER = 2
  TYPECLASS_REAL = 1
  UB = <mpi4py.MPI.Datatype object at 0x7fb10d984168>
  UINT16_T = <mpi4py.MPI.Datatype object at 0x7fb10d984408>
  UINT32_T = <mpi4py.MPI.Datatype object at 0x7fb10d984420>
  UINT64_T = <mpi4py.MPI.Datatype object at 0x7fb10d984438>
  UINT8_T = <mpi4py.MPI.Datatype object at 0x7fb10d9843f0>
  UNDEFINED = -32766
  UNEQUAL = 3
  UNIVERSE_SIZE = 1681915913
  UNSIGNED = <mpi4py.MPI.Datatype object at 0x7fb10d9842e8>
  UNSIGNED_CHAR = <mpi4py.MPI.Datatype object at 0x7fb10d9842b8>
  UNSIGNED_INT = <mpi4py.MPI.Datatype object at 0x7fb10d9842e8>
  UNSIGNED_LONG = <mpi4py.MPI.Datatype object at 0x7fb10d984300>
  UNSIGNED_LONG_LONG = <mpi4py.MPI.Datatype object at 0x7fb10d98...
  UNSIGNED_SHORT = <mpi4py.MPI.Datatype object at 0x7fb10d9842d0>
  UNWEIGHTED = 140398193181888
  VERSION = 3
  WCHAR = <mpi4py.MPI.Datatype object at 0x7fb10d984228>
  WEIGHTS_EMPTY = 140398193181884
  WIN_BASE = 1711276033
  WIN_CREATE_FLAVOR = 1711276039
  WIN_DISP_UNIT = 1711276037
  WIN_FLAVOR = 1711276039
  WIN_FLAVOR_ALLOCATE = 2
  WIN_FLAVOR_CREATE = 1
  WIN_FLAVOR_DYNAMIC = 3
  WIN_FLAVOR_SHARED = 4
  WIN_MODEL = 1711276041
  WIN_NULL = <mpi4py.MPI.Win object at 0x7fb1008e0310>
  WIN_SEPARATE = 1
  WIN_SIZE = 1711276035
  WIN_UNIFIED = 2
  WTIME_IS_GLOBAL = 1681915911
  __pyx_capi__ = {'PyMPIComm_Get': <capsule object "MPI_Comm *(P...
  _keyval_registry = {'Comm': {}, 'Datatype': {}, 'Win': {}}
  _typedict = {'?': <mpi4py.MPI.Datatype object at 0x7fb10d98437...
  _typedict_c = {'?': <mpi4py.MPI.Datatype object at 0x7fb10d984...
  _typedict_f = {'?': <mpi4py.MPI.Datatype object at 0x7fb10d984...
  pickle = <mpi4py.MPI.Pickle object at 0x7fb1008d5870>
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)

Variables Details [hide private]

CXX_DOUBLE_COMPLEX

Value:
<mpi4py.MPI.Datatype object at 0x7fb10d9844e0>

CXX_FLOAT_COMPLEX

Value:
<mpi4py.MPI.Datatype object at 0x7fb10d9844c8>

CXX_LONG_DOUBLE_COMPLEX

Value:
<mpi4py.MPI.Datatype object at 0x7fb10d9844f8>

C_LONG_DOUBLE_COMPLEX

Value:
<mpi4py.MPI.Datatype object at 0x7fb10d984498>

ERRHANDLER_NULL

Value:
<mpi4py.MPI.Errhandler object at 0x7fb10d984108>

ERRORS_ARE_FATAL

Value:
<mpi4py.MPI.Errhandler object at 0x7fb10d984138>

UNSIGNED_LONG_LONG

Value:
<mpi4py.MPI.Datatype object at 0x7fb10d984318>

__pyx_capi__

Value:
{'PyMPIComm_Get': <capsule object "MPI_Comm *(PyObject *)" at 0x7fb10d\
8eede0>,
 'PyMPIComm_New': <capsule object "PyObject *(MPI_Comm)" at 0x7fb10d8e\
edb0>,
 'PyMPIDatatype_Get': <capsule object "MPI_Datatype *(PyObject *)" at \
0x7fb10d8eeae0>,
 'PyMPIDatatype_New': <capsule object "PyObject *(MPI_Datatype)" at 0x\
7fb10d8eeab0>,
...

_typedict

Value:
{'?': <mpi4py.MPI.Datatype object at 0x7fb10d984378>,
 'B': <mpi4py.MPI.Datatype object at 0x7fb10d9842b8>,
 'D': <mpi4py.MPI.Datatype object at 0x7fb10d984480>,
 'F': <mpi4py.MPI.Datatype object at 0x7fb10d984468>,
 'G': <mpi4py.MPI.Datatype object at 0x7fb10d984498>,
 'H': <mpi4py.MPI.Datatype object at 0x7fb10d9842d0>,
 'I': <mpi4py.MPI.Datatype object at 0x7fb10d9842e8>,
 'L': <mpi4py.MPI.Datatype object at 0x7fb10d984300>,
...

_typedict_c

Value:
{'?': <mpi4py.MPI.Datatype object at 0x7fb10d984378>,
 'B': <mpi4py.MPI.Datatype object at 0x7fb10d9842b8>,
 'D': <mpi4py.MPI.Datatype object at 0x7fb10d984480>,
 'F': <mpi4py.MPI.Datatype object at 0x7fb10d984468>,
 'G': <mpi4py.MPI.Datatype object at 0x7fb10d984498>,
 'H': <mpi4py.MPI.Datatype object at 0x7fb10d9842d0>,
 'I': <mpi4py.MPI.Datatype object at 0x7fb10d9842e8>,
 'L': <mpi4py.MPI.Datatype object at 0x7fb10d984300>,
...

_typedict_f

Value:
{'?': <mpi4py.MPI.Datatype object at 0x7fb10d9845b8>,
 'c': <mpi4py.MPI.Datatype object at 0x7fb10d984618>,
 'c16': <mpi4py.MPI.Datatype object at 0x7fb10d9847b0>,
 'c32': <mpi4py.MPI.Datatype object at 0x7fb10d9847c8>,
 'c8': <mpi4py.MPI.Datatype object at 0x7fb10d984798>,
 'd': <mpi4py.MPI.Datatype object at 0x7fb10d984600>,
 'i': <mpi4py.MPI.Datatype object at 0x7fb10d9845d0>,
 'i1': <mpi4py.MPI.Datatype object at 0x7fb10d9846a8>,
...