From 2c4b9b084f2dfb0b9e34bee11e1bc012ea13ad95 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Wed, 26 Sep 2012 14:54:42 +0200 Subject: [PATCH] sort latency and bandwidth value submitted in config files for smpi, before using them (If the user did provide them sorted from bigger to smaller sizes, only the first and biggest value was being used) --- src/surf/network.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/surf/network.c b/src/surf/network.c index d5b647e697..ed1db7b010 100644 --- a/src/surf/network.c +++ b/src/surf/network.c @@ -77,6 +77,13 @@ static double constant_bandwidth_constraint(double rate, double bound, /**********************/ /* SMPI callbacks */ /**********************/ + +static int factor_cmp(const void *pa, const void *pb) +{ + return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor); +} + + static xbt_dynar_t parse_factor(const char *smpi_coef_string) { char *value = NULL; @@ -98,6 +105,12 @@ static xbt_dynar_t parse_factor(const char *smpi_coef_string) xbt_dynar_free(&radical_elements2); } xbt_dynar_free(&radical_elements); + iter=0; + xbt_dynar_sort(smpi_factor, &factor_cmp); + xbt_dynar_foreach(smpi_factor, iter, fact) { + XBT_DEBUG("ordered smpi_factor:\t%ld : %f", fact.factor, fact.value); + + } return smpi_factor; } -- 2.20.1