1 \documentclass[smallextended]{svjour3}
2 \usepackage[utf8]{inputenc}
3 \usepackage[T1]{fontenc}
10 \title{Best effort strategy and virtual load for asynchronous iterative load balancing}
12 \author{Raphaël Couturier \and
17 \institute{F. Author \at
19 Tel.: +123-45-678910\\
21 \email{fauthor@example.com} % \\
22 % \emph{Present address:} of F. Author % if needed
33 Most of the time, asynchronous load balancing algorithms have extensively been
34 studied in a theoretical point of view. The Bertsekas and Tsitsiklis'
35 algorithm~\cite[section~7.4]{bertsekas+tsitsiklis.1997.parallel}
36 is certainly the most well known algorithm for which the convergence proof is
37 given. From a practical point of view, when a node wants to balance a part of
38 its load to some of its neighbors, the strategy is not described. In this
39 paper, we propose a strategy called \texttt{best effort} which tries to balance
40 the load of a node to all its less loaded neighbors while ensuring that all the
41 nodes concerned by the load balancing phase have the same amount of load.
42 Moreover, asynchronous iterative algorithms in which an asynchronous load
43 balancing algorithm is implemented most of the time can dissociate messages
44 concerning load transfers and message concerning load information. In order to
45 increase the converge of a load balancing algorithm, we propose a simple
46 heuristic called \texttt{virtual load} which allows a node that receives an load
47 information message to integrate the load that it will receive later in its
48 load (virtually) and consequently sends a (real) part of its load to some of its
49 neighbors. In order to validate our approaches, we have defined a simulator
50 based on SimGrid which allowed us to conduct many experiments.
55 \section{Introduction}
57 Load balancing algorithms are extensively used in parallel and distributed
58 applications in order to reduce the execution times. They can be applied in
59 different scientific fields from high performance computation to micro sensor
60 networks. They are iterative by nature. In literature many kinds of load
61 balancing algorithms have been studied. They can be classified according
62 different criteria: centralized or decentralized, in static or dynamic
63 environment, with homogeneous or heterogeneous load, using synchronous or
64 asynchronous iterations, with a static topology or a dynamic one which evolves
65 during time. In this work, we focus on asynchronous load balancing algorithms
66 where computer nodes are considered homogeneous and with homogeneous load with
67 no external load. In this context, Bertsekas and Tsitsiklis have proposed an
68 algorithm which is definitively a reference for many works. In their work, they
69 proved that under classical hypotheses of asynchronous iterative algorithms and
70 a special constraint avoiding \texttt{ping-pong} effect, an asynchronous
71 iterative algorithm converge to the uniform load distribution. This work has
72 been extended by many authors. For example,
73 DASUD~\cite{cortes+ripoll+cedo+al.2002.asynchronous} propose a version working
74 with integer load. {\bf Rajouter des choses ici}.
76 Although the Bertsekas and Tsitsiklis' algorithm describes the condition to
77 ensure the convergence, there is no indication or strategy to really implement
78 the load distribution. In other word, a node can send a part of its load to one
79 or many of its neighbors while all the convergence conditions are
80 followed. Consequently, we propose a new strategy called \texttt{best effort}
81 that tries to balance the load of a node to all its less loaded neighbors while
82 ensuring that all the nodes concerned by the load balancing phase have the same
83 amount of load. Moreover, when real asynchronous applications are considered,
84 using asynchronous load balancing algorithms can reduce the execution
85 times. Most of the times, it is simpler to distinguish load information messages
86 from data migration messages. Formers ones allows a node to inform its
87 neighbors of its current load. These messages are very small, they can be sent
88 quite often. For example, if an computing iteration takes a significant times
89 (ranging from seconds to minutes), it is possible to send a new load information
90 message at each neighbor at each iteration. Latter messages contains data that
91 migrates from one node to another one. Depending on the application, it may have
92 sense or not that nodes try to balance a part of their load at each computing
93 iteration. But the time to transfer a load message from a node to another one is
94 often much nore longer that to time to transfer a load information message. So,
95 when a node receives the information that later it will receive a data message,
96 it can take this information into account and it can consider that its new load
97 is larger. Consequently, it can send a part of it real load to some of its
98 neighbors if required. We call this trick the \texttt{virtual load} mecanism.
102 So, in this work, we propose a new strategy for improving the distribution of
103 the load and a simple but efficient trick that also improves the load
104 balacing. Moreover, we have conducted many simulations with simgrid in order to
105 validate our improvements are really efficient. Our simulations consider that in
106 order to send a message, a latency delays the sending and according to the
107 network performance and the message size, the time of the reception of the
110 In the following of this paper, Section~\ref{BT algo} describes the Bertsekas
111 and Tsitsiklis' asynchronous load balancing algorithm. Moreover, we present a
112 possible problem in the convergence conditions. Section~\ref{Best-effort}
113 presents the best effort strategy which provides an efficient way to reduce the
114 execution times. In Section~\ref{Virtual load}, the virtual load mecanism is
115 proposed. Simulations allowed to show that both our approaches are valid using a
116 quite realistic model detailed in Section~\ref{Simulations}. Finally we give a
117 conclusion and some perspectives to this work.
122 \section{Bertsekas and Tsitsiklis' asynchronous load balancing algorithm}
125 Comment on the problem in the convergence condition.
127 \section{Best effort strategy}
132 \section{Virtual load}
135 \section{Simulations}
138 \subsection{Simulation model}
140 \subsection{Validation of our approaches}
143 On veut montrer quoi ? :
145 1) best plus rapide que les autres (simple, makhoul)
146 2) avantage virtual load
148 Est ce qu'on peut trouver des contre exemple?
152 Simulation avec temps définies assez long et on mesure la qualité avec : volume de calcul effectué, volume de données échangées
153 Mais aussi simulation avec temps court qui montre que seul best converge
156 Expés avec ratio calcul/comm rapide et lent
158 Quelques expés avec charge initiale aléatoire plutot que sur le premier proc
160 Cadre processeurs homogènes
164 On ne tient pas compte de la vitesse des liens donc on la considère homogène
166 Prendre un réseau hétérogène et rendre processeur homogène
168 Taille : 10 100 très gros
170 \section{Conclusion and perspectives}
173 \bibliographystyle{spmpsci}
174 \bibliography{biblio}
181 %%% ispell-local-dictionary: "american"
184 % LocalWords: Raphaël Couturier Arnaud Giersch Abderrahmane Sider
185 % LocalWords: Bertsekas Tsitsiklis SimGrid DASUD