bamboost.mpi.serial
Mock module for mpi4py.MPI to be used when MPI is not available or usage not desired.
Not importing MPI increases launch speed significantly, which is important for CLI
applications.
Used as the default communicator when config.options.mpi is False. Used when MPI is not available or not needed (i.e. not running under an MPI launcher).
Attributes
- SUM=
lambda a, b: a + b - MAX=
max Global serial communicator instance.
Per-process serial communicator instance (distinct from COMM_WORLD).
Null communicator sentinel — raises on use.
Classes
SerialComm
Attributes:
- rank:
int=0 - size:
int=1
(self) -> NoneNo-op in serial mode.
(self, data, root=0)Identity broadcast — returns data unchanged.
Arguments:
- data
- root:
int=0
(self, data, root=0)Identity scatter — returns data unchanged.
Arguments:
- data
- root:
int=0
(self, data, root=0)Identity gather — returns data unchanged.
Arguments:
- data
- root:
int=0
(self, data)Return a single-element list containing data (serial all-gather).
Arguments:
- data
(self, data, op=None)Identity all-reduce — returns data unchanged.
Arguments:
- data
- op=
None
(self, data, op=None, root=0)Identity reduce — returns data unchanged.
Arguments:
- data
- op=
None - root:
int=0
NullComm
Sentinel for COMM_NULL — raises RuntimeError on any attribute access.
In real MPI, COMM_NULL is an invalid communicator handle; attempting to use
it is a programming error. This class makes such errors visible immediately.
(self, name)Arguments:
- name:
str
Bamboost