From: Arnaud Giersch Date: Fri, 8 Dec 2017 09:53:11 +0000 (+0100) Subject: [sharelatex-git-integration Best effort strategy and virtual load for asynchronous... X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba-papers.git/commitdiff_plain/fa5df18b7f86cce629e14c464336e940c0a8e65d [sharelatex-git-integration Best effort strategy and virtual load for asynchronous iterative load balancing 2017/12/08 10:53:11] --- diff --git a/loba-besteffort/loba-besteffort.tex b/loba-besteffort/loba-besteffort.tex index 78524f7..c4c9d59 100644 --- a/loba-besteffort/loba-besteffort.tex +++ b/loba-besteffort/loba-besteffort.tex @@ -90,7 +90,7 @@ Load balancing algorithms are widely used in parallel and distributed applications to achieve high performances in terms of response time, throughput and resources usage. They play an important role and arise in various fields ranging from parallel and distributed computing systems to wireless sensor networks (WSN). -The objective of load balancing is to orchestrate the distribution of the global workload so that +The objective of load balancing is to orchestrate the distribution of the global load so that the load difference between the computational resources of the network is minimized as low as possible. Unfortunately, this problem is known to be {\bf NP-hard} in its general forms and heuristics are required to achieve sub-optimal solutions but in @@ -98,7 +98,7 @@ polynomial time complexity. In this paper, we focus on asynchronous load balancing of non negative real numbers of {\it divisible loads} in homogeneous distributed systems. Loads can be divided in arbitrary {\it fine-grain} parallel parts size -that can be processed independently of each other. This model of divisible loads arise in +that can be processed independently of each other. This model of divisible loads arises in a wide range of real-world applications. Common examples among many, include signal processing, feature extraction and edge detection in image processing, records search in a huge databases, average consensus in WSN, pattern search in Big data and so on. % c'est pout toi raphael ;-) @@ -129,7 +129,7 @@ This algorithm has been borrowed and adapted in many works. For instance, in~\ci %version working with integer load. This work was later generalized by %the same authors in \cite{cedo+cortes+ripoll+al.2007.convergence}. %\FIXME{Rajouter des choses ici. Lesquelles ?} -Although Bertsekas and Tsitsiklis' describe the necessary conditions to +Although Bertsekas and Tsitsiklis describe the necessary conditions to ensure the algorithm's convergence, there is no indication or any strategy to really implement the load distribution. %In other word, a node can send some amount of its load to one or many of its neighbors while all the convergence conditions are followed. Consequently, we propose a new strategy called \besteffort{} @@ -141,9 +141,9 @@ amount of load. Moreover, %when real-world asynchronous applications are cons most of the times, it is simpler to dissociate load information messages from data migration messages. Former ones allow a node to inform its neighbors about its current load. These messages are in fact very small and can be sent -often and very quickly. For example, if a computing iteration takes a significant times +often very quickly. For example, if a computing iteration takes a significant time (ranging from seconds to minutes), it is possible to send a new load information -message to each involved neighbor at each iteration. Then the load is sent, but the reception may take time when the amount of load is huge and when communication links are slow. Depending on the application, it may have +message to each involved neighbor at each iteration. Then, the load is sent, but the reception may take time when the amount of load is huge and when communication links are slow. Depending on the application, it may have sense or not that nodes try to balance a part of their load at each computing iteration. But the time to transfer a load message from a node to another one is often much more longer that the time to transfer a load information message. So, @@ -168,7 +168,7 @@ The main contributions and novelties of our work are summarized in the following \item Unlike earlier works, we use a new concept of virtual loads transfers which allows nodes to predict the future loads they will receive in the subsequent iterations. This leads to a noticeable speedup of the global convergence time of the load balancing process. -\item We use SimGrid simulator which is known to be able to characterize and model realistic models of computation and communication in different types of platforms. We show that taking into account both loads transfers' costs and network contention is essential and has a real impact on the quality of the load balancing performances. +\item We use SimGrid simulator which is known to be able to characterize and modelize realistic models of computation and communication in different types of platforms. We show that taking into account both loads transfers' costs and network contention is essential and has a real impact on the quality of the load balancing performances. %\item We improve the straightforward network's diameter bound of the global equilibrium threshold in the network. % not sure, it depends on the remaining time before the paper submission ... \end{itemize} @@ -192,7 +192,7 @@ Bertsekas and Tsitsiklis' asynchronous load balancing algorithm. %Moreover, we Section~\ref{sec.besteffort} presents the best effort strategy which provides efficient local loads equilibrium. %This strategy will be compared with the one presented in Section~\ref{sec.other}. In Section~\ref{sec.virtual-load}, the clairvoyant virtual load scheme is proposed to speedup the convergence time of the load balancing process. -We provide in Section~\ref{sec.simulations}, a comprehensive set of numerical results that exhibit the usefulness of our proposals when we deal with realistic models of computation and communication. Finally, we give some concluding remarks in Section~\ref{conclusions-remarks}. +We provide in Section~\ref{sec.simulations}, a comprehensive set of numerical results that exhibit the usefulness of our proposal when we deal with realistic models of computation and communication. Finally, we give some concluding remarks in Section~\ref{conclusions-remarks}. \section{Related works} @@ -289,7 +289,7 @@ other back and forth, without reaching equilibrium. \medskip Nevertheless, we think that this condition may lead to deadlocks in some -cases. For example, if we consider a linear chain graph network of only three processors and that processor $1$ +cases. For example, consider a linear chain graph network of only three processors and that processor $1$ is linked to processor $2$ which is also linked to processor $3$, but processors $1$ and $3$ are not neighbors. %(i.e. a simple chain which 3 processors). @@ -302,7 +302,7 @@ is linked to processor $2$ which is also linked to processor $3$, but processor \end{align*} %{\bf RAPH, pourquoi il y a $x_3^2$?. Sinon il faudra reformuler la suite, c'est mal dit} -Owing to the algorithm's specification, processor $2$ can either sends +Owing to the algorithm's specification, processor $2$ can either send load to processor $1$ or processor $3$. If it sends load to processor $1$, it will not satisfy condition \eqref{eq.ping-pong} because after that sending it will be less loaded than @@ -310,7 +310,7 @@ $x_3^2(t)$. So we consider that the \emph{ping-pong} condition is probably too strong. %Currently, we did not try to make another convergence proof without this condition or with a weaker condition. \smallskip -Nevertheless, we conjecture that a weaker condition may exist since we +Despite this, we conjecture that a weaker condition may exist since we have never seen any scenario that is not leading to convergence, even with load-balancing strategies that are not exactly fulfilling the authors' own conditions. %se two conditions. @@ -320,7 +320,7 @@ load-balancing strategies that are not exactly fulfilling the authors' own condi \smallskip -Although this approach is interesting, several practical +Even though this approach is interesting, several practical questions arise when dealing with realistic models of computation and communication. As reported above, the algorithm's description is too succinct and no details are @@ -352,7 +352,7 @@ and then we present some variants of this basic strategy. \subsection{Basic strategy} The description of our algorithm will be given from the point of view a processor~$i$. -The principle of the \besteffort{} strategy is that each processor, +The principle of the \besteffort{} strategy is that each processor that detects it has more load than some of its neighbors, sends some load to the most of its less loaded neighbors, doing its best to reach the equilibrium between the involved neighbors and itself. @@ -371,7 +371,7 @@ at each iteration of the load balancing process, processor~$i$ \item the mean of the loads of the selected neighbors and processor i. \end{itemize} Let $S_i(t)$ be the set of the selected neighbors, and - $\bar{x}(t)$ be the mean of the loads between the selected neighbors and processor $i$ is given as follows: + $\bar{x}(t)$ be the mean of the loads between the selected neighbors and processor $i$ which is given as follows: \begin{equation*} \bar{x}(t) = \frac{1}{\abs{S_i(t)} + 1} \left( x_i(t) + \sum_{j\in S_i(t)} x^i_j(t) \right) @@ -410,7 +410,7 @@ at each iteration of the load balancing process, processor~$i$ With the aforementioned basic strategy, each node does its best to reach the equilibrium with its neighbors. However, one question should be outlined here: How can we handle the case where two (or more) node initiators that may send -concurrently some amount of loads to the the same less loaded neighbor? Indeed, +concurrently some amount of load to the the same less loaded neighbor? Indeed, %since each node may take the same kind of decision at the same time, there is a risk that a node will receive load from several of its neighbors, and then is temporary going off the equilibrium state. @@ -542,7 +542,7 @@ actual source code that was used for the experiments% framework~\cite{casanova+giersch+legrand+al.2014.simgrid}. For the experiments, we used a pre-release of SimGrid 3.7 (Git commit 67d62fca5bdee96f590c942b50021cdde5ce0c07, available from - \url{https://gforge.inria.fr/scm/?group_id=12})}, and which is + \url{https://github.com/simgrid/simgrid})}, and which is available at \url{http://info.iut-bm.univ-fcomte.fr/staff/giersch/software/loba.tar.gz}. @@ -553,8 +553,8 @@ control channel, or on the data channel. Its behavior is sketched by Algorithm~\ref{algo.recv}. When a message is received, it is pushed in a buffer of received messages, to be later consumed by one of the other threads. There are two such buffers, one for the control messages, and one for the data -messages. The buffers are implemented with a lock-free FIFO -\cite{sutter.2008.writing} to avoid contention between the threads. +messages. +The buffers are implemented with first-in, first-out queues (FIFO). \begin{algorithm} \caption{Receiving thread} @@ -728,7 +728,7 @@ nodes: 16, 64, 256, and 1024 nodes is built in a similar way. The distributed processes of the application were then logically organized along three possible typologies: a line, a torus or an hypercube. Tests were divided into two groups on the basis of the initial distribution of the global load: i) -Tests were performed with the total load initially on only one node%(at one end for the line topology) +tests were performed with the total load initially on only one node%(at one end for the line topology) , ii) and other tests for which the load was initially randomly distributed across all the participating nodes of the platform. The total amount of load was fixed to a number of load units equal to 1000 times the number of node. The average load is then of 1000 @@ -856,13 +856,11 @@ The main results for our simulations on grid platforms are presented in Figures~ % The results in Figure~\ref{fig.results1} are when the load to balance is initially on only one node, while the results in Figure~\ref{fig.resultsN} are -when the load to balance is initially randomly distributed over all nodes. - +when the load to balance is initially randomly distributed over all nodes. On both figures, the CCR is $10/1$ on the left column, and $1/10$ on the right column. %With a computation/communication cost %ratio of $1/1$ the results are just between these two extrema, and definitely %don not give additional information, so we chose not to show them here. - On each of Figures~\ref{fig.results1} and~\ref{fig.resultsN}, the results are given for the process topology being, from top to bottom, a line, a torus or an hypercube. @@ -882,7 +880,7 @@ allocated time. \subsubsection{The \besteffort{} and \makhoul{} strategies without virtual load} The {\it simple} ({\it plain}) version of each strategy is defined as the load balancing -algorithm without virtual load's transfers. For each algorithm, we compare the simple +algorithm without virtual load's transfers. For each strategy, we compare the simple version (without virtual load) and the improved one (with virtual load). Each algorithm is evaluated in terms of achieved idle time and convergence time. @@ -933,7 +931,7 @@ communication are slow (on the left part of Figure ~\ref{fig.results1}). \smallskip When the load to balance is initially randomly distributed over all nodes, we can see from Figure \ref{fig.resultsN} that the effect of virtual load is not significant for the line topology structure. However, for both torus and hypercube structures with CCR = 1/10 (on the left of the figure), the performance of virtual load transfers is significantly better. This is explained by the fact -that for small CCR values, high communication costs plays quite a significant role. However, the impact of +that for small CCR values, high communication costs plays quite a significant role. Moreover, the impact of communication becomes less important as the CCR values increases, since larger CCR values result in smaller communication times. We also tested the impact of CCR values on the performance of each algorithm in terms of idle times. From Figures~\ref{fig.results1} and ~\ref{fig.resultsN} we can find that our virtual load scheme achieves a really good average idle times, which is quite close to both its own simple version and its direct competitor {\it Bertsekas and Tsitsiklis} algorithm. As expected, for coarse grain applications (CCR =10/1), idle times are close to 0 since processors are inactive the most of times compared to fine grain applications. @@ -944,7 +942,7 @@ convergence time achieved by the compared strategies. This is because, upon load \smallskip Unlike {\it Betsekas and Tsistlikis} algorithm, our approach is not really sensitive when -we deal with realistic models of computation and communication. This is due to two main features: i) the use of "virtual load" transfers winch allows nodes to predict the load they receive in the subsequent iterations steps, ii) and the greedy neighbors selection adopted by our algorithm at each time step in the load balancing process. The involved neighbors are selected in such a way that load difference between the computational resources is minimized as low as possible. +we deal with realistic models of computation and communication. This is due to two main features: i) the use of "virtual load" transfers which allows nodes to predict the load they receive in the subsequent iterations steps, ii) and the greedy neighbors selection adopted by our algorithm at each time step in the load balancing process. The involved neighbors are selected in such a way that load difference between the computational resources is minimized as low as possible. \smallskip Comparing the results of the extended version (with virtual load) to the results of the simple one, we observe in Figs.~\ref{fig.results1} and ~\ref{fig.resultsN} that the improved version gives the best performances. It always improves both convergence and idle times significantly in all figures. This is because, with virtual load transfers, the algorithm seeks greedily to ensure a certain degree of load balancing for processors by taking into account the information about the predictive loads not received yet. Consequently, this leads to optimize the final convergence time of the load balancing process. Similarly, the extended version achieves much better results than the simple one when considering larger platforms, as shown in Figs.~\ref{fig.results1} and ~\ref{fig.resultsN}.