X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6d3a11c0eb39811cd3aafb3193a909bd2413dfff..c3119f83962a5b1ef7bc8f79011698c83ce21cda:/src/surf/network_smpi.cpp diff --git a/src/surf/network_smpi.cpp b/src/surf/network_smpi.cpp index 3575a83c38..411a467b6c 100644 --- a/src/surf/network_smpi.cpp +++ b/src/surf/network_smpi.cpp @@ -20,14 +20,6 @@ std::vector smpi_lat_factor; xbt_dict_t gap_lookup = nullptr; -static int factor_cmp(const void *pa, const void *pb) -{ - return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor) ? 1 : - (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0; -} - -#include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area - /********* * Model * *********/ @@ -57,73 +49,14 @@ void surf_network_model_init_SMPI() namespace simgrid { namespace surf { - NetworkSmpiModel::NetworkSmpiModel() - : NetworkCm02Model() { - haveGap_=true; + NetworkSmpiModel::NetworkSmpiModel() : NetworkCm02Model() + { + haveGap_ = true; } - NetworkSmpiModel::~NetworkSmpiModel(){ - xbt_dict_free(&gap_lookup); - } - - void NetworkSmpiModel::gapAppend(double size, Link* link, NetworkAction *act) + NetworkSmpiModel::~NetworkSmpiModel() { - const char *src = link->getName(); - xbt_fifo_t fifo; - NetworkCm02Action *action= static_cast(act); - - if (sg_sender_gap > 0.0) { - if (!gap_lookup) { - gap_lookup = xbt_dict_new_homogeneous(nullptr); - } - fifo = (xbt_fifo_t) xbt_dict_get_or_null(gap_lookup, src); - action->senderGap_ = 0.0; - if (fifo && xbt_fifo_size(fifo) > 0) { - /* Compute gap from last send */ - /*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->senderGap_ = sg_sender_gap; - /* max(sg_sender_gap,last_action->sender.size / bw);*/ - action->latency_ += action->senderGap_; - } - /* Append action as last send */ - /*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); - if (!fifo) { - fifo = xbt_fifo_new(); - xbt_dict_set(gap_lookup, action->sender.link_name, fifo, nullptr); - } - action->sender.fifo_item = xbt_fifo_push(fifo, action);*/ - action->senderSize_ = size; - } - } - - void NetworkSmpiModel::gapRemove(Action *lmm_action) - { - xbt_fifo_t fifo; - size_t size; - NetworkCm02Action *action = static_cast(lmm_action); - - if (sg_sender_gap > 0.0 && action->senderLinkName_ - && action->senderFifoItem_) { - fifo = - (xbt_fifo_t) xbt_dict_get_or_null(gap_lookup, - action->senderLinkName_); - xbt_fifo_remove_item(fifo, action->senderFifoItem_); - size = xbt_fifo_size(fifo); - if (size == 0) { - xbt_fifo_free(fifo); - xbt_dict_remove(gap_lookup, action->senderLinkName_); - size = xbt_dict_length(gap_lookup); - if (size == 0) { - xbt_dict_free(&gap_lookup); - } - } - } + xbt_dict_free(&gap_lookup); } double NetworkSmpiModel::bandwidthFactor(double size) @@ -131,15 +64,15 @@ namespace simgrid { if (smpi_bw_factor.empty()) smpi_bw_factor = parse_factor(xbt_cfg_get_string("smpi/bw-factor")); - double current=1.0; - for (auto fact: smpi_bw_factor) { + double current = 1.0; + for (const auto& fact : smpi_bw_factor) { if (size <= fact.factor) { - XBT_DEBUG("%f <= %ld return %f", size, fact.factor, current); + XBT_DEBUG("%f <= %zu return %f", size, fact.factor, current); return current; - }else - current=fact.values.front(); + } else + current = fact.values.front(); } - XBT_DEBUG("%f > %ld return %f", size, smpi_bw_factor.back().factor, current); + XBT_DEBUG("%f > %zu return %f", size, smpi_bw_factor.back().factor, current); return current; } @@ -150,14 +83,14 @@ namespace simgrid { smpi_lat_factor = parse_factor(xbt_cfg_get_string("smpi/lat-factor")); double current=1.0; - for (auto fact: smpi_lat_factor) { + for (const auto& fact : smpi_lat_factor) { if (size <= fact.factor) { - XBT_DEBUG("%f <= %ld return %f", size, fact.factor, current); + XBT_DEBUG("%f <= %zu return %f", size, fact.factor, current); return current; }else current=fact.values.front(); } - XBT_DEBUG("%f > %ld return %f", size, smpi_lat_factor.back().factor, current); + XBT_DEBUG("%f > %zu return %f", size, smpi_lat_factor.back().factor, current); return current; }