2 \documentclass[smallextended]{svjour3}
7 \title{Best effort strategy and virtual load for asynchronous iterative load balancing}
9 \author{Raphaël Couturier \and
14 \institute{F. Author \at
16 Tel.: +123-45-678910\\
18 \email{fauthor@example.com} % \\
19 % \emph{Present address:} of F. Author % if needed
30 Most of the time, asynchronous load balancing algorithms have extensively been
31 studied in a theoretical point of view. The Bertsekas and Tsitsiklis' algorithm
32 is certainly the most well known algorithm for which the convergence proof is
33 given. From a practical point of view, when a node wants to balance a part of
34 its load to some of its neighbors, the strategy is not described. In this
35 paper, we propose a strategy called \texttt{best effort} which tries to balance
36 the load of a node to all its less loaded neighbors while ensuring that all the
37 nodes concerned by the load balancing phase have the same amount of load.
38 Moreover, asynchronous iterative algorithms in which an asynchronous load
39 balancing algorithm is implemented most of the time can dissociate messages
40 concerning load transfers and message concerning load information. In order to
41 increase the converge of a load balancing algorithm, we propose a simple
42 heuristic called \texttt{virtual load} which allows a node that receives an load
43 information message to integrate the load that it will receive latter in its
44 load (virtually) and consequently sends a (real) part of its load to some of its
45 neighbors. In order to validate our approaches, we have defined a simulator
46 based on SimGrid which allowed us to conduct many experiments.
51 \section{Introduction}
53 Load balancing algorithms are extensively used in parallel and distributed
54 applications in order to reduce the execution times. They can be applied in
55 different scientific fields from high performance computation to micro sensor
56 networks. They are iterative by nature. In literature many kinds of load
57 balancing algorithms have been studied. They can be classified according
58 different criteria: centralized or decentralized, in static or dynamic
59 environment, with homogeneous or heterogeneous load, using synchronous or
60 asynchronous iterations, with a static topology or a dynamic one which evolves
61 during time. In this work, we focus on asynchronous load balancing algorithms
62 where computer nodes are considered homogeneous and with homogeneous load with
63 no external load. In this context, Bertsekas and Tsitsiklis have proposed an
64 algorithm which is definitively a reference for many works. In their work, they
65 proved that under classical hypotheses of asynchronous iterative algorithms and
66 a special constraint avoiding \texttt{ping-pong} effect, an asynchronous
67 iterative algorithm converge to the uniform load distribution. This work has
68 been extended by many authors. For example, DASUD proposes a version working with
69 integer load. {\bf Rajouter des choses ici}.
71 Although the Bertsekas and Tsitsiklis' algorithm describes the condition to
72 ensure the convergence, there is no indication or strategy to really implement
73 the load distribution. In other word, a node can send a part of its load to one
74 or many of its neighbors while all the convergence conditions are
75 followed. Consequently, we propose a new strategy called \texttt{best effort}
76 that tries to balance the load of a node to all its less loaded neighbors while
77 ensuring that all the nodes concerned by the load balancing phase have the same
78 amount of load. Moreover, when real asynchronous applications are considered,
79 using asynchronous load balancing algorithms can reduce the execution
80 times. Most of the times, it is simpler to distinguish load information messages
81 from data migration messages. Formers ones allows a node to inform its
82 neighbors of its current load. These messages are very small, they can be sent
83 quite often. For example, if an computing iteration takes a significant times
84 (ranging from seconds to minutes), it is possible to send a new load information
85 message at each neighbor at each iteration. Latter messages contains data that
86 migrates from one node to another one. Depending on the application, it may have
87 sense or not that nodes try to balance a part of their load at each computing
88 iteration. But the time to transfer a load message from a node to another one is
89 often much nore longer that to time to transfer a load information message. So,
90 when a node receives the information that later it will receive a data message,
91 it can take this information into account and it can consider that its new load
92 is larger. Consequently, it can send a part of it real load to some of its
93 neighbors if required. We call this trick the \texttt{virtual load} mecanism.
97 So, in this work, we propose a new strategy for improving the distribution of
98 the load and a simple but efficient trick that also improves the load
99 balacing. Moreover, we have conducted many simulations with simgrid in order to
100 validate our improvements are really efficient. Our simulations consider that in
101 order to send a message, a latency delays the sending and according to the
102 network performance and the message size, the time of the reception of the
105 In the following of this paper, Section~\ref{BT algo} describes the Bertsekas
106 and Tsitsiklis' asynchronous load balancing algorithm. Moreover, we present a
107 possible problem in the convergence conditions. Section~\ref{Best-effort}
108 presents the best effort strategy which provides an efficient way to reduce the
109 execution times. In Section~\ref{Virtual load}, the virtual load mecanism is
110 proposed. Simulations allowed to show that both our approaches are valid using a
111 quite realistic model detailed in Section~\ref{Simulations}. Finally we give a
112 conclusion and some perspectives to this work.
117 \section{Bertsekas and Tsitsiklis' asynchronous load balancing algorithm}
120 Comment on the problem in the convergence condition.
122 \section{Best effort strategy}
127 \section{Virtual load}
130 \section{Simulations}
133 \subsection{Simulation model}
135 \subsection{Validation of our approaches}
138 \section{Conclusion and perspectives}