]> AND Private Git Repository - loba.git/blobdiff - NOTES
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Stop locking the mutex on data_receive.
[loba.git] / NOTES
diff --git a/NOTES b/NOTES
index 079372baac3ce02e80d468461d9dfddf9fcafaec..53bce11e7e31fe340daa071eab018c3e67ddc005 100644 (file)
--- a/NOTES
+++ b/NOTES
@@ -35,6 +35,7 @@ thread, and a load-balancer thread.
     | if we received some real load, get it (data messages)
     | if there is some real load to send, send it
     | if we own some load, simulate some computing on it
     | if we received some real load, get it (data messages)
     | if there is some real load to send, send it
     | if we own some load, simulate some computing on it
+    | sleep a bit if we are looping too fast
     +-
     send CLOSE on data for all neighbors
     wait for CLOSE on data from all neighbors
     +-
     send CLOSE on data for all neighbors
     wait for CLOSE on data from all neighbors
@@ -48,6 +49,7 @@ thread, and a load-balancer thread.
     Loop
     | call load-balancing algorithm
     | send ctrl messages
     Loop
     | call load-balancing algorithm
     | send ctrl messages
+    | sleep (min_lb_iter_duration)
     | receive ctrl messages
     +-
     send CLOSE on ctrl for all neighbors
     | receive ctrl messages
     +-
     send CLOSE on ctrl for all neighbors
@@ -56,10 +58,20 @@ thread, and a load-balancer thread.
   The loop terminates when process::still_running() returns false.
   (read the source for full details...)
 
   The loop terminates when process::still_running() returns false.
   (read the source for full details...)
 
-Open questions
-==============
- * definition of load on heterogeneous hosts?
- * how to detect convergence?
-   : No need to detect convergence.  Computation stops when there
-     nothing more to do.
- * how to manage link failures?
+Some notes about *load attributes
+=================================
+process::real_load              Current *real* load.
+                                Used for the computations.
+                                Displayed in log messages.
+
+process::expected_load          Current load estimation.
+                                Used for load-balancing estimation, and for
+                                diffusing to neighbors.
+                                * Without bookkeeping, it equals real_load
+                                  minus pending sends.
+                                * With bookkeeping, it corresponds to the
+                                  "virtual load".
+
+process::received_load          Real load received from neighbors.
+                                Used when receiveing data messages, and then
+                                added to real_load.