Bamboost
bamboostmpiserial

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
  • COMM_WORLD:SerialComm=SerialComm()

    Global serial communicator instance.

  • COMM_SELF:SerialComm=SerialComm()

    Per-process serial communicator instance (distinct from COMM_WORLD).

  • COMM_NULL:NullComm=NullComm()

    Null communicator sentinel — raises on use.

Classes

SerialComm

Attributes:
  • rank:int=0
  • size:int=1
SerialComm.barrier(self) -> None

No-op in serial mode.

SerialComm.bcast(self, data, root=0)

Identity broadcast — returns data unchanged.

Arguments:
  • data
  • root:int=0
SerialComm.scatter(self, data, root=0)

Identity scatter — returns data unchanged.

Arguments:
  • data
  • root:int=0
SerialComm.gather(self, data, root=0)

Identity gather — returns data unchanged.

Arguments:
  • data
  • root:int=0

Return a single-element list containing data (serial all-gather).

Arguments:
  • data
SerialComm.allreduce(self, data, op=None)

Identity all-reduce — returns data unchanged.

Arguments:
  • data
  • op=None
SerialComm.reduce(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.

Arguments:
  • name:str

On this page