A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
cosmetics (codefactor+coding style)
[simgrid.git]
/
src
/
kernel
/
lmm
/
maxmin.cpp
diff --git
a/src/kernel/lmm/maxmin.cpp
b/src/kernel/lmm/maxmin.cpp
index
1cc6c4e
..
96cc184
100644
(file)
--- a/
src/kernel/lmm/maxmin.cpp
+++ b/
src/kernel/lmm/maxmin.cpp
@@
-31,7
+31,7
@@
int Element::get_concurrency() const
{
// Ignore element with weight less than one (e.g. cross-traffic)
return (consumption_weight >= 1) ? 1 : 0;
- // There are other alternatives, but they will change the behavio
u
r of the model..
+ // There are other alternatives, but they will change the behavior of the model..
// So do not use it unless you want to make a new model.
// If you do, remember to change the variables concurrency share to reflect it.
// Potential examples are:
@@
-236,7
+236,7
@@
void System::expand(Constraint* cnst, Variable* var, double consumption_weight)
modified_ = true;
// Check if this variable already has an active element in this constraint
- // If it does, sub
s
tract it from the required slack
+ // If it does, subtract it from the required slack
int current_share = 0;
if (var->concurrency_share_ > 1) {
for (Element& elem : var->cnsts_) {
@@
-505,17
+505,9
@@
template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
double min_bound = -1;
XBT_DEBUG("Active constraints : %zu", cnst_list.size());
- /* Init: Only modified code portions: reset the value of active variables */
- for (Constraint const& cnst : cnst_list) {
- for (Element const& elem : cnst.enabled_element_set_) {
- xbt_assert(elem.variable->sharing_penalty_ > 0.0);
- elem.variable->value_ = 0.0;
- }
- }
-
- ConstraintLight* cnst_light_tab = new ConstraintLight[cnst_list.size()]();
+ cnst_light_vec.reserve(cnst_list.size());
+ ConstraintLight* cnst_light_tab = cnst_light_vec.data();
int cnst_light_num = 0;
- dyn_light_t saturated_constraints;
for (Constraint& cnst : cnst_list) {
/* INIT: Collect constraints that actually need to be saturated (i.e remaining and usage are strictly positive)
@@
-525,7
+517,8
@@
template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
continue;
cnst.usage_ = 0;
for (Element& elem : cnst.enabled_element_set_) {
- xbt_assert(elem.variable->sharing_penalty_ > 0);
+ xbt_assert(elem.variable->sharing_penalty_ > 0.0);
+ elem.variable->value_ = 0.0;
if (elem.consumption_weight > 0) {
if (cnst.sharing_policy_ != s4u::Link::SharingPolicy::FATPIPE)
cnst.usage_ += elem.consumption_weight / elem.variable->sharing_penalty_;
@@
-597,7
+590,7
@@
template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
XBT_DEBUG("Min usage: %f, Var(%d).penalty: %f, Var(%d).value: %f ", min_usage, var.rank_, var.sharing_penalty_,
var.rank_, var.value_);
- /* Update the usage of contraints where this variable is involved */
+ /* Update the usage of con
s
traints where this variable is involved */
for (Element& elem : var.cnsts_) {
Constraint* cnst = elem.constraint;
if (cnst->sharing_policy_ != s4u::Link::SharingPolicy::FATPIPE) {
@@
-676,7
+669,6
@@
template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
}
saturated_variable_set_update(cnst_light_tab, saturated_constraints, this);
-
} while (cnst_light_num > 0);
modified_ = false;
@@
-688,8
+680,6
@@
template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
}
check_concurrency();
-
- delete[] cnst_light_tab;
}
/** @brief Attribute the value bound to var->bound.
@@
-814,7
+804,6
@@
void System::on_disabled_var(Constraint* cnstr)
// Cannot use foreach loop, because System::enable_var() will modify disabled_element_set.. within the loop
while (numelem-- && elem) {
-
Element* nextelem;
if (elem->disabled_element_set_hook.is_linked()) {
auto iter = std::next(cnstr->disabled_element_set_.iterator_to(*elem));
@@
-927,7
+916,7
@@
void System::remove_all_modified_set()
// In effect, the var->visited value will no more be equal to visited counter
// To be clean, when visited counter has wrapped around, we force these var->visited values so that variables that
// were in the modified a long long time ago are not wrongly skipped here, which would lead to very nasty bugs
- // (i.e. not readi
bi
ly reproducible, and requiring a lot of run time before happening).
+ // (i.e. not readily reproducible, and requiring a lot of run time before happening).
if (++visited_counter_ == 1) {
/* the counter wrapped around, reset each variable->visited */
for (Variable& var : variable_set)
@@
-965,6
+954,7
@@
int Constraint::get_variable_amount() const
return std::count_if(std::begin(enabled_element_set_), std::end(enabled_element_set_),
[](const Element& elem) { return elem.consumption_weight > 0; });
}
-}
-}
-}
+
+} // namespace lmm
+} // namespace kernel
+} // namespace simgrid