IODA
RoundRobin.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2017-2019 UCAR
3
*
4
* This software is licensed under the terms of the Apache Licence Version 2.0
5
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6
*/
7
8
#ifndef DISTRIBUTION_ROUNDROBIN_H_
9
#define DISTRIBUTION_ROUNDROBIN_H_
10
11
#include <vector>
12
13
#include "eckit/mpi/Comm.h"
14
#include "oops/util/Logger.h"
15
16
#include "ioda/distribution/Distribution.h"
17
18
namespace
ioda
{
19
20
// ---------------------------------------------------------------------
21
/*!
22
* \brief Round robin distribution
23
*
24
* \details This class implements a round-robin style of distribution which
25
* optimzes load balancing.
26
*
27
* \author Xin Zhang (JCSDA)
28
*/
29
class
RoundRobin
:
public
Distribution
{
30
public
:
31
explicit
RoundRobin
(
const
eckit::mpi::Comm & Comm);
32
~RoundRobin
();
33
bool
isMyRecord
(std::size_t RecNum)
const override
;
34
bool
isDistributed
()
const override
{
return
true
; }
35
};
36
37
}
// namespace ioda
38
39
#endif // DISTRIBUTION_ROUNDROBIN_H_
ioda::Distribution
class for distributing obs across multiple process elements
Definition:
src/distribution/Distribution.h:30
ioda
Definition:
IodaUtils.cc:13
ioda::RoundRobin::~RoundRobin
~RoundRobin()
Definition:
RoundRobin.cc:24
ioda::RoundRobin::isMyRecord
bool isMyRecord(std::size_t RecNum) const override
Round-robin selector.
Definition:
RoundRobin.cc:41
ioda::RoundRobin::RoundRobin
RoundRobin(const eckit::mpi::Comm &Comm)
Definition:
RoundRobin.cc:19
ioda::RoundRobin
Round robin distribution.
Definition:
RoundRobin.h:29
ioda::RoundRobin::isDistributed
bool isDistributed() const override
Definition:
RoundRobin.h:34
fv3-bundle
ioda
src
distribution
RoundRobin.h
Generated on Sat Oct 24 2020 18:46:40 for IODA by
1.8.18