Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
stringification
[simgrid.git] / src / surf / maxmin_private.hpp
index f0c93fb..44fac8c 100644 (file)
@@ -25,7 +25,11 @@ typedef struct lmm_element {
 
   lmm_constraint_t constraint;
   lmm_variable_t variable;
-  double value;
+
+  // consumption_weight: impact of 1 byte or flop of your application onto the resource (in byte or flop)
+  //   - if CPU, then probably 1.
+  //   - If network, then 1 in forward direction and 0.05 backward for the ACKs
+  double consumption_weight;
 } s_lmm_element_t;
 #define make_elem_active(elem) xbt_swag_insert_at_head(elem,&(elem->constraint->active_element_set))
 #define make_elem_inactive(elem) xbt_swag_remove(elem,&(elem->constraint->active_element_set))
@@ -82,7 +86,13 @@ typedef struct lmm_variable {
   s_lmm_element_t *cnsts;
   int cnsts_size;
   int cnsts_number;
-  double weight; /* weight > 0 means variable is considered by LMM, weight == 0 means variable is not considered by LMM*/
+
+  // sharing_weight: variable's impact on the resource during the sharing
+  //   if == 0, the variable is not considered by LMM
+  //   on CPU, actions with N threads have a sharing of N
+  //   on network, the actions with higher latency have a lesser sharing_weight
+  double sharing_weight;
+
   double staged_weight; /* If non-zero, variable is staged for addition as soon as maxconcurrency constraints will be met */
   double bound;
   double value;