mpi4py
TheMPI for Python package.
TheMessage Passing Interface (MPI) is a standardized and portablemessage-passing system designed to function on a wide variety ofparallel computers. The MPI standard defines the syntax and semanticsof library routines and allows users to write portable programs in themain scientific programming languages (Fortran, C, or C++). Since itsrelease, the MPI specification has become the leading standard formessage-passing libraries for parallel computers.
MPI for Python provides MPI bindings for the Python programminglanguage, allowing any Python program to exploit multiple processors.This package build on the MPI specification and provides an objectoriented interface which closely follows MPI-2 C++ bindings.
Runtime configuration options
- mpi4py.rc
This object has attributes exposing runtime configuration options thatbecome effective at import time of the
MPImodule.
Attributes Summary
Automatic MPI initialization at import | |
Request initialization with thread support | |
Level of thread support to request | |
Automatic MPI finalization at exit | |
Use tree-based reductions for objects | |
Use matched probes to receive objects | |
Default buffer size in bytes for | |
Error handling policy |
Attributes Documentation
- mpi4py.rc.initialize
Automatic MPI initialization at import.
See also
- mpi4py.rc.threads
Request initialization with thread support.
See also
- mpi4py.rc.thread_level
Level of thread support to request.
- Type:
- Default:
"multiple"- Choices:
"multiple","serialized","funneled","single"
See also
- mpi4py.rc.finalize
Automatic MPI finalization at exit.
If set to
None, the value ofmpi4py.rc.initializeis used.See also
- mpi4py.rc.fast_reduce
Use tree-based reductions for objects.
See also
- mpi4py.rc.recv_mprobe
Use matched probes to receive objects.
See also
- mpi4py.rc.irecv_bufsz
Default buffer size in bytes for
irecv().- Type:
- Default:
32768
See also
Added in version 4.0.0.
- mpi4py.rc.errors
Error handling policy.
- Type:
- Default:
"exception"- Choices:
"exception","default","abort","fatal"
See also
Example
MPI for Python features automatic initialization and finalization of the MPIexecution environment. By using thempi4py.rc object, MPI initialization andfinalization can be handled programmatically:
importmpi4pympi4py.rc.initialize=False# do not initialize MPI automaticallympi4py.rc.finalize=False# do not finalize MPI automaticallyfrommpi4pyimportMPI# import the 'MPI' moduleMPI.Init()# manual initialization of the MPI environment...# your finest code here ...MPI.Finalize()# manual finalization of the MPI environment
Environment variables
The following environment variables override the corresponding attributes ofthempi4py.rc andMPI.pickle objects at import time of theMPI module.
Note
For variables of boolean type, accepted values are0 and1(interpreted asFalse andTrue, respectively), and stringsspecifying aYAML boolean value (case-insensitive).
- MPI4PY_RC_INITIALIZE
Whether to automatically initialize MPI at import time of the
mpi4py.MPImodule.See also
Added in version 4.0.0.
- MPI4PY_RC_FINALIZE
Whether to automatically finalize MPI at exit time of the Python process.
See also
Added in version 4.0.0.
- MPI4PY_RC_THREADS
Whether to initialize MPI with thread support.
See also
Added in version 3.1.0.
- MPI4PY_RC_THREAD_LEVEL
- Default:
"multiple"- Choices:
"single","funneled","serialized","multiple"
The level of required thread support.
See also
Added in version 3.1.0.
- MPI4PY_RC_FAST_REDUCE
Whether to use tree-based reductions for objects.
See also
Added in version 3.1.0.
- MPI4PY_RC_RECV_MPROBE
Whether to use matched probes to receive objects.
See also
- MPI4PY_RC_IRECV_BUFSZ
- Type:
- Default:
32768
Default buffer size in bytes for
irecv().See also
Added in version 4.0.0.
- MPI4PY_RC_ERRORS
- Default:
"exception"- Choices:
"exception","default","abort","fatal"
Controls default MPI error handling policy.
See also
Added in version 3.1.0.
- MPI4PY_PICKLE_PROTOCOL
- Type:
- Default:
Controls the default pickle protocol to use when communicating Pythonobjects.
See also
PROTOCOLattribute of theMPI.pickleobject within theMPImodule.Added in version 3.1.0.
- MPI4PY_PICKLE_THRESHOLD
- Type:
- Default:
262144
Controls the default buffer size threshold for switching from in-band toout-of-band buffer handling when using pickle protocol version 5 or higher.
See also
THRESHOLDattribute of theMPI.pickleobject within theMPImodule.Added in version 3.1.2.
Miscellaneous functions
- mpi4py.get_include()
Return the directory in the package that contains header files.
Extension modules that need to compile against mpi4py should usethis function to locate the appropriate include directory. UsingPython distutils (or perhaps NumPy distutils):
importmpi4pyExtension('extension_name',...include_dirs=[...,mpi4py.get_include()])
- Return type:
- mpi4py.get_config()
Return a dictionary with information about MPI.
Changed in version 4.0.0:By default, this function returns an empty dictionary. However,downstream packagers and distributors may alter such behavior.To that end, MPI information must be provided under an
mpisection within a UTF-8 encoded INI-style configuration filempi.cfglocated at the top-level package directory.The configuration file is read and parsed using theconfigparsermodule.