-// NDS for Need To Send
-#define NDS ((opt::bookkeeping ? expected_load : load) != prev_load_broadcast)
- do {
- // General idea: block on receiving unless there is
- // something to compute, or to send, or we must exit.
+ if (load > 0.0) {
+ ++comp_iter;
+ if (opt::log_rate && comp_iter % opt::log_rate == 0) {
+ if (opt::bookkeeping)
+ INFO4("(%u:%u) current load: %g ; expected: %g",
+ comp_iter, lb_iter, load, expected_load);
+ else
+ INFO2("(%u) current load: %g",
+ comp_iter, load);
+ }
+
+ double ld = lb_load();
+ ld -= load_balance(ld);
+ lb_load() = ld;
+
+ print_loads(true, xbt_log_priority_debug);
+
+ send();
+ compute();
+
+ } else {
+ // send load information, and load when bookkeeping
+ send();
+ }