pneigh[i]->get_load() ;
- définit la charge à envoyer avec
pneigh[i]->set_to_send(quantité) ;
- - retourne la somme des quantités définies avec set_to_send,
- éventuellement à l'aide de la méthode process::sum_of_to_send()
- qui clacule cette somme.
+ - retourne la somme des quantités définies avec set_to_send.
2. Ajouter l'algorithme dans la liste des options. Dans options.cpp :
- faire le #include adéquat ;
#include <algorithm>
#include <tr1/functional>
#include <iterator>
-#include <numeric>
#include <stdexcept>
#include <sstream>
#include <xbt/log.h>
return 0;
}
-double process::sum_of_to_send() const
-{
- using std::tr1::bind;
- using std::tr1::placeholders::_1;
- using std::tr1::placeholders::_2;
-
- return std::accumulate(neigh.begin(), neigh.end(), 0.0,
- bind(std::plus<double>(),
- _1, bind(&neighbor::get_to_send, _2)));
-}
-
double process::load_balance(double /*my_load*/)
{
if (lb_iter == 1) // warn only once
pneigh_type pneigh; // list of pointers to neighbors that
// we are free to reorder
- // Returns the sum of "to_send" for all neighbors.
- double sum_of_to_send() const;
-
// Calls neighbor::print(verbose, logp, cat) for each member of neigh.
void print_loads(bool verbose = false,
e_xbt_log_priority_t logp = xbt_log_priority_info,