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

Private GIT Repository
Be consistent and hold mutex in any case when returning from condition_t::timedwait().
[loba.git] / ALGORITHMS
index e9f07fa41595757e514f255939c6684b2d9e61cb..53fe1f30300645bf96d6d08fa28d75c04724e264 100644 (file)
@@ -1,5 +1,19 @@
 DESCRIPTIONS DES ALGORITHMES D'ÉQUILIBRAGE
 
 DESCRIPTIONS DES ALGORITHMES D'ÉQUILIBRAGE
 
+2besteffort
+===========
+Calcule la moyenne des charges des voisins et de soi-même.
+Ordonne ensuite les voisins du moins chargé au plus chargé, et
+effectue les transferts en prenant les voisins dans cet ordre.  Les
+transferts de charge sont faits en visant cette moyenne pour tous les
+voisins.  On envoie une quantité de charge égale à
+        min(moyenne - charge_du_voisin, charge_propre - moyenne),
+tant que cette quantité est positive.
+
+NB: Ceci est une variante de besteffort, la différence étant la
+    moyenne visée.
+
+
 besteffort
 ==========
 Ordonne les voisins du moins chargé au plus chargé.
 besteffort
 ==========
 Ordonne les voisins du moins chargé au plus chargé.
@@ -7,11 +21,26 @@ Trouve ensuite, en les prenant dans ce ordre, le nombre maximal de
 voisins tels que tous ont une charge inférieure à la moyenne des
 charges des voisins sélectionnés, et de soi-même.
 
 voisins tels que tous ont une charge inférieure à la moyenne des
 charges des voisins sélectionnés, et de soi-même.
 
-Les transferts de charge sont ensuite fait en visant cette moyenne pour
+Les transferts de charge sont ensuite faits en visant cette moyenne pour
 tous les voisins sélectionnés.  On envoie une quantité de charge égale
 à (moyenne - charge_du_voisin).
 
 
 tous les voisins sélectionnés.  On envoie une quantité de charge égale
 à (moyenne - charge_du_voisin).
 
 
+bulk
+====
+N'ordonne pas les voisins. Cherche le nombre de voisins de charge
+minimum et le nombre de voisins de charge inférieure. En fonction de
+leur égalité ou non, un paramètre alpha est calculé. En cas d'égalité,
+        alpha = 1 / (NB_voisins_charge_minimale + 1),
+sinon
+        alpha = 1 / (NB_voisins_charge_minimale + 2).
+
+Chaque voisin dont la charge est inférieure reçoit
+        alpha * (myLoad - charge_du_voisin).
+Ensuite, une correction est effectuée pour respecter la règle de
+Bertsekas.
+
+
 fairstrategy
 ============
 Ordonne les voisins du plus chargé au moins chargé.
 fairstrategy
 ============
 Ordonne les voisins du plus chargé au moins chargé.
@@ -24,6 +53,15 @@ tous les voisins moins chargés que soi-même.
 Q: à quoi sert le tri du départ ?
 
 
 Q: à quoi sert le tri du départ ?
 
 
+lln pour Least Loaded Neighbors
+===============================
+À l'origine écrit par Raphaël.  Comme simple, mais tous les voisins de
+charge inférieure reçoivent de la charge pas seulement un voisin de
+charge minimale. N'ordonne pas les voisins, et ne respecte pas la
+règle de Bertsekas. Le paramètre alpha vaut toujours
+        1 / (NB_voisins_charge_inferieure + 1).
+
+
 makhoul
 =======
 Ordonne les voisins du moins chargé au plus chargé puis calcule les
 makhoul
 =======
 Ordonne les voisins du moins chargé au plus chargé puis calcule les
@@ -51,6 +89,12 @@ Références:
       cf. MAKHOUL.txt
 
 
       cf. MAKHOUL.txt
 
 
+makhoul3
+========
+Comme makhoul mais, dans le ratio 1/(N+1), N correspond au nombre de
+voisins moins chargés.
+
+
 none
 ====
 Aucun équilibrage.  Peut-être utile pour tester/déboguer le code.
 none
 ====
 Aucun équilibrage.  Peut-être utile pour tester/déboguer le code.