]> AND Private Git Repository - hdrcouchot.git/blob - mixage.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
une version de plus
[hdrcouchot.git] / mixage.tex
1
2 Pour être exécuté, 
3 le mode des itérations généralisées nécessite que chaque élément 
4 connaisse la valeur de chaque autre élément dont il dépend.
5 Pratiquement, cela se réalise en diffusant les valeurs des éléments de 
6 proche en proche à tous les composants avant chaque itération.
7 Dans le mode généralisé 
8 \emph{asynchrone}, le composant n'attend pas: il met à jour sa 
9 valeur avec les dernières valeurs dont il dispose, même si celles-ci 
10 ne sont pas à jour.
11 Cette section vise l'étude de ce mode.
12
13
14 %\subsection{Généralisation au cadre asynchrone}
15 Pratiquement, chaque stratégie du mode généralisé peut être 
16 mémorisée  comme un nombre décimal dont la représentation en 
17 binaire donne la liste des éléments modifiés. Par exemple, pour un système 
18 à 5 éléments la stratégie définie par 
19 \begin{equation}\label{eq:pseudo}
20 s^{t}=24 \textrm{ si  $t$ est pair et  } s^{t}=15 \textrm{ sinon }
21 \end{equation}
22 \noindent active successivement les deux premiers éléments (24 est 11000) 
23 et les quatre derniers éléments (15  est  01111).  
24 % , it is sufficient to establish  that the set $\{t \mid t \in \mathbb{N}
25 % \land \textit{bin}(s^t)[i]  = 1\}$  is infinite for  any $i$,  $1 \le i  \le n$,
26 % where
27 % The  synchronous iterations  modes are  defined for  any $i  \in
28 % \{1,\ldots,n\}$ and any time $t=0,1,2,...$ by:
29 % \vspace{-.5em}
30 % \begin{equation}\label{eq:sync}
31 %   x^{t+1}_i= \left\{
32 % \begin{array}{l}
33 % f_i(x^t) \textrm{ if } \textit{bin}(s^t)[i] = 1\\ 
34 % x^{t}_i \textrm{ otherwise }
35 % \end{array} 
36 % \right.
37 % \end{equation}
38 % \vspace{-.5em}
39 % Notice that  parallel iterations only  constrain $s^t$ to be  equal to $2^n-1$
40 % for any $t$ whereas chaotic iterations do not constrain $s$.
41 % for  convenient reasons  [[JFC  : a  affiner]],  the set  of components  $\{1,
42 % \ldots,  n\}$   may  be  partitioned   into  $\alpha$  blocks   $b_1,  \ldots,
43 % b_{\alpha}$.
44 % %Elements of $b_i$ are ordered w.r.t. the component number.
45 % For $1\le i \le \alpha$, let $B_i$ be the product-space of block $i$.
46 % Formaly, $B_i = \Pi_{j \in b_{i} } E_j$.
47 % To  ease   the  reading,  lowercase   variable  and  upercase   one  represent
48 % respectively an element of some $E_i$ and a matrix of elements in some $E_i$.
49 % The components  may  be updated  (in  a random  order)  according to  a
50 % strategy $s$, as in the synchronous mode. 
51 Dans le mode asynchrone, à chaque itération $t$, chaque composant peut
52 mettre à jour son état en 
53 fonction des dernières valeurs qu'il connaît des autres composants.
54 Obtenir ou non les valeurs les plus à jour dépend du temps de calcul et 
55 du temps d'acheminement de celles-ci. On parle de latence, de délai.
56
57 Formalisons le mode des itérations asynchrone.
58 Soit $x^0 =(x_1^0, \ldots, x_n^0)$ une configuration initiale.
59 Soit $(D^{t})^{t \in  \Nats}$ la suite de matrices de taille $n  \times n$  
60 dont chaque élément $D_{ij}^{t}$ représente la date (inférieure ou égale à $t$) 
61 à laquelle la valeur $x_j$ produite par le composant $j$ devient 
62 disponible au composant $i$. 
63 On considère que le délai entre l'émission par $j$ et la réception par $i$, 
64 défini par $\delta_{ij}^t  = t  - D_{ij}^{t}$, est borné par une constante $\delta_0$ pour tous les $i$, $j$.
65 Le \emph{mode des itérations généralisées asynchrone} 
66 est défini pour chaque  $i
67 \in \{1,\ldots,n\}$ et chaque  $t=0,1,2,...$ par:
68
69 \vspace{-.5em}
70 \begin{equation}\label{eq:async}
71   x^{t+1}_i= \left\{
72     \begin{array}{l}
73       f_i( x_1^{D_{i1}^t},\ldots, x_{n}^{D_{i{n}}^t})
74       \textrm{ si } i \in s^t \\ 
75       x^{t}_i  \textrm{ sinon.}
76     \end{array} 
77   \right.
78 \end{equation}
79
80 \noindent où $\textit{bin}$ convertit un entier en un nombre binaire.
81 Les itérations de $f$ sont \emph{convergentes} modulo une configuration 
82 initiale  $x^0$,  une  stratégie $s$ et une matrice de dates  $(D^{t})^{t  \in
83   \Nats}$, si la fonction atteint un point fixe.
84 Cela revient à vérifier la propriété suivante:
85 \begin{equation}\label{eq:conv}      
86 \exists t_0 \,.\, 
87 (\forall t  \,.\,
88 t \geq t_0  \Rightarrow  x^{t}=x^{t_0}).
89 \end{equation}
90 Sinon les itérations sont dites \emph{divergentes}.
91 De plus, si $ (x^{(t)})^{t \in \mathbb{N}}$ défini  selon l'équation 
92 \Equ{eq:async} satisfait \Equ{eq:conv}  pour tous les  $x^{(0)}
93 \in  E$,  pour toutes les stratégies pseudo-périodiques 
94 $s$  et pour toutes les matrices de dates,
95 $(D^{(t)})^{t  \in \Nats}$, alors les itérations de  $f$ sont 
96 \emph{universellement convergentes}.
97
98
99 \begin{xpl}
100 On considère cinq éléments à valeurs dans $\Bool$. 
101 Une configuration dans $\Bool^5$ est représentée par un entier entre 
102 0 et 31. 
103 La~\Fig{fig:mix:map} donne la fonction définissant la dynamique du 
104 système et son graphe d'interaction.
105 On note que le graphe d'interaction contient cinq cycles. Les résultats 
106 connus~\cite{Bah00} de conditions suffisantes établissant la convergence
107 du système pour les itérations généralisées sont
108 basés sur l'absence de cycles. Ils ne peuvent donc pas être appliqués ici.
109
110 \begin{figure}%[ht]
111   \begin{center}
112     $$ f(x)= \left \{
113     \begin{array}{lll}
114       f_1(x_1,x_2,x_3,x_4,x_5) & = & x_1.\overline{x_2} + \overline{x_1}.x_2 \\
115       f_2(x_1,x_2,x_3,x_4,x_5) & = & \overline{x_1 + x_2}  \\
116       f_3(x_1,x_2,x_3,x_4,x_5) & = & x_3.\overline{x_1} \\
117       f_4(x_1,x_2,x_3,x_4,x_5) & = & x_5  \\
118       f_5(x_1,x_2,x_3,x_4,x_5) & = & \overline{x_3} + x_4
119     \end{array}
120   \right.
121   $$
122   
123   \includegraphics[scale=0.55]{xplgraphmix}
124   \end{center}
125   \caption{Définition de $f:\Bool^5 \rightarrow \Bool^5$ et son graphe d'interaction}
126   \label{fig:mix:map}
127 \end{figure}
128
129
130 \begin{figure}
131   \begin{center}
132     \subfigure[Itérations synchrones de $f$.]{
133         \includegraphics[scale=0.50]{para_iterate_dec}
134         \label{fig:mix:xplparaFig}
135     }
136     \subfigure[Extrait des itérations unaires.]{
137         \includegraphics[scale=0.49]{chao_iterate_excerpt}
138         \label{fig:mix:xplchaoFig}
139     }
140     \end{center}
141  \caption{Graphes des itérations de $f$ définie à la figure~\ref{fig:mix:map}}
142 \end{figure}
143 \end{xpl}
144
145
146 Dans ce qui suit, les  configurations  sont représentées à l'aide d'entiers 
147 plutôt que nombres binaires. Le graphe des itérations synchrones est donné 
148 en~\Fig{fig:mix:xplparaFig}. Depuis n'importe quelle configuration, on constate 
149 qu'il converge vers le point fixe correspondant à l'entier 19.
150 Un extrait du graphe des itérations unaires est donné à 
151 la~\Fig{fig:mix:xplchaoFig}. Les libellés des arcs correspondent aux éléments 
152 activés. Les itérations unaires ne convergent pas pour la stratégie 
153 pseudo-périodique donnée à l'équation~\Equ{eq:pseudo}:
154 le système peut infiniment boucler entre 11 et 3, entre 15 et 7.   
155
156 Comme les itérations unaires ne convergent pas pour certaines stratégies,
157 les itérations asynchrones basées sur les même stratégies peuvent ne pas 
158 converger non plus. Cependant, même si l'on considère que tous les composants 
159 sont activés à chaque itération, c'est à dire si $s^t$ est 
160 constamment égal à $2^n-1$, le délai peut introduire de la divergence.
161 On considère par exemple la matrice $D^t$ dont chaque élément vaut  $t$
162 sauf $D^t_{12}$  qui vaut $t-1$ si $t$  est impair. 
163 On a ainsi $x^{t+1}= f(x^{t})$ si $t$ est pair et  
164 $$
165 x^{t+1}  = \left(
166 f_1(x_1^{t},x_2^{t-1},x_3^{t},x_4^{t},x_5^{t}), f_2(x^{t}), \ldots, 
167 f_5(x^{t})
168 \right).
169 $$
170 \noindent sinon. 
171 En démarrant de $x^0=00011$, le système atteint $x^1 = 01011$ et boucle entre 
172 ces deux configurations. Pour une même stratégie, les itérations 
173 asynchrones divergent alors que les synchrones convergent.
174 Les sections suivantes de ce chapitre montrent comment résoudre ce problème.
175
176 \subsection{Itérations mixtes}
177 Introduit dans~\cite{abcvs05}  
178 le mode d'\emph{itérations mixtes} combine synchronisme et asynchronisme.
179 Intuitivement, les n{\oe}uds qui pourraient introduire des cycles dans 
180 les itérations asynchrones sont regroupés. 
181 Les noeuds à l'intérieur de chaque groupe seront itérés de manière 
182 synchrone. 
183 Les itérations asynchrones sont conservées entre les groupes.
184
185 \begin{Def}[Relation de Synchronisation]\label{def:eqrel}
186   Soit une fonction $f$ et  $\Gamma(f)$ son  graphe d'interaction. 
187   La  \emph{relation de synchronisation} $\eqNode$ est
188   définie sur l'ensemble des n{\oe}uds par:
189   $i \eqNode j$ si $i$ et $j$  appartiennent à la même composante fortement
190   connexe (CFC) dans $\Gamma(f)$.
191 \end{Def}
192
193 On peut facilement démontrer que la relation de synchronisation est une 
194 relation d'équivalence sur l'ensemble des éléments. 
195 On introduit quelques notations: par la suite \class{i} représente la classe 
196 d'équivalence de $i$ et $\mathcal{K}$ représente l'ensemble de toutes 
197 les classes, \textit{i.e.},
198 $\mathcal{K}=\{1,\ldots,n\}/\eqNode$. On peut définir les itérations mixtes.
199
200 \begin{Def}[Itérations mixtes]
201 Les itérations mixtes d'un système discret suivent l'équation \Equ{eq:async} où
202 de plus   $bin(s^t)[i]=bin(s^t)[j]$ et $D_{ij}^t=D_{ji}^t=t$ si $i \eqNode j$.
203 \end{Def}
204
205 Dans ce contexte, il n'y a plus de délai entre deux noeuds de la même CFC
206 et leurs mises à jour sont synchronisées.
207 Cependant, pour $p_0$ et $p_1$ dans la même  classe \class{p}, 
208 et $q$ dans une autre classe \class{q}, ce  mode opératoire autorise
209 des délais différents entre $p_0$ et $q$  et entre  $p_1$ et $q$.
210 Ainsi $p_1$ et $p_2$ sont distinguables même s'ils appartiennent à la même 
211 classe.
212 Pour gommer cette distinction, on définit le mode suivant:
213 \begin{Def}[Itérations mixtes avec delais uniformes]
214   Le mode mixte a des \emph{délais uniformes} si pour chaque 
215   $t=0,1,\ldots$ et pour chaque paire de  classes  $(\class{p}, \class{q})$,
216   il existe une constante $d^t_{pq}$  telle que la propriété suivante est 
217   établie:
218   \begin{equation*}
219 %    \forall t\, .\,      D_{p_0q_0}^{t}  =     D_{p_1q_1}^{t}  
220      \bigwedge_{p_k \in  \class{p}, q_k \in \class{q} } 
221      D_{p_{k}q_{k}}^{t}  =   d_{pq}^t    
222   \end{equation*}
223 \end{Def}
224
225 On a alors le théorème suivant.
226
227
228 \begin{theorem}\label{th:cvg}
229   Soit une fonction $f$ possédant un unique point fixe $x^*$ et une stratégie 
230   pseudo-périodique $s$.
231   Si les itérations synchrones convergent vers $x^*$ pour cette stratégie, 
232   alors les itérations mixtes à délai uniforme convergent aussi vers $x^*$
233   pour cette stratégie.
234 \end{theorem}
235
236 La preuve de ce théorème est donnée en section~\ref{anx:mix}.
237
238
239
240
241 \subsection{Durées de convergence} 
242 Cette section donne des bornes supérieures et inférieures des durées 
243 globales de convergence pour les modes synchrones, mixtes et asynchrones.
244 Pour simplifier le discours, on considère que les itérations 
245 convergent en $I$ étapes dans le mode synchrone et que le graphe 
246 d'interaction ne contient qu'une seule composante connexe.
247 Les durées de convergence prennent en compte les temps de calcul et les temps 
248 de communication, ce depuis l'initialisation et jusqu'à la stabilisation.
249
250 Pour simplifier l'évaluation, nous considérons que le temps de calcul d'une 
251 itération sur un composant ainsi que celui de communication entre deux 
252 composants est constant. Ceci implique en particulier que, dans 
253 le mode asynchrone, ces derniers  sont bornés. En d'autres mots, il existe 
254 un entier $\delta_0$ tel que $0 \le t-D_{ij}^t \le \delta_0$ est établi 
255 pour tout couple de n{\oe}uds $(i,j)$. 
256 Les notations utilisées sont les suivantes:
257 \begin{description}
258 \item [Taille pour coder l'information] elle représente le nombre 
259   de bits
260   nécessaires 
261   pour représenter  l'état courant du composant $i$ et est notée $\textit{cs}_i$;
262 \item [Temps de calcul] le composant $i$ a besoin de  $\textit{cp}_i$ unités de temps 
263   pour faire une mise à jour locale de son état;
264 \item   [Temps de communication] on utilise le modèle classique de communication 
265   $\beta+L\tau$  où $L$ est le nombre de bits  transférés. 
266   On définit  $\beta_{ij}$ et  $\tau_{ij}$ comme la latence et la bande passante du lien 
267   entre  $i$ et $j$.
268 \end{description}
269
270 % The updating strategy and the delays are respectively related to the computation
271 % and  the communication  times.  In fact,  the  notion of  strategy in  dynamical
272 % systems models the power heterogeneity between the components of the system. And
273 % the notion of delays models the heterogeneity in the communication links between
274 % the components.
275
276 \subsection{Le mode synchrone}
277 \label{sec:evalsync}
278
279 Dans le cas synchrone, la convergence la plus rapide est obtenue lorsque
280 le point fixe $x^*$ est accessible en un seul pas depuis toute configuration.
281 Le temps global de convergence est donc minoré par $T_{min}(Sync)=\max_i\textit{cp}_i$
282 Dans le cas général, si $B$ est la matrice d'adjacence représentant le 
283 graphe d'interaction, le temps global de convergence est 
284 \begin{equation}
285   \label{eq:tsisc}
286   T(\textit{Sync})=I\times(\max_i\textit{cp}_i+\max_{i,j}(B_{ji}\times(\beta_{ij}+\textit{cs}_i\times\tau_{ij})))
287 \end{equation}
288
289
290 \begin{xpl}
291   Intuitivement la convergence se propage selon les dépendances internes au système:
292   un n{\oe}ud se stabilise lorsque ceux dont il dépend sont eux aussi stables.
293   Cette stabilisation progressive est illustrée à la \Fig{fig:evalsync} qui
294   représente des exécutions synchrones dans le cas d'une initialisation avec la 
295   valeur (00100).
296   Dans cette figure et les suivantes, les blocs doublement hachurés
297   indiquent la stabilisation du composant.
298
299
300 \begin{figure}
301   \centering
302   \begin{minipage}{1\linewidth}
303     \includegraphics[scale=0.4]{eval_sync}
304     \caption{Itérations synchrones}
305     \label{fig:evalsync}
306   \end{minipage}
307   
308   \begin{minipage}{1\textwidth}
309     \includegraphics[scale=0.4]{eval_mixte}
310     \caption{Itérations mixtes avec
311       \class{1} $=\{1,2\}$, \class{3} $=\{3\}$,
312       \class{4} $=\{4,5\}$.}
313     \label{fig:evalmixte}
314   \end{minipage}
315   
316   \begin{minipage}{1\textwidth}
317     \includegraphics[scale=0.4]{eval_async}
318     \caption{Itérations asynchrones}
319     \label{fig:evalasync}
320   \end{minipage}
321 \end{figure}
322
323   
324    
325   On peut constater que la première classe  \class{1} se stabilise en deux itérations,
326   la seconde classe \class{3} atteint sa valeur finale l'itération suivante 
327   tandis que la dernière classe, \class{4}, converge en deux itérations.
328   \begin{equation}
329     \label{eq:I}
330     I=I_{\class{1}}+I_{\class{3}}+I_{\class{4}}=2+1+2=5
331   \end{equation}
332 \end{xpl}
333
334 % It is  possible to  speed up the  global execution  time while keeping  the same
335 % iteration  scheme  by  relaxing  the  synchronization constraints  only  on  the
336 % communications.    In  that   case,  called   SIAC  (Synchronous   Iterations  -
337 % Asynchronous  Communications),  a  component  sends  its state  value  to  every
338 % component  which needs  it  as soon  as that  value  has been  updated.  On  the
339 % receiver side, an iteration begins  only when all the state values corresponding
340 % to the  previous iteration  have been received  from the other  components whose
341 % the receiver depends on.
342
343 % In  that  context, the  synchronous  iterations  scheme  is preserved  as  every
344 % iteration  on any component  is computed  using the  dependency values  from the
345 % previous  iteration  on  the  other  components.  So,  the  global  behavior  is
346 % preserved   while  the   communication   cost  is   decreased.   Moreover,   the
347 % synchronization is no more global  but restricted to each connected component in
348 % the connection graph of the system.  Their respective speeds of evolution depend
349 % on their  \emph{source classes} (the  classes without any  external dependency).
350 % Also, between the starts of  two consecutive iterations, a component may receive
351 % from its dependencies  some data values which correspond  either to the previous
352 % iteration or  to the  current one (from  components which have  already finished
353 % their current iteration).   This implies a small buffering  of the received data
354 % (two elements per  dependency) and an explicit distinction  of the received data
355 % according to their original iteration.
356
357 % Finally, as well as in the  following subsections, it is not possible to provide
358 % an  exact evaluation  of the  global execution  time in  that case,  but  we can
359 % provide lower and  upper bounds.  The worst case of  that version coincides with
360 % the fully  synchronous scheme previously described.   And in the  best case, all
361 % the communications are overlapped by  the computations on the slowest component,
362 % implying the suppression of the communication term in~(\ref{eq:tsisc}).
363
364 % We have then the following boundaries:
365 % \begin{equation}
366 %   \label{eq:tsiac}
367 %   I\times(\max_i\textit{cp}_i)\le T(\textit{SIAC}) \le T(Sync)
368 % \end{equation}
369 % \begin{xpl}    
370 %   Figure~\ref{fig:evalsiac} illustrates the potential speed up obtained with the
371 %   SIAC variant in the same context of our running example.
372 %   \begin{figure}%[h]
373 %     \centering
374 %     % \includegraphics[width=\textwidth]{eval_siac.eps}
375 %     \includegraphics[width=\textwidth]{eval_siac.eps}
376 %     \caption{Execution  of  the \textit{SIAC}  iterations  starting  from state  4
377 %       (00100).}
378 %     \label{fig:evalsiac}
379 %   \end{figure}
380 % \end{xpl}
381
382 \subsection{le mode mixte}
383 \label{sec:evalmixed}
384
385
386 On considère $|\mathcal{K}|$  classes de composants synchronisés.
387 (comme donné  en équation~(\ref{eq:I})).
388 Soit $I_k$ le nombre d'itérations suffisant pour que la classe 
389 $\class{k}  \in \mathcal{K}$ se stabilise 
390 sachant que toutes ses dépendances ont déjà convergé. 
391 Ainsi $I$ vaut $\sum_{\class{k} \in \mathcal{K}} I_k$.
392 La borne inférieure pour la durée de convergence des itérations asynchrones est 
393 \begin{equation}
394   \label{eq:mixtelow}
395   T(\textit{Mixed})\ge \sum_{k\in \mathcal{K}} I_k(\max_{l\in k}\textit{cp}_{l})
396 \end{equation}
397 \noindent qui apparaît lorsque tous les délais de communication sont consommés 
398 par des durées de calcul.
399
400 Concernant le majorant, celui-ci correspond au cas où 
401 les durées de communications entre les classes
402 désynchronisées ne sont pas consommées par des calculs ou lorsque 
403 chaque classe nécessite la stabilisation de tous ses 
404 ascendants pour converger. On a dans ce cas:
405
406
407 \begin{equation}
408   \label{eq:mixteup}
409   T(\textit{Mixed})\le\sum_{k \in \mathcal{K}}\left(I_k\times(\max_{l\in
410       k}\textit{cp}_{l})+\max_{l\in k,e\in k', k\preceq k'}B_{el}\times(\beta_{le}+\textit{cs}_{l}\tau_{le})\right)
411 \end{equation}
412
413 \begin{xpl}
414   Une exécution du mode mixte est donnée à la~\Fig{fig:evalmixte}.
415   On peut constater que le temps d'exécution peut être  
416   plus petit que pour le 
417   mode synchrone.
418 \end{xpl}
419
420 \subsection{Le mode unaire asynchrone}
421 \label{sec:evalasync}
422 En termes de durée de convergence, ce mode peut être vu comme un 
423 cas particulier du mode mixte où toutes les classes sont des singletons.
424 La borne minimale peut donc s'exprimer comme:
425 \begin{equation}
426   \label{eq:asynclow}
427   T(\textit{Async})\ge\max_{i=1}^{n}I_i\times \textit{cp}_{i}
428 \end{equation}
429 où $I_i$ est le nombre d'itérations suffisant pour que le n{\oe}ud $i$ converge
430 et qui est atteint si tous les n{\oe}uds sont indépendants les uns des autres.
431 Cette borne est arbitrairement faible et n'est pas atteinte dès qu'une 
432 dépendance existe.
433 La borne supérieure quant à elle est donnée par:
434 \begin{equation}
435   \label{eq:asyncup}
436   T(\textit{Async})\le\sum_{i=1}^{n}\left(I_i\times \textit{cp}_{i}+\max_{1\le k \le n}B_{ki}(\beta_{ik}+\textit{cs}_{i}\tau_{ik})\right)
437 \end{equation}
438 et apparaît lorsque chaque élément dépend des autres et que les calculs 
439 ne recouvrent nullement les communications.
440
441 \begin{xpl}
442   La \Fig{fig:evalasync} présente un exemple d'exécution du mode unaire
443   asynchrone.
444   Certaines communications issues de l'élément $4$ n'ont pas été représentées
445   pour des raisons de clarté.
446   On constate que le temps global de convergence est plus petit que celui des
447   deux autres modes.
448 \end{xpl}
449
450
451
452
453
454
455
456
457
458  
459
460
461
462
463
464 % The  part  of  asynchronism often  reduces  the  global  execution time  as  the
465 % communications  between  subgroups are  implicitly  overlapped by  computations.
466 % However, the iterative scheme is no more the same as the synchronous one and its
467 % number of  iterations to reach  the convergence will  be greater or  equal.
468
469 %%% Local Variables: 
470 %%% mode: latex
471 %%% TeX-master: "main"
472 %%% ispell-dictionary: "french"
473 %%% mode: flyspell
474 %%% End: