File SchedulingDecision.h
-
namespace faabric
-
namespace batch_scheduler
Enums
Variables
-
const std::unordered_map<std::string, SchedulingTopologyHint> strToTopologyHint = {{"NONE", SchedulingTopologyHint::NONE}, {"CACHED", SchedulingTopologyHint::CACHED}, {"FORCE_LOCAL", SchedulingTopologyHint::FORCE_LOCAL}, {"NEVER_ALONE", SchedulingTopologyHint::NEVER_ALONE}, {"UNDERFULL", SchedulingTopologyHint::UNDERFULL},}
-
const std::unordered_map<SchedulingTopologyHint, std::string> topologyHintToStr = {{SchedulingTopologyHint::NONE, "NONE"}, {SchedulingTopologyHint::CACHED, "CACHED"}, {SchedulingTopologyHint::FORCE_LOCAL, "FORCE_LOCAL"}, {SchedulingTopologyHint::NEVER_ALONE, "NEVER_ALONE"}, {SchedulingTopologyHint::UNDERFULL, "UNDERFULL"},}
-
class SchedulingDecision
Public Functions
-
SchedulingDecision(uint32_t appIdIn, int32_t groupIdIn)
-
bool operator==(const SchedulingDecision &rhs) const = default
-
bool isSingleHost() const
Work out if this decision is all in one host. If the decision is completely on another host, we still count it as not being on a single host, as this host will be the main.
Will always return false if single host optimisations are switched off.
-
void addMessage(const std::string &host, const faabric::Message &msg)
-
void addMessage(const std::string &host, int32_t messageId, int32_t appIdx)
-
void addMessage(const std::string &host, int32_t messageId, int32_t appIdx, int32_t groupIdx)
-
void addMessageInPosition(int32_t pos, const std::string &host, int32_t messageId, int32_t appIdx, int32_t groupIdx, int32_t mpiPort)
-
int32_t removeMessage(int32_t messageId)
-
std::set<std::string> uniqueHosts()
-
void print(const std::string &logLevel = "debug")
Public Members
-
uint32_t appId = 0
-
int32_t groupId = 0
-
int32_t nFunctions = 0
-
std::vector<std::string> hosts
-
std::vector<int32_t> messageIds
-
std::vector<int32_t> appIdxs
-
std::vector<int32_t> groupIdxs
-
std::vector<int32_t> mpiPorts
-
std::string returnHost
Public Static Functions
-
static SchedulingDecision fromPointToPointMappings(faabric::PointToPointMappings &mappings)
-
SchedulingDecision(uint32_t appIdIn, int32_t groupIdIn)
-
const std::unordered_map<std::string, SchedulingTopologyHint> strToTopologyHint = {{"NONE", SchedulingTopologyHint::NONE}, {"CACHED", SchedulingTopologyHint::CACHED}, {"FORCE_LOCAL", SchedulingTopologyHint::FORCE_LOCAL}, {"NEVER_ALONE", SchedulingTopologyHint::NEVER_ALONE}, {"UNDERFULL", SchedulingTopologyHint::UNDERFULL},}
-
namespace batch_scheduler