Les six approches de d´ecomposition et de r´epartition pr´esent´ees dans la section pr´ec´edente
ont chacune des avantages et des inconv´enients relatifs au choix d’ex´ecution et aux
objec-tifs de simulation (e.g. non prise en compte de la structure du mod`ele ou encore nombre de
nœuds limit´es). De ce fait, en fonction des objectifs de simulation, une combinaison entre
diff´erentes approches peut ˆetre envisag´ee. Dans la suite de ce document, nous consid´erons
principalement la distribution des ´el´ements du mod`ele, mais incluons ´egalement la
distri-bution d´ecentralis´ee des ´ev´enements, comme m´ethodes de d´ecomposition pour la simulation
distribu´ee `a ´ev´enements discrets. En effet, les principes et probl`emes d’ex´ecution notamment
de synchronisation inh´erents `a ces deux m´ethodes sont similaires. Par ailleurs, ces deux types
de r´epartition sont les plus aptes `a exploiter la nature et les objectifs des simulations de
syst`emes complexes `a larges flux de donn´ees, et ce notamment parce que les flux sont d’un
point de vue du syst`eme distribu´e des ´echanges de messages entre des composants
spatiale-ment distincts.
3.3.1 Ex´ecution r´epartie
Dans les sch´emas de distribution d´ecentralis´ee des ´ev´enements et de distribution des
´el´ements du mod`ele, la simulation peut ˆetre vue comme une collection de processus
lo-giques [Misra, 1986b] avec en g´en´eral aucun acc`es `a des variables partag´ees. Chaque processus
ex´ecute une suite s´equentielle d’´ev´enements qui sont en coop´eration ou en concurrence avec
les ´ev´enements des autres processus. Ce type d’ex´ecution a ´et´e introduit par Leslie Lamport
dans [Lamport, 1978] o`u il d´efinit une ex´ecution r´epartie dans le mod`ele `a communication
par messages. Tout au long de leur cycle de vie, les processus produisent de fa¸con discr`ete
trois types d’´ev´enements :
• L’envoi d’un messageM produit un ´ev´enement d’´emission ;
• La r´eception d’un messageM produit un ´ev´enement de r´eception ;
• L’ex´ecution d’une instruction relative `a l’application n’induisant ni envoi ni r´eception
de message produit un ´ev´enement interne.
L’expression histoire locale d´efinit la s´equence de tous les ´ev´enements produit par un
processus Pi. L’union de toutes les histoires locales (ensemble des ´ev´enements) munie d’une
relation d’ordre partiel sur les ´ev´enements constitue une ex´ecution r´epartie. L’introduction
n´ecessaire d’une relation d’ordre sur les ´ev´enements r´egule l’ex´ecution en parall`ele de ces
´ev´enements en les liant par un principe de causalit´e3. En effet, ces strat´egies de distribution
et ce mode d’ex´ecution de la simulation conduisent en g´en´eral `a des violations de la contrainte
de causalit´e vue en section 1.1.4.
3
Si les processus sont totalement ind´ependants (i.e. aucune interaction), il n’y a pas besoin de d´efinir
d’ordre.
3.3.2 Ordre causal sur les ´ev´enements
Un des challenges de la simulation distribu´ee `a ´ev´enements discrets est de maintenir la
relation causale entre les ´ev´enements tout en exploitant le parall´elisme inh´erent pour ex´ecuter
plus rapidement les tˆaches. Maintenir la causalit´e signifie garantir un certain ordre s´equentiel
entre les ´ev´enements s’ex´ecutant en parall`ele dans plusieurs processus diff´erents. Rappelons
que, informellement, le principe de causalit´e signifie qu’un ´ev´enement futur ne peut influencer
un ´ev´enement pass´e ou encore que les causes doivent pr´ec´eder les effets. Cette causalit´e
implique ainsi la d´efinition d’un ordre partiel des ´ev´enements. Plus formellement un ordre
partiel not´eEb= (E, →E) est constitu´e d’un ensembleEappel´e le domaine de l’ordre partiel
et d’une relation binaire transitive et non-r´eflexive (→E) sur les ´el´ements de ce domaine. Le
fait de noter e1 →E e2 signifie que e1 pr´ec`ede e2 dans l’ordre partiel.
• Une relation binaire est non-r´eflexive si∀e∈E :e →E eest faux ;
• Une relation binaire est transitive si∀e1, e2, e3 ∈E :e1 →E e2 ∧ e2 →E e3 ⇒ e1→E
e3.
Une ex´ecution r´epartie est un ordre partiel not´e Hb = (H, →H). H ´etant
l’en-semble des ´ev´enements produits par les processus et →H la relation de pr´ec´edence causale
[Lamport, 1978]. La pr´ec´edente causale not´ee →i est d´efinie par les trois relations suivantes :
i. Relationprogram-order : deux ´ev´enements produits par un mˆeme nœud sont totalement
ordonn´es ;
ii. Relation receive-f rom: send(m) pr´ec`edereceive(m) ;
iii. Relation de transitivit´e : (e1 pr´ec`ede e2) ∧(e2 pr´ec`ede e3)⇒ (e1 pr´ec`ede e3).
La figure 3.1 illustre ces trois r`egles pr´esentant une ex´ecution dans laquelle, par exemple,
e31 pr´ec`edee25 causalement. En effet, de l’utilisation de la r`egle (i) il est possible de d´eduire
que e12 pr´ec`ede e13 qui pr´ec`ede e14 (les e1i sont totalement ordonn´es). La r`egle (ii) nous dit
quee31pr´ec`edee12et de mˆeme nous dit que e14pr´ec`edee25. Il est par cons´equent d´eductible
par la r`egle de transitivit´e (r`egle iii) que e31 pr´ec`ede e25.
P3
P2
P1
e12
e11 e13 e14
e21
e31
e22 e23
e32
e24
e25
e26
e33 e34
Fig.3.1 —Pr´ec´edence causale
Une ex´ecution r´epartie est constitu´ee d’un ensemble d’´ev´enements ordonn´es par la
pr´ec´edence causale. Les synchronisations entre les processus pour assurer cet ordre sont
mod´elis´ees par des messages estampill´es entre ces processus. Les erreurs causales peuvent
ˆetre ´evit´ees si chaque processus logique ob´eit `a ses contraintes de causalit´e locale et interagit
suffisamment par ´echange de messages.
3.3.3 Ordre sur les livraisons de messages
L’ordonnancement des ´ev´enements selon les r`egles causales ne pr´ecise nullement comment
se comportent les ´echanges d’information par envoi de messages. Par exemple un message peut
fort bien en doubler un autre sur le r´eseau de communication sans pourtant mettre en d´efaut
le principe de l’ex´ecution causalement coh´erente. L’introduction de r`egles sur les livraisons
des messages peut alors ˆetre n´ecessaire afin de conserver une simulation coh´erente.
L’ordre First In First Out (FIFO) assure que si un processus P1 ´emet deux messages
`a destination du mˆeme processus P2 alors ces messages sont re¸cus dans l’ordre d’´emission
(relation d’ordre sur un canal de communication) [Charron-Bost et al., 1996]. Cet ordre est
un ordre partiel sur les ´ev´enements dans lequel est ajout´e aux trois r`egles vues pr´ec´edemment,
la r`egle suivante : soit m1 et m2 deux messages destin´es au mˆeme processusP2 et ´emis par
un mˆeme processus P1. Cette r`egle nous assure qu’il n’existe pas de messages partis apr`es
m1 sur le mˆeme processus et qui arrivent avant lui chez le mˆeme destinataire.
iv. send(m1)→i send(m2)⇒ receive(m1)→i receive(m2)
L’ordre causal [Birman et Joseph, 1987] est une extension de la pr´ec´edence causale et une
g´en´eralisation de l’ordreFIFO dans la mesure o`u il prend en compte la transitivit´e. Comme
pour l’ordre FIFO, la r`egle iv est ajout´ee afin d’assurer qu’il n’existe pas de messages partis
causalement apr`es un message mi et qui arrivent avant celui-ci chez le mˆeme destinataire.
La diff´erence r´eside dans le fait que pour l’ordre causal aucune hypoth`ese n’est r´ealis´ee sur
l’identit´e de l’´emetteur. L’ordre causal est ´egalement un ordre partiel.
1
m
3
m
2
m
P3
P2
P1
Fig. 3.2 —Ex´ecution ne respectant pas l’ordre causal
La figure 3.2 pr´esente une ex´ecution qui respecte l’ordre FIFO, mais qui par contre ne
respecte pas l’ordre causal. Pour que cette ex´ecution respecte l’ordre causal il faut que m3
soit d´elivr´e apr`es m1. En effet send(m1)→i send(m3) (r`egle iii) implique que pour respecter
la g´en´eralisation de la r`egle iv il faut avoir receive(m1)→i receive(m3).
3.3.4 Ordre total
La relation de pr´ec´edence causale est une relation d’ordre partiel. En cons´equence tous
les ´ev´enements d’une simulation distribu´ee ne sont pas ordonn´es, par exemple sur la figure
3.1 les ´ev´enements e11 et e31 sont ind´ependants. Certaines simulations peuvent n´ecessiter
un ordre total sur les ´ev´enements qui est alors r´ealis´e en d´efinissant une extension lin´eaire
[Charron-Bost et al., 1996] de l’ordre partiel ´etablit. Une extension lin´eaire Sb= (S,→S) d’un
ordre partiel Hb = (H, →H) est un tri topologique de cet ordre partiel, tel que :
• S=H;
• L’extension lin´eaire pr´eserve l’ordre partiel pr´ec´edemment ´etabli :∀a, b∈ H, a →H
b⇒a→Sb;
• La relation→S d´efinit un ordre total.
La notion d’extension lin´eaire permet de d´efinir un ordre total sur tous les ´ev´enements de
livraison des messages. D´efinir un ordre total sur les ´ev´enements assure que lorsque deux
pro-cessusP1 etP2re¸coivent deux messagesm1 etm2, ceux-ci d´elivreront les deux messages dans
le mˆeme ordre quel que soit l’ordre d’´emission. Ainsi les deux processus ont en permanence
la mˆeme vue des livraisons de messages. Le recours a un ordre total `a ´et´e souvent utilis´e dans
le cas d’ex´ecutions r´eparties dans le mod`ele `a communication par m´emoire partag´ee. Dans ce
sch´ema d’ex´ecution les op´erations d’envoi et de r´eception des messages sont remplac´ees par
des op´erations de lectures et d’´ecritures sur la m´emoire partag´ee. La coh´erence atomique est
connue pour ˆetre le plus ancien crit`ere ainsi que le plus fort. Ce crit`ere a ´et´e introduit par
Lamport [Lamport, 1986] dans le cas d’un seul ´ecrivain (single-writer) puis ´etendu par Misra
dans [Misra, 1986a] `a plusieurs ´ecrivains (multiple-writer) et consiste `a ordonner totalement
les ´ev´enements.
La distribution des ´el´ements du mod`ele n´ecessite des m´ecanismes de synchronisation
expli-cites. Ces m´ecanismes d´ependent de la nature, dirig´ee par le temps ou par les ´ev´enements, de
la simulation (cf. section 1.3). Ils d´ependent ´egalement de la nature synchrone ou asynchrone
de la simulation. Le choix entre simulation synchrone et simulation asynchrone consiste `a
choisir la mani`ere dont va ˆetre r´esolu le probl`eme d’ordonnancement des ´ev´enements : ordre
partiel causal, FIFOou encore ordre total.
Dans le document
ATLAS, une plate-forme pour la modélisation et la simulation de systèmes désagrégés
(Page 70-73)