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

Private GIT Repository
Temporarily use opt::option_x in algorithms (2)besteffort.
[loba.git] / NOTES
diff --git a/NOTES b/NOTES
index da97c1b7d931932e6731a146a82bc34209c49531..71e27296cc07fbd0dd958b5b016b92b4f8ea620e 100644 (file)
--- a/NOTES
+++ b/NOTES
@@ -12,11 +12,11 @@ messages, and data for load transfers.
 Process model
 =============
 
 Process model
 =============
 
-Each process is made of 3 threads: a receiver thread, a computing
-thread, and a load-balancer thread.
+Each process is made of 3 threads: a receiving thread, a computing
+thread, and a load-balancing thread.
 
 
-* Receiver thread
-  ---------------
+* Receiving thread
+  ----------------
 
     Loop
     | wait for a message to come, either on data channel, or on ctrl channel
 
     Loop
     | wait for a message to come, either on data channel, or on ctrl channel
@@ -47,13 +47,31 @@ thread, and a load-balancer thread.
   ---------------------
 
     Loop
   ---------------------
 
     Loop
+    | receive ctrl messages
     | call load-balancing algorithm
     | send ctrl messages
     | sleep (min_lb_iter_duration)
     | call load-balancing algorithm
     | send ctrl messages
     | sleep (min_lb_iter_duration)
-    | receive ctrl messages
     +-
     send CLOSE on ctrl for all neighbors
     wait for CLOSE on ctrl from all neighbors
 
   The loop terminates when process::still_running() returns false.
   (read the source for full details...)
     +-
     send CLOSE on ctrl for all neighbors
     wait for CLOSE on ctrl from all neighbors
 
   The loop terminates when process::still_running() returns false.
   (read the source for full details...)
+
+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.