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))
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;