mpi_array.globale.PerAxisRmaHaloUpdater

class mpi_array.globale.PerAxisRmaHaloUpdater(locale_extents, dtype, order, inter_locale_win, dst_buffer)[source]

Bases: mpi_array.globale.CommLogger

Helper class for performing halo data transfer using RMA via MPI windows (mpi4py.MPI.Win objects).

Methods

__init__(locale_extents, dtype, order, ...) Initialise.
calc_halo_updates() Calculates the per-axis halo-region updates for all inter-locale ranks (of the inter_locale_comm).
do_update_halos(halo_updates) Performs the data exchange required to update the halo (ghost) elements of the array buffer dst_buffer.buffer.
update_halos() Performs the data exchange required to update the halo (ghost) elements of the array buffer dst_buffer.buffer.

Attributes

HI Halo “high index” indices.
LO Halo “low index” indices.
dst_buffer A memoryview which provides the buffer into which the halo data is written.
dtype The numpy.dtype of the data to be exchanged in the halo update.
halo_updates The (rank_2_updates_dict, bool_sequence) pair calculated by calc_halo_updates().
locale_extents Sequence of mpi_array.distribution.LocaleExtent objects which define the partitioning of the array.
order Array order str, 'C' for C memory layout.
rank_logger
root_logger