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.
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
11 Cette section vise l'étude de ce mode.
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 }
22 \noindent active successivement les deux premiers éléments (24 est 11000)
23 et les quatre derniers éléments (15 est 01111).
24 On dit que la stratégie est
25 \emph{pseudo-periodique} si tous les éléments sont activés infiniment
27 % , it is sufficient to establish that the set $\{t \mid t \in \mathbb{N}
28 % \land \textit{bin}(s^t)[i] = 1\}$ is infinite for any $i$, $1 \le i \le n$,
30 % The synchronous iterations modes are defined for any $i \in
31 % \{1,\ldots,n\}$ and any time $t=0,1,2,...$ by:
33 % \begin{equation}\label{eq:sync}
36 % f_i(x^t) \textrm{ if } \textit{bin}(s^t)[i] = 1\\
37 % x^{t}_i \textrm{ otherwise }
42 % Notice that parallel iterations only constrain $s^t$ to be equal to $2^n-1$
43 % for any $t$ whereas chaotic iterations do not constrain $s$.
44 % for convenient reasons [[JFC : a affiner]], the set of components $\{1,
45 % \ldots, n\}$ may be partitioned into $\alpha$ blocks $b_1, \ldots,
47 % %Elements of $b_i$ are ordered w.r.t. the component number.
48 % For $1\le i \le \alpha$, let $B_i$ be the product-space of block $i$.
49 % Formaly, $B_i = \Pi_{j \in b_{i} } E_j$.
50 % To ease the reading, lowercase variable and upercase one represent
51 % respectively an element of some $E_i$ and a matrix of elements in some $E_i$.
52 % The components may be updated (in a random order) according to a
53 % strategy $s$, as in the synchronous mode.
54 Dans le mode asynchrone, a chaque itération $t$, chaque composant peut
55 mettre à jour son état en
56 fonction des dernières valeurs qu'il connaît des autre composants.
57 Obtenir où non les valeurs les plus à jours dépend du temps de calcul et
58 du temps d'acheminement de celles-ci. On parle de latence, de délai.
60 Formalisons le mode les itérations asynchrone.
61 Soit $x^0 =(x_1^0, \ldots, x_n^0)$ une configuration initiale.
62 Soit $(D^{t})^{t \in \Nats}$ la suite de matrice de taille $n \times n$
63 dont chaque élément $D_{ij}^{t}$ représente la date (inférieure ou égale à $t$)
64 à laquelle la valeur $x_j$ produite par le composant $j$ devient
65 disponible au composant $i$.
66 On considère que le délai entre l'émission par $j$ et la réception par $i$,
67 défini par $\delta_{ij}^t = t - D_{ij}^{t}$ est borné par une constante $\delta_0$ pour tous les $i$, $j$.
68 Le \emph{mode des itérations généralisées sans attente}
69 est défini pour chaque $i
70 \in \{1,\ldots,n\}$ et chaque $t=0,1,2,...$ par:
73 \begin{equation}\label{eq:async}
76 f_i( x_1^{D_{i1}^t},\ldots, x_{n}^{D_{i{n}}^t})
77 \textrm{ if } \textit{bin}(s^t)[i] = 1\\
78 x^{t}_i \textrm{ sinon }
83 \noindent où $\textit{bin}$ convertit un entier en un nombre binaire.
84 Les itérations de $f$ sont \emph{convergentes} modulo une configuration
85 initiale $x^0$, une stratégie $s$ et une matrice de dates $(D^{t})^{t \in
86 \Nats}$, si la fonction atteint un point fixe.
87 Cela revient à vérifier la propriété suivante:
88 \begin{equation}\label{eq:conv}
91 t \geq t_0 \Rightarrow x^{t}=x^{t_0}).
93 Sinon les itérations sont dites \emph{divergentes}.
94 De plus, si $ (x^{(t)})^{t \in \mathbb{N}}$ défini selon l'équation
95 \Equ{eq:async} satisfait \Equ{eq:conv} pour tous les $x^{(0)}
96 \in E$, pour toutes les stratégies pseudo périodiques
97 $s$ et pour toutes les matrices de dates,
98 $(D^{(t)})^{t \in \Nats}$, alors les itérations de $f$ sont
99 \emph{universellement convergentes}.
102 \subsection{Exemple jouet}
103 On considère cinq éléments prenant à valeurs dans $\Bool$.
104 Une configuration dans $\Bool^5$ est représentée par un entier entre
105 0 et 31. La~\Fig{fig:mix:map} donne la fonction définissant la dynamique du
106 système. La~\Fig{fig:mix:xplgraph} donne le graphe d'interaction associé à cette fonction.
107 On note que le graphe d'interaction contient cinq cycles. Les résultats
108 connus~\cite{Bah00} de conditions suffisantes établissant la convergence
109 du système pour les itérations généralisées sont
110 basés sur l'absence de cycles. Ils ne peuvent donc pas être appliqués ici.
113 \begin{minipage}[b]{0.55\linewidth}
117 f_1(x_1,x_2,x_3,x_4,x_5) & = & x_1.\overline{x_2} + \overline{x_1}.x_2 \\
118 f_2(x_1,x_2,x_3,x_4,x_5) & = & \overline{x_1 + x_2} \\
119 f_3(x_1,x_2,x_3,x_4,x_5) & = & x_3.\overline{x_1} \\
120 f_4(x_1,x_2,x_3,x_4,x_5) & = & x_5 \\
121 f_5(x_1,x_2,x_3,x_4,x_5) & = & \overline{x_3} + x_4
124 \caption{Fonction $f$ de l'exemple jouet.}
127 \begin{minipage}[b]{.40\linewidth}
129 \includegraphics[scale=0.55]{xplgraphmix}
131 \caption{Graphe d'interaction associé à $f$.}
132 \label{fig:mix:xplgraph}
138 \begin{minipage}{0.56\linewidth}
139 \includegraphics[scale=0.55]{para_iterate_dec}
140 \caption{Itérations parallèles de $f$.}\label{fig:mix:xplparaFig}
143 \begin{minipage}{0.39\linewidth}
144 \includegraphics[scale=0.55]{chao_iterate_excerpt}
145 \caption{Extrait d'itérations chaotiques.}
146 \label{fig:mix:xplchaoFig}
150 Dans ce qui suit, les configurations sont représentées à l'aide d'entiers
151 plutôt que nombres binaires. Le graphe des itérations parallèles est donné
152 en~\Fig{fig:mix:xplparaFig}. Depuis n'importe quelle configuration, on constate
153 qu'il converge vers le point fixe correspondant à l'entier 19.
154 Un extrait du graphe des itérations chaotiques est donné à
155 la~\Fig{fig:mix:xplchaoFig}. Les libellés des arcs correspondent aux éléments
156 activés. Les itérations chaotiques ne convergent pas pour la stratégie
157 pseudo périodique donnée à l'équation~\Equ{eq:pseudo}:
158 le système peut infiniment boucler entre 11 et 3, entre 15 et 7.
160 Comme les itérations chaotiques ne convergent pas pour certaines stratégies,
161 les itérations asynchrones basées sur les même stratégies peuvent ne pas
162 converger aussi. Cependant, même si l'on considère que tous les composants
163 sont activés à chaque itération, c'est à dire si $s^t$ est
164 constamment égal à $2^n-1$, le délais peut introduire de la divergence.
165 On considère par exemple la matrice $D^t$ dont chaque élément vaut $t$
166 sauf $D^t_{12}$ qui vaut $t-1$ si $t$ est impair.
167 On a ainsi $x^{t+1}= f(x^{t})$ si $t$ est pair et
170 f_1(x_1^{t},x_2^{t-1},x_3^{t},x_4^{t},x_5^{t}), f_2(x^{t}), \ldots,
175 En démarrant de $x^0=00011$, le système atteint $x^1 = 01011$ et boucle entre
176 ces deux configurations. Pour une même stratégies, les itérations
177 asynhrones divergent alors que les synchrones convergent.
178 Les sections suivantes de ce chapitre montrent comment résoudre ce problème.
180 \subsection{Itérations Mixes}
181 Introduit dans~\cite{abcvs05}
182 le mode d'\emph{itérations mixes} combine synchronisme et asynchronisme.
183 Intuitivement, les n{\oe}uds qui pourraient introduire des cycles dans
184 les itérations asynchrones sont regroupés.
185 Les noeuds à l'intérieur de chaque groupe seront itérés de manière
187 Les itérations asynchrones sont conservées entre les groupes.
189 \begin{Def}[Relation de Synchronisation]\label{def:eqrel}
190 Soit une fonction $f$ et $\Gamma(f)$ son graphe d'interaction.
191 La \emph{relation de synchronisation} $\eqNode$ est
192 définie sur l'ensemble des n{\oe}uds par:
193 $i \eqNode j$ si $i$ et $j$ appartiennent à la même composante fortement
194 connexe (CFC) dans $\Gamma(F)$.
197 On peut facilement démontrer que la relation de synchronisation est une
198 relation d'équivalence sur l'ensemble des éléments.
199 On introduit quelques notations: par la suite \class{i} représente la classe
200 d'équivalence de $i$ et $\mathcal{K}$ représente l'ensemble de toutes
201 les classe, \textit{i.e.},
202 $\mathcal{K}=\{1,\ldots,n\}/\eqNode$. On peut définir les itérations mixes.
204 \begin{Def}[Itérations mixes]
205 Les itérations mixes d'un système discret suit l'équation \Equ{eq:async} où
206 de plus $bin(s^t)[i]=bin(s^t)[j]$ et $D_{ij}^t=D_{ji}^t=t$ si $i \eqNode j$.
209 Dans ce contexte, il n'y a plus de délais entre deux noeuds de la même CFC
210 et leurs mises à jour sont synchronisées.
211 Cependant, pour $p_0$ et $p_1$ dans la même classe \class{p},
212 et $q$ dans une autre classe \class{q}, ce mode opératoire autorise
213 des délais différents entre $p_0$ et $q$ et entre $p_1$ et $q$.
214 Ainsi $p_1$ et $p_2$ sont distinguables même s'ils appartiennent à la même
216 Pour gommer cette distinction, on définit le mode suivant:
217 \begin{Def}[Itérations mixes avec delais uniformes]
218 Le mode mixe a des \emph{délais uniformes}si pour chaque
219 $t=0,1,\ldots$ et pour chaque paire de classes $(\class{p}, \class{q})$,
220 il existe une constante $d^t_{pq}$ telle que la propriété suivante est
223 % \forall t\, .\, D_{p_0q_0}^{t} = D_{p_1q_1}^{t}
224 \bigwedge_{p_k \in \class{p}, q_k \in \class{q} }
225 D_{p_{k}q_{k}}^{t} = d_{pq}^t
227 % Je me demande si cette formalisation n'a pas un souci par rapport à une
228 % formalisation avec un seul q ?! (car deux éléments supposent qu'ils sont distincts)
229 % car si on a deux éléments dans chaque classe, on peut alors avoir deux
230 % groupes de délais : supposons (a,b) dans p et (c,d) dans q
231 % a,c et b,d sont égaux et a,d et b,c sont égaux mais rien n'implique que a,c et
232 % a,d soient égaux !!!
235 On a alors le théorème suivant.
238 \begin{theorem}\label{th:cvg}
239 Soit une fonction $f$ possédant un unique point fixe $x^*$ et une stratégie
240 pseudo périodique $s$.
241 Si les itérations synchrones convergent vers $x^*$ pour cette stratégie,
242 alors les itérations mixes à délai uniforme convergent aussi vers $x^*$
243 pour cette stratégie.
246 La preuve de ce théorème est donnée en section~\ref{anx:mix}.
251 \subsection{Durées de convergence}
252 Cette section donne des bornes supérieures et inférieures des durées
253 globales de convergence pour les modes synchrones, mixes et asynchrones.
254 Pour simplifier le discours, on considère que les itérations
255 convergent en in $I$ étapes dans le mode synchrone et que le graphe
256 d'interaction ne contient qu'une seule composante connexe.
257 Les durées de convergence prennent en compte les temps de calcul et les temps
258 de communication, ce depuis l'initialisation et jusqu'à la stabilisation.
260 Pour simplifier l'évaluation, nous considérons que le temps de calcul d'une
261 itération sur un composant ainsi que celui de communication entre deux
262 composants est constant. Ceci implique en particulier que, dans
263 le mode asynchrone, ces derniers sont bornés. En d'autres mots, il existe
264 un entier $\delta_0$ tel que $0 \le t-D_{ij}^t \le \delta_0$ est établi
265 pour tout couple de n{\oe}uds $(i,j)$.
266 Les notations utilisées sont les suivantes:
268 \item [Taille pour coder l'information:] elle représente le nombre de nécessaire de bits
269 pour représenter l'état courant du composant $i$ et est notée $\textit{cs}_i$;
270 \item [Temps de calcul:] le composant $i$ a besoins de $\textit{cp}_i$ unités de temps
271 pour faire une mise à jour locale de son état;
272 \item [Temps de communication:] On utilise le modèle classique de communication
273 $\beta+L\tau$ où $L$ est le nombre de bits transférés.
274 On définit $\beta_{ij}$ et $\tau_{ij}$ comme la latence et la bande passante du lien
278 % The updating strategy and the delays are respectively related to the computation
279 % and the communication times. In fact, the notion of strategy in dynamical
280 % systems models the power heterogeneity between the components of the system. And
281 % the notion of delays models the heterogeneity in the communication links between
284 \subsection{Le mode synchrone}
287 Dans le cas synchrone, la convergence la plus rapide est obtenue lorsque
288 le point fixe $x^*$ est accessible en un seul pas depuis toute configuration.
289 Le temps global de convergence est donc minoré par $T_{min}(Sync)=\max_i\textit{cp}_i$
290 Dans le cas général, si $B$ est la matrice d'adjacence représentant le
291 graphe d'interaction, le temps global de convergence est
294 T(\textit{Sync})=I\times(\max_i\textit{cp}_i+\max_{i,j}(B_{ji}\times(\beta_{ij}+\textit{cs}_i\times\tau_{ij})))
299 Intuitivement la convergence se propage selon les dépendances internes au système:
300 un n{\oe}uds se stabilise lorsque ceux dont il dépend sont eux aussi stables.
301 Cette stabilisation progressive est illustrée à la \Fig{fig:evalsync} qui
302 représente des exécutions parallèles dans le cas d'une initialisation avec la
304 Dans cette figure et les suivantes, les blocs doublement hachurés
305 indiquent la stabilisation du composant.
310 \begin{minipage}{1\linewidth}
311 \includegraphics[scale=0.4]{eval_sync}
312 \caption{Itérations parallèles}
316 \begin{minipage}{1\textwidth}
317 \includegraphics[scale=0.4]{eval_mixte}
318 \caption{Itérations mixes avec
319 \class{1} $=\{1,2\}$, \class{3} $=\{3\}$,
320 \class{4} $=\{4,5\}$.}
321 \label{fig:evalmixte}
324 \begin{minipage}{1\textwidth}
325 \includegraphics[scale=0.4]{eval_async}
326 \caption{Itérations asynchrones}
327 \label{fig:evalasync}
333 On peut constater que la première classe \class{1} se stabilise en deux itérations,
334 la seconde classe \class{3} atteint sa valeur finale l'itération suivante
335 tandis que la dernière classe, \class{4}, converge en deux itérations.
338 I=I_{\class{1}}+I_{\class{3}}+I_{\class{4}}=2+1+2=5
342 % It is possible to speed up the global execution time while keeping the same
343 % iteration scheme by relaxing the synchronization constraints only on the
344 % communications. In that case, called SIAC (Synchronous Iterations -
345 % Asynchronous Communications), a component sends its state value to every
346 % component which needs it as soon as that value has been updated. On the
347 % receiver side, an iteration begins only when all the state values corresponding
348 % to the previous iteration have been received from the other components whose
349 % the receiver depends on.
351 % In that context, the synchronous iterations scheme is preserved as every
352 % iteration on any component is computed using the dependency values from the
353 % previous iteration on the other components. So, the global behavior is
354 % preserved while the communication cost is decreased. Moreover, the
355 % synchronization is no more global but restricted to each connected component in
356 % the connection graph of the system. Their respective speeds of evolution depend
357 % on their \emph{source classes} (the classes without any external dependency).
358 % Also, between the starts of two consecutive iterations, a component may receive
359 % from its dependencies some data values which correspond either to the previous
360 % iteration or to the current one (from components which have already finished
361 % their current iteration). This implies a small buffering of the received data
362 % (two elements per dependency) and an explicit distinction of the received data
363 % according to their original iteration.
365 % Finally, as well as in the following subsections, it is not possible to provide
366 % an exact evaluation of the global execution time in that case, but we can
367 % provide lower and upper bounds. The worst case of that version coincides with
368 % the fully synchronous scheme previously described. And in the best case, all
369 % the communications are overlapped by the computations on the slowest component,
370 % implying the suppression of the communication term in~(\ref{eq:tsisc}).
372 % We have then the following boundaries:
375 % I\times(\max_i\textit{cp}_i)\le T(\textit{SIAC}) \le T(Sync)
378 % Figure~\ref{fig:evalsiac} illustrates the potential speed up obtained with the
379 % SIAC variant in the same context of our running example.
382 % % \includegraphics[width=\textwidth]{eval_siac.eps}
383 % \includegraphics[width=\textwidth]{eval_siac.eps}
384 % \caption{Execution of the \textit{SIAC} iterations starting from state 4
386 % \label{fig:evalsiac}
390 \subsection{le mode mixe}
391 \label{sec:evalmixed}
393 % As detailed in Sect.~\ref{sec:mdn}, the mixed case asynchronously combines
394 % subsets of synchronized components (the different classes). The double interest
395 % of that approach is to ensure the convergence of the system while using
398 % The part of asynchronism often reduces the global execution time as the
399 % communications between subgroups are implicitly overlapped by computations.
400 % However, the iterative scheme is no more the same as the synchronous one and its
401 % number of iterations to reach the convergence will be greater or equal.
403 % Le nombre d'itérations requises pour obtenir la convergence en mode mixe
404 % dépend des arangements entre les délais de communication et les durées de
407 % number directly depends on the arrangement of delays during the execution and
408 % then on the communication times. But it also depends on the evolution functions
409 % which influence the way each part of the system stabilizes itself.
410 % In fact, according to its evolution function, a component may reach its fixed
411 % point state even with a part of its input data not recently updated. In
412 % addition, as mentioned earlier, the set of components in any system does not
413 % stabilize at the same time and there is often a propagation of the stabilization
414 % through the system.
415 % Also, the previously mentioned phenomenon of stabilization propagation through
416 % the system is still present in mixed mode.
418 On considère $|\mathcal{K}|$ classes de composants synchronisés.
419 (comme donné en équation~(\ref{eq:I}).
420 Soit $I_k$ le nombre d'itérations suffisants pour que la classe
421 $k \in \mathcal{K}$ se stabilise
422 sachant toutes ses dépendances ont déjà convergé.
423 Ainsi $I$ vaut $\sum_{k \in \mathcal{K}} I_k$.
424 La borne inférieur pour la durée de convergence des itérations asynchrones est
427 T(\textit{Mixed})\ge \sum_{k\in \mathcal{K}} I_k(\max_{l\in k}\textit{cp}_{l})
429 \noindent qui apparaît lorsque tous les délais de communication sont consommés
430 par des durées de calcul.
432 Concernant le majorant, celui-ci correspond au cas où
433 les durées de communications entre les classes
434 désynchronisées ne sont pas consommées par des calculs ou lorsque
435 chaque classe nécessite la stabilisation de tous ses
436 ascendants pour converger. On a dans ce cas:
441 T(\textit{Mixed})\le\sum_{k \in \mathcal{K}}\left(I_k\times(\max_{l\in
442 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)
446 Une exécution du mode mixe est donnée à la~\Fig{fig:evalmixte}.
447 On peut constater que le temps d'exécution peut être
448 plus petit que pour le
452 \subsection{Le mode généralisé asynchrone}
453 \label{sec:evalasync}
454 En terme de durée de convergence, ce mode peut être vu comme un
455 cas particulier du mode mixe où toutes les classes sont des singletons.
456 La borne minimale peut donc s'exprimer comme:
459 T(\textit{Async})\ge\max_{i=1}^{n}I_i\times \textit{cp}_{i}
461 où $I_i$ est le nombre d'itérations suffisant pour que le n{\oe}ud $i$ converge
462 et qui est atteint si tous les n{\oe}uds sont indépendants les uns des autres.
463 Cette borne est arbitrairement faible et n'est pas atteinte dès qu'une
465 La borne supérieure quant à elle est donnée par:
468 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)
470 et apparaît lorsque chaque élément dépend des autres et que les calcules
471 ne recouvrent nullement les communications.
474 La \Fig{fig:evalasync} présente un exemple d'exécution du mode asynchrone.
475 Certaines communications issues de l'élément $4$ n'ont pas été représentées
476 pour des raisons de clarté.
477 On constate que le temps global de convergence est plus petit que celui des
495 % The part of asynchronism often reduces the global execution time as the
496 % communications between subgroups are implicitly overlapped by computations.
497 % However, the iterative scheme is no more the same as the synchronous one and its
498 % number of iterations to reach the convergence will be greater or equal.
502 %%% TeX-master: "main"
503 %%% ispell-dictionary: "american"