action->latCurrent_ = action->latency_;
action->latency_ *= latencyFactor(size);
action->rate_ = bandwidthConstraint(action->rate_, bandwidth_bound, size);
- if (haveGap_) {
- xbt_assert(not route->empty(),
- "Using a model with a gap (e.g., SMPI) with a platform without links (e.g. vivaldi)!!!");
-
- gapAppend(size, route->at(0), action);
- XBT_DEBUG("Comm %p: %s -> %s gap=%f (lat=%f)", action, src->getCname(), dst->getCname(), action->senderGap_,
- action->latency_);
- }
int constraints_per_variable = route->size();
if (back_route != nullptr)
return action;
}
-void NetworkCm02Model::gapAppend(double size, const LinkImpl* link, NetworkAction* action){
- // Nothing
-};
-
/************
* Resource *
************/
lastValue_ = lmm_variable_getvalue(getVariable());
}
-void NetworkCm02Link::gapAppend(double size, const LinkImpl* link, NetworkAction* action){
- // Nothing
-};
}
}
void updateActionsStateLazy(double now, double delta) override;
void updateActionsStateFull(double now, double delta) override;
Action* communicate(s4u::Host* src, s4u::Host* dst, double size, double rate) override;
- virtual void gapAppend(double size, const LinkImpl* link, NetworkAction* action);
-
-protected:
- bool haveGap_ = false;
};
/************
void apply_event(tmgr_trace_event_t event, double value) override;
void setBandwidth(double value) override;
void setLatency(double value) override;
- virtual void gapAppend(double size, const LinkImpl* link, NetworkAction* action);
};
/**********
NetworkCm02Action(Model* model, double cost, bool failed) : NetworkAction(model, cost, failed){};
virtual ~NetworkCm02Action() = default;
void updateRemainingLazy(double now) override;
-
-protected:
- double senderGap_;
};
}
}
NetworkIBModel::NetworkIBModel() : NetworkSmpiModel()
{
- haveGap_ = false;
const char* IB_factors_string = xbt_cfg_get_string("smpi/IB-penalty-factors");
std::vector<std::string> radical_elements;
boost::split(radical_elements, IB_factors_string, boost::is_any_of(";"));
-/* Copyright (c) 2013-2015. The SimGrid Team.
+/* Copyright (c) 2013-2017. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
NetworkSmpiModel::NetworkSmpiModel() : NetworkCm02Model()
{
- haveGap_ = true;
}
NetworkSmpiModel::~NetworkSmpiModel() = default;
-/* Copyright (c) 2013-2015. The SimGrid Team.
+/* Copyright (c) 2013-2017. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
NetworkSmpiModel();
~NetworkSmpiModel();
- using NetworkCm02Model::gapAppend; // Explicit about overloaded method (silence Woverloaded-virtual from clang)
double latencyFactor(double size);
double bandwidthFactor(double size);
double bandwidthConstraint(double rate, double bound, double size);