• Aucun résultat trouvé

Ex´ecution r´epartie d’´ev´enements discrets

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.