double get_real_load() const { return real_load; }
double get_comp_amount() const { return acc.comp_amount; }
+ unsigned get_comp_iter() const { return comp_iter; }
double get_data_send_amount() const { return acc.data_send.amount; }
double get_data_recv_amount() const { return acc.data_recv.amount; }
unsigned get_data_send_count() const { return acc.data_send.count; }
// a same information messages
double real_load; // current load
double expected_load; // expected load in bookkeeping mode
+ double received_load; // load received from neighbors
mutex_t mutex; // synchronization between threads
condition_t cond;
mesg_accounting ctrl_recv; // ctrl message received
accounting(): comp_amount(0.0) { }
};
- accounting acc;
+ accounting acc; // use a structure so that it is
+ // automatically initialized a
+ // construction
void add_comp_amount(double amount) { acc.comp_amount += amount; }
void add_data_send_mesg(double amount) {
// Returns the sum of "to_send" for all neighbors.
double get_sum_of_to_send() const;
+ // Compute load_to_send (for data_send), subject to the execution parameters
+ static double compute_load_to_send(double desired);
+
// Send procedures
void ctrl_send(neighbor& nb);
void data_send(neighbor& nb);