return rate;
}
+double NetworkModel::shareResourcesFull(double now)
+{
+ NetworkActionPtr action = NULL;
+ ActionListPtr runningActions = surf_network_model->getRunningActionSet();
+ double minRes;
+
+ minRes = shareResourcesMaxMin(runningActions, surf_network_model->p_maxminSystem, surf_network_model->f_networkSolve);
+
+ for(ActionList::iterator it(runningActions->begin()), itend(runningActions->end())
+ ; it != itend ; ++it) {
+ action = static_cast<NetworkActionPtr>(&*it);
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ if (lmm_is_variable_limited_by_latency(action->getVariable())) {
+ action->m_latencyLimited = 1;
+ } else {
+ action->m_latencyLimited = 0;
+ }
+#endif
+ if (action->m_latency > 0) {
+ minRes = (minRes < 0) ? action->m_latency : min(minRes, action->m_latency);
+ }
+ }
+
+ XBT_DEBUG("Min of share resources %f", minRes);
+
+ return minRes;
+}
+
/************
* Resource *
************/
#ifndef SURF_NETWORK_INTERFACE_HPP_
#define SURF_NETWORK_INTERFACE_HPP_
-
/***********
* Classes *
***********/
* @brief NetworkModel constructor
*/
NetworkModel() : Model("network") {
+ f_networkSolve = lmm_solve;
};
/**
* @return The new bandwidth.
*/
virtual double bandwidthConstraint(double rate, double bound, double size);
+ double shareResourcesFull(double now);
bool m_haveGap;
};
surf_network_model = new NetworkSmpiModel();
net_define_callbacks();
xbt_dynar_push(model_list, &surf_network_model);
- //network_solve = lmm_solve;
xbt_cfg_setdefault_double(_sg_cfg_set, "network/sender_gap", 10e-6);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);