X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3d94612c68def9c6d9d1fddb5ab69411a189540e..51dcb8e712855f3cb16800ddea745ef6fc8d79e9:/src/surf/network.c diff --git a/src/surf/network.c b/src/surf/network.c index 5bc5bab36f..b83aeee980 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -22,6 +22,7 @@ #include "surf/surfxml_parse_values.h" #include "surf/surf_resource.h" #include "surf/surf_resource_lmm.h" +#include "simgrid/sg_config.h" #undef GENERIC_LMM_ACTION #undef GENERIC_ACTION @@ -118,39 +119,42 @@ static double smpi_bandwidth_factor(double size) { if (!smpi_bw_factor) smpi_bw_factor = - parse_factor(xbt_cfg_get_string(_surf_cfg_set, "smpi/bw_factor")); + parse_factor(sg_cfg_get_string("smpi/bw_factor")); unsigned int iter = 0; s_smpi_factor_t fact; - + double current=1.0; xbt_dynar_foreach(smpi_bw_factor, iter, fact) { - if (size < fact.factor) { - XBT_DEBUG("%lf < %ld return %f", size, fact.factor, fact.value); - return fact.value; - } + if (size <= fact.factor) { + XBT_DEBUG("%lf <= %ld return %f", size, fact.factor, current); + return current; + }else + current=fact.value; } + XBT_DEBUG("%lf > %ld return %f", size, fact.factor, current); - return 1.0; + return current; } static double smpi_latency_factor(double size) { if (!smpi_lat_factor) smpi_lat_factor = - parse_factor(xbt_cfg_get_string(_surf_cfg_set, "smpi/lat_factor")); + parse_factor(sg_cfg_get_string("smpi/lat_factor")); unsigned int iter = 0; s_smpi_factor_t fact; - + double current=1.0; xbt_dynar_foreach(smpi_lat_factor, iter, fact) { - if (size < fact.factor) { - XBT_DEBUG("%lf < %ld return %f", size, fact.factor, fact.value); - return fact.value; - } - + if (size <= fact.factor) { + XBT_DEBUG("%lf <= %ld return %f", size, fact.factor, current); + return current; + }else + current=fact.value; } + XBT_DEBUG("%lf > %ld return %f", size, fact.factor, current); - return 1.0; + return current; } /**--------- -----------*/ @@ -672,8 +676,8 @@ static void smpi_gap_append(double size, const link_CM02_t link, { const char *src = link->lmm_resource.generic_resource.name; xbt_fifo_t fifo; - surf_action_network_CM02_t last_action; - double bw; + //surf_action_network_CM02_t last_action; + //double bw; if (sg_sender_gap > 0.0) { if (!gap_lookup) { @@ -683,16 +687,16 @@ static void smpi_gap_append(double size, const link_CM02_t link, action->sender.gap = 0.0; if (fifo && xbt_fifo_size(fifo) > 0) { /* Compute gap from last send */ - last_action = + /*last_action = (surf_action_network_CM02_t) - xbt_fifo_get_item_content(xbt_fifo_get_last_item(fifo)); - bw = net_get_link_bandwidth(link); - action->sender.gap = - max(sg_sender_gap,last_action->sender.size / bw); + xbt_fifo_get_item_content(xbt_fifo_get_last_item(fifo));*/ + // bw = net_get_link_bandwidth(link); + action->sender.gap = sg_sender_gap; + /* max(sg_sender_gap,last_action->sender.size / bw);*/ action->latency += action->sender.gap; } /* Append action as last send */ - action->sender.link_name = link->lmm_resource.generic_resource.name; + /*action->sender.link_name = link->lmm_resource.generic_resource.name; fifo = (xbt_fifo_t) xbt_dict_get_or_null(gap_lookup, action->sender.link_name); @@ -700,7 +704,7 @@ static void smpi_gap_append(double size, const link_CM02_t link, fifo = xbt_fifo_new(); xbt_dict_set(gap_lookup, action->sender.link_name, fifo, NULL); } - action->sender.fifo_item = xbt_fifo_push(fifo, action); + action->sender.fifo_item = xbt_fifo_push(fifo, action);*/ action->sender.size = size; } } @@ -731,9 +735,9 @@ static void smpi_gap_remove(surf_action_lmm_t lmm_action) static void set_update_mechanism(void) { - char *optim = xbt_cfg_get_string(_surf_cfg_set, "network/optim"); + char *optim = xbt_cfg_get_string(_sg_cfg_set, "network/optim"); int select = - xbt_cfg_get_int(_surf_cfg_set, "network/maxmin_selective_update"); + xbt_cfg_get_int(_sg_cfg_set, "network/maxmin_selective_update"); if (!strcmp(optim, "Full")) { surf_network_model->model_private->update_mechanism = UM_FULL; @@ -744,7 +748,7 @@ static void set_update_mechanism(void) xbt_assert((select == 1) || (xbt_cfg_is_default_value - (_surf_cfg_set, "network/maxmin_selective_update")), + (_sg_cfg_set, "network/maxmin_selective_update")), "Disabling selective update while using the lazy update mechanism is dumb!"); } else { xbt_die("Unsupported optimization (%s) for this model", optim); @@ -802,8 +806,6 @@ static void surf_network_model_init_internal(void) net_get_link_latency; surf_network_model->extension.network.link_shared = net_link_shared; surf_network_model->extension.network.add_traces = net_add_traces; - surf_network_model->extension.network.create_resource = - net_create_resource; if (!surf_network_model->model_private->maxmin_system) surf_network_model->model_private->maxmin_system = lmm_system_new(surf_network_model->model_private->selective_update); @@ -852,8 +854,8 @@ void surf_network_model_init_SMPI(void) xbt_dynar_push(model_list, &surf_network_model); network_solve = lmm_solve; - xbt_cfg_setdefault_double(_surf_cfg_set, "network/sender_gap", 10e-6); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/sender_gap", 10e-6); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775); } /************************************************************************/ @@ -880,11 +882,11 @@ void surf_network_model_init_LegrandVelho(void) xbt_dynar_push(model_list, &surf_network_model); network_solve = lmm_solve; - xbt_cfg_setdefault_double(_surf_cfg_set, "network/latency_factor", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 13.01); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.97); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 20537); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 20537); } /***************************************************************************/ @@ -909,10 +911,10 @@ void surf_network_model_init_CM02(void) xbt_dynar_push(model_list, &surf_network_model); network_solve = lmm_solve; - xbt_cfg_setdefault_double(_surf_cfg_set, "network/latency_factor", 1.0); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 1.0); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 1.0); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 0.0); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 0.0); } /***************************************************************************/ @@ -938,10 +940,10 @@ void surf_network_model_init_Reno(void) func_reno_fpi); network_solve = lagrange_solve; - xbt_cfg_setdefault_double(_surf_cfg_set, "network/latency_factor", 10.4); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775); } @@ -958,10 +960,10 @@ void surf_network_model_init_Reno2(void) func_reno2_fpi); network_solve = lagrange_solve; - xbt_cfg_setdefault_double(_surf_cfg_set, "network/latency_factor", 10.4); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S_parameter", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S_parameter", 8775); } @@ -978,8 +980,8 @@ void surf_network_model_init_Vegas(void) func_vegas_fpi); network_solve = lagrange_solve; - xbt_cfg_setdefault_double(_surf_cfg_set, "network/latency_factor", 10.4); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor", + xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92); - xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775); + xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775); }