X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d7fe15f62820f53f48d0f894212373fac36e449b..005253020c596252eb3840d645b2077727978795:/src/surf/network_constant.c diff --git a/src/surf/network_constant.c b/src/surf/network_constant.c index 37a22b3cae..59c6ccbfe0 100644 --- a/src/surf/network_constant.c +++ b/src/surf/network_constant.c @@ -10,6 +10,7 @@ #include "xbt/str.h" #include "xbt/log.h" +#define CONSTANT_VALUE 1.0 typedef struct network_card_Constant { char *name; int id; @@ -436,10 +437,6 @@ static void update_actions_state(double now, double delta) surf_action_network_Constant_t next_action = NULL; xbt_swag_t running_actions = surf_network_model->common_public->states.running_action_set; - /* - xbt_swag_t failed_actions = - surf_network_model->common_public->states.failed_action_set; - */ xbt_swag_foreach_safe(action, next_action, running_actions) { deltap = delta; @@ -451,41 +448,20 @@ static void update_actions_state(double now, double delta) double_update(&(deltap), action->latency); action->latency = 0.0; } - if ((action->latency == 0.0) && !(action->suspended)) - lmm_update_variable_weight(network_maxmin_system, action->variable, - action->lat_current); } double_update(&(action->generic_action.remains), - lmm_variable_getvalue(action->variable) * deltap); + action->generic_action.cost * deltap/ CONSTANT_VALUE); if (action->generic_action.max_duration != NO_MAX_DURATION) double_update(&(action->generic_action.max_duration), delta); - /* if(action->generic_action.remains<.00001) action->generic_action.remains=0; */ - - if ((action->generic_action.remains <= 0) && - (lmm_get_variable_weight(action->variable) > 0)) { + if (action->generic_action.remains <= 0) { action->generic_action.finish = surf_get_clock(); action_change_state((surf_action_t) action, SURF_ACTION_DONE); } else if ((action->generic_action.max_duration != NO_MAX_DURATION) && (action->generic_action.max_duration <= 0)) { action->generic_action.finish = surf_get_clock(); action_change_state((surf_action_t) action, SURF_ACTION_DONE); - } else { /* Need to check that none of the model has failed */ - lmm_constraint_t cnst = NULL; - int i = 0; - link_Constant_t nw_link = NULL; - - while ((cnst = - lmm_get_cnst_from_var(network_maxmin_system, - action->variable, i++))) { - nw_link = lmm_constraint_id(cnst); - if (nw_link->state_current == SURF_LINK_OFF) { - action->generic_action.finish = surf_get_clock(); - action_change_state((surf_action_t) action, SURF_ACTION_FAILED); - break; - } - } - } + } } return; @@ -548,23 +524,10 @@ static surf_action_t communicate(void *src, void *dst, double size, double rate) { surf_action_network_Constant_t action = NULL; - /* LARGE PLATFORMS HACK: - Add a link_Constant_t *link and a int link_nb to network_card_Constant_t. It will represent local links for this node - Use the cluster_id for ->id */ network_card_Constant_t card_src = src; network_card_Constant_t card_dst = dst; - int route_size = ROUTE_SIZE(card_src->id, card_dst->id); - link_Constant_t *route = ROUTE(card_src->id, card_dst->id); - /* LARGE PLATFORMS HACK: - total_route_size = route_size + src->link_nb + dst->nb */ - int i; XBT_IN4("(%s,%s,%g,%g)", card_src->name, card_dst->name, size, rate); - /* LARGE PLATFORMS HACK: - assert on total_route_size */ - xbt_assert2(route_size, - "You're trying to send data from %s to %s but there is no connexion between these two cards.", - card_src->name, card_dst->name); action = xbt_new0(s_surf_action_network_Constant_t, 1); @@ -583,52 +546,9 @@ static surf_action_t communicate(void *src, void *dst, double size, xbt_swag_insert(action, action->generic_action.state_set); action->rate = rate; - action->latency = 0.0; - for (i = 0; i < route_size; i++) - action->latency += route[i]->lat_current; - /* LARGE PLATFORMS HACK: - Add src->link and dst->link latencies */ + action->latency = CONSTANT_VALUE; action->lat_current = action->latency; - /* LARGE PLATFORMS HACK: - lmm_variable_new(..., total_route_size)*/ - if (action->latency > 0) - action->variable = - lmm_variable_new(network_maxmin_system, action, 0.0, -1.0, - route_size); - else - action->variable = - lmm_variable_new(network_maxmin_system, action, 1.0, -1.0, - route_size); - - if (action->rate < 0) { - if (action->lat_current > 0) - lmm_update_variable_bound(network_maxmin_system, action->variable, - SG_TCP_CTE_GAMMA / (2.0 * - action->lat_current)); - else - lmm_update_variable_bound(network_maxmin_system, action->variable, - -1.0); - } else { - if (action->lat_current > 0) - lmm_update_variable_bound(network_maxmin_system, action->variable, - min(action->rate, - SG_TCP_CTE_GAMMA / (2.0 * - action-> - lat_current))); - else - lmm_update_variable_bound(network_maxmin_system, action->variable, - action->rate); - } - lmm_update_variable_latency(network_maxmin_system, action->variable, - action->latency); - - for (i = 0; i < route_size; i++) - lmm_expand(network_maxmin_system, route[i]->constraint, - action->variable, 1.0); - /* LARGE PLATFORMS HACK: - expand also with src->link and dst->link */ - XBT_OUT; return (surf_action_t) action;