IODA
|
Round robin distribution. More...
#include <RoundRobin.h>
Public Member Functions | |
RoundRobin (const eckit::mpi::Comm &Comm) | |
~RoundRobin () | |
bool | isMyRecord (std::size_t RecNum) const override |
Round-robin selector. More... | |
bool | isDistributed () const override |
![]() | |
Distribution (const eckit::mpi::Comm &Comm) | |
virtual | ~Distribution ()=0 |
Additional Inherited Members | |
![]() | |
const eckit::mpi::Comm & | comm_ |
Local MPI communicator. More... | |
Round robin distribution.
This class implements a round-robin style of distribution which optimzes load balancing.
Definition at line 29 of file RoundRobin.h.
|
explicit |
Definition at line 19 of file RoundRobin.cc.
ioda::RoundRobin::~RoundRobin | ( | ) |
Definition at line 24 of file RoundRobin.cc.
|
inlineoverridevirtual |
Implements ioda::Distribution.
Definition at line 34 of file RoundRobin.h.
|
overridevirtual |
Round-robin selector.
This method distributes observations according to a round-robin scheme. The round-robin scheme simply selects all locations where the modulus of the record number relative to the number of process elements equals the rank of the process element we are running on. This does a good job of distributing the observations evenly across processors which optimizes the load balancing.
[in] | RecNum | Record number, checked if belongs on this process element |
Implements ioda::Distribution.
Definition at line 41 of file RoundRobin.cc.