X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d9347ab3e960f0f098338c88a79724dbcf4a58bb..f4e13da91b79636379546d5091c9fa1632034eba:/src/surf/network.c diff --git a/src/surf/network.c b/src/surf/network.c index b6f836bcce..d3d87f7680 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -6,7 +6,7 @@ * highly dependent on the maxmin lmm module. */ -/* Copyright (c) 2009, 2010, 2011. The SimGrid Team. +/* Copyright (c) 2004-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -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,7 +119,7 @@ static double smpi_bandwidth_factor(double size) { if (!smpi_bw_factor) smpi_bw_factor = - parse_factor(surf_cfg_get_string("smpi/bw_factor")); + parse_factor(sg_cfg_get_string("smpi/bw_factor")); unsigned int iter = 0; s_smpi_factor_t fact; @@ -139,7 +140,7 @@ static double smpi_latency_factor(double size) { if (!smpi_lat_factor) smpi_lat_factor = - parse_factor(surf_cfg_get_string("smpi/lat_factor")); + parse_factor(sg_cfg_get_string("smpi/lat_factor")); unsigned int iter = 0; s_smpi_factor_t fact; @@ -664,10 +665,9 @@ static void net_finalize(void) surf_model_exit(surf_network_model); surf_network_model = NULL; - if (smpi_bw_factor) - xbt_dynar_free(&smpi_bw_factor); - if (smpi_lat_factor) - xbt_dynar_free(&smpi_lat_factor); + xbt_dict_free(&gap_lookup); + xbt_dynar_free(&smpi_bw_factor); + xbt_dynar_free(&smpi_lat_factor); } static void smpi_gap_append(double size, const link_CM02_t link, @@ -675,27 +675,27 @@ 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) { - gap_lookup = xbt_dict_new(); + gap_lookup = xbt_dict_new_homogeneous(NULL); } fifo = (xbt_fifo_t) xbt_dict_get_or_null(gap_lookup, src); 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); @@ -703,7 +703,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; } } @@ -734,9 +734,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_boolean(_sg_cfg_set, "network/maxmin_selective_update"); if (!strcmp(optim, "Full")) { surf_network_model->model_private->update_mechanism = UM_FULL; @@ -747,7 +747,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); @@ -805,8 +805,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); @@ -855,8 +853,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); } /************************************************************************/ @@ -883,11 +881,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); } /***************************************************************************/ @@ -912,10 +910,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); } /***************************************************************************/ @@ -941,10 +939,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); } @@ -961,10 +959,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); } @@ -981,8 +979,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); }