Class ICommunicator

Inheritance Relationships

Derived Types

Class Documentation

class ICommunicator

Subclassed by marian::DefaultCommunicator, marian::NCCLCommunicator

Public Types

using ForeachFunc = std::function<ReturnType(size_t, size_t, size_t)>
using AccFunc = std::function<void(ReturnType&, ReturnType)>

Public Functions

ICommunicator(const std::vector<Ptr<ExpressionGraph>> &graphs)
virtual ~ICommunicator()
virtual bool foreach(const ForeachFunc<bool> &func, bool parallel = true) const = 0
virtual float foreach(const ForeachFunc<float> &func, AccFunc<float> acc, float init, bool parallel = true) const = 0
virtual void scatterReduceAndResetGrads() const = 0
virtual void allGatherParams() const = 0
virtual void broadcastParams(bool average = false) const = 0
virtual void broadcastShards(const std::vector<Ptr<OptimizerBase>> &opts, bool average = false) const = 0
virtual void scatterState(const io::Item &data, const OptimizerBase::ScatterStateSetFunc &setFn) const = 0
virtual io::Item gatherState(const OptimizerBase::GatherStateGetFunc &getFn) const = 0

Protected Attributes

const std::vector<Ptr<ExpressionGraph>> graphs_