Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parClarice Roussel Modifié depuis plus de 10 années
2
Mises en œuvre distribuées de programmes synchrones Pascal AubryEnvironnement de Programmation pour Applications Temps-Réel http://perso. univ-rennes1.fr/pascal.aubry
3
Distribution Pourquoi ?Pourquoi ? –délocalisation géographique (répartition) –gain de performance (parallélisme) –tolérance aux fautes (redondance) Comment ?Comment ? –parallélisme intrinsèque au langage –programmation impérative des communications –parallélisation automatique –...
4
Distribution du synchrone Pour garder lapproche synchronePour garder lapproche synchrone –systèmes réactifs –cadre formel automatisation des transformationsautomatisation des transformations outils de validationoutils de validation –approche algorithmique indépendance vis-à-vis de l architectureindépendance vis-à-vis de l architecture [Girault 94] (Lustre) [Caillaud 94] (automates)
5
Signal [Chéron 91] :[Chéron 91] : –Transformations syntaxiques de programmes Signal [Maffeïs 93] :[Maffeïs 93] : –ordonnancement de flots synchrones [Kountouris], [Machard] :[Kountouris], [Machard] : –temps dexécution, O.S. temps-réel [Sorel 92] : Syndex[Sorel 92] : Syndex –adéquation algorithme architecture
6
Préambule méthodologie modèlethéorie application correction intégration
7
Préambule méthodologie modèlethéorie application correction intégration
8
Préambuleméthodologieapplicationcorrectionintégration critères qualitatifs de la distribution
9
process JEU = (RES,SIG) := ARBITRE(SIG_A,SIG_B) SIG_A := JOUEUR(SIG) SIG_B := JOUEUR(SIG) end Illustration AB SIG_A Match nul SIG signaux répartitioncalculdépendances
10
Répartition avec Syndex compilateur source directivesprogrammedistribué répartiteur graphe ?
11
Plus convivial... compilateur source directivesprogrammedistribué répartiteur graphe + INTÉGRATION
12
Le point de vue de lutilisateur machine entréesconfiguration programmedistribué environnement trace sourcedirectives
13
Merci, chef. Le point de vue de lutilisateur source directives trace chuis contentMais au fait, comment ça marche ton truc ? Euh… je sais pas, chef. S CORRECTION (modèle)
14
–Les calculs effectués correspondent-ils aux calculs spécifiés ? Les corrections obligatoires la correction fonctionnellela correction fonctionnelle
15
–la mémoire nécessaire à lexécution est-elle bornée ? la correction spatialela correction spatiale Les corrections obligatoires la correction fonctionnellela correction fonctionnelle
16
–le temps de réponse du système est-il borné ? Les corrections obligatoires la correction fonctionnellela correction fonctionnelle la correction spatialela correction spatiale la correction temporellela correction temporelle
17
Les corrections obligatoires la correction fonctionnellela correction fonctionnelle –une partie du programme sexécute-t-elle infiniment plus vite quune autre ? léquitéléquité la correction spatialela correction spatiale la correction temporellela correction temporelle
18
Les corrections obligatoires la correction fonctionnellela correction fonctionnelle léquitéléquité la correction spatialela correction spatiale la correction temporellela correction temporelle Propriétés classiques
19
Les corrections facultatives la correction flot-de-donnéesla correction flot-de-données –lordre dobservation des signaux est-il fidèle à l ordre spécifié ?
20
Les corrections facultatives la correction flot-de-donnéesla correction flot-de-données –Les instants logiques peuvent-ils se chevaucher ? la correction synchronela correction synchrone
21
Les corrections facultatives la correction flot-de-donnéesla correction flot-de-données –lexécution fait-elle des suppositions sur son environnement dexécution ? la correction synchronela correction synchrone la correction compositionnellela correction compositionnelle spécification implémentation environnement A B C D
22
–lexécution fait-elle des suppositions sur son environnement dexécution ? Les corrections facultatives la correction flot-de-donnéesla correction flot-de-données la correction synchronela correction synchrone la correction compositionnellela correction compositionnelle spécification implémentation environnement A B C D CYCLE
23
Les corrections facultatives la correction flot-de-donnéesla correction flot-de-données la correction synchronela correction synchrone la correction compositionnellela correction compositionnelle Propriétés spécifiques
24
entrées directives observation stratégie implémentation dynamique ordonnancementenvironnemental ordonnancement statique / dynamique description instantanée distribuée spécification description instantanée Le point de vue du programmeur
25
Les corrections d'une mise en œuvre... sont des propriétés sur les occurrences des signaux du programme.sont des propriétés sur les occurrences des signaux du programme. Les analyses de propriétés statiques ne suffisent pas.Les analyses de propriétés statiques ne suffisent pas. NÉCESSITÉ DUN MODÈLE DYNAMIQUE
26
entrées directives observation stratégie implémentation dynamique ordonnancementenvironnemental description instantanée distribuée spécification description instantanée comportement inférence directives stratégie ordonnancement statique / dynamique ordonnancementenvironnemental ordonnancement
27
entrées observation spécification description instantanée comportement inférence directives stratégie ordonnancementenvironnemental directivesstratégie ordonnancementdynamique implémentation dynamique ordonnancementenvironnemental ordonnancementstatique description instantanée distribuée ordonnancement statique / dynamique
28
Le modèle dynamique entrées observation spécification description instantanée comportement inférence directives stratégie ordonnancementenvironnemental Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 Un exemple ordonnancement statique / dynamique observation inférence comportement
29
ordonnancement statique / dynamique entrées observation spécification description instantanée comportement inférence directives stratégie ordonnancementenvironnemental Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 h 1 (when X>0) X Y Z h 2 (¬h 1 when Y>0) h 3 (¬h 1 when ¬h 2 ) X Y Z X$1X Y Z Un exemple
30
ordonnancement statique / dynamique Un exemple entrées observation spécification description instantanée comportement inférence directives stratégie ordonnancementenvironnemental Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 h 1 (when X>0) X Y Z h 2 (¬h 1 when Y>0) h 3 (¬h 1 when ¬h 2 ) X Y Z X$1X Y Z X Y Z h ¬h1 h3h3
31
Un exemple observation spécification description instantanée comportement inférence directives stratégie ordonnancementenvironnemental Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 ( X, Y) (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... entrées X$1X Y Z h ¬h 1 h3h3 ordonnancement statique / dynamique
32
ordonnancement Un exemple observation spécification description instantanée inférence directives stratégie ordonnancementenvironnemental Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 entrées X$1X Y Z h ¬h 1 h3h3 (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... 2 2 3 3 7 2 2 0 0 3 1 Z X Y État initial : Instants : 1 2 3 4... comportement
33
Un exemple observation spécification description instantanée inférence directives stratégie ordonnancementenvironnemental Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 entrées X$1X Y Z h ¬h 1 h3h3 (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... comportement Une mise en œuvre mono-processeurséquentielle ordonnancement statique / dynamique
34
ordonnancementstatique Une mise en œuvre mono-processeurséquentielle Un exemple observation spécification description instantanée inférence Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 entrées X$1X Y Z h ¬h 1 h3h3 (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... comportement (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... X$1X Y Z h1h1 h2h2 h3h3 1 Z X Y État initial : 3 3 7 2 2 0 0 3 2 2 Instants : 1 2 3 4...
35
Une mise en œuvre mono-processeurséquentielle Un exemple observation spécification description instantanée inférence Z := X when X>0 default Y when Y>0 default X$1 X ^= Y ^= Z X init 1 entrées X$1X Y Z h ¬h 1 h3h3 (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... comportement (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... X$1X Y Z h1h1 h2h2 h3h3 1 Z X Y État initial : 3 3 7 2 2 0 0 3 2 2 Instants : 1 2 3 4...
36
Résultats : correction fonctionnelle : correction spatiale : correction temporelle : équité : correction synchrone : correction flots-de-données : correction compositionnelle : (-1, 2) ( 3, 7) ( 0,-1) ( 2, 0)... X$1X Y Z h1h1 h2h2 h3h3 1 Z X Y État initial : 3 3 7 2 2 0 0 3 2 2 Instants : 1 2 3 4...
37
Résultats : X Y S X$1 X Y Z h3h3 ¬h h S correction fonctionnelle : correction spatiale : correction temporelle : équité : correction synchrone : correction flots-de-données : correction compositionnelle : Cest dommage...
38
Préservation du formalisme SignalPréservation du formalisme Signal –intégration, récupération –validation (correction fonctionnelle) modularitémodularité Méthodologie dimplémentation parallèle
39
compilationcompilation Méthodologie dimplémentation parallèle P (| C | Q |) contrôlecalcul [Besnard 92]
40
calculs du processeur 1 calculs du processeur n Q (| Q 1 |... | Q n |) répartition des donnéesrépartition des données –au niveau du source distribution qualitativedistribution qualitative grâce aux pragmas de Signal V4grâce aux pragmas de Signal V4 –au niveau du graphe distribution quantitativedistribution quantitative nombreux algorithmes possiblesnombreux algorithmes possibles process JEU = topology "MASTER,cheyenne.irisa.fr" topology "PL_A, guernica.irisa.fr" topology "PL_B, megalo.irisa.fr" run_on {a} "PL_A" run_on {b} "PL_B" m:: (RES,SIG) := ARBITRE(SIG_A,SIG_B) a:: SIG_A := JOUEUR(SIG) b:: SIG_B := JOUEUR(SIG) end Méthodologie dimplémentation parallèle P (| C | Q |) compilation
41
Q (| Q 1 |... | Q n |) répartition des données nœuds de communication du processeur n nœuds de communication du processeur 1 communication des donnéescommunication des données Méthodologie dimplémentation parallèle P (| C | Q |) compilation Q (| Q 1 |... | Q n |) | (| Qle 1 |... | Qle n |) | (| Qle 1 |... | Qle n |) h1h1 hnhn X Y1Y1 YnYn
42
Q (| Q 1 |... | Q n |) répartition des données nœuds de communication du processeur n nœuds de communication du processeur 1 communication des donnéescommunication des données Méthodologie dimplémentation parallèle P (| C | Q |) compilation Q (| Q 1 |... | Q n |) | (| Qle 1 |... | Qle n |) | (| Qle 1 |... | Qle n |) X Y1Y1 YnYn XcXc h1h1 hnhn hchc
43
Q (| Q 1 |... | Q n |) répartition des données contrôle des calcul du processeur n contrôle des calculs du processeur 1 répartition du contrôlerépartition du contrôle Méthodologie dimplémentation parallèle P (| C | Q |) compilation C (| C 1 |... | C n |) Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données [Aubry, Machard 96]
44
Q (| Q 1 |... | Q n |) répartition des données communication du contrôlecommunication du contrôle Méthodologie dimplémentation parallèle P (| C | Q |) compilation C (| C 1 |... | C n |) | (| Cle 1 |... | Cle n |) Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données C (| C 1 |... | C n |) répartition du contrôle communication du contrôle du processeur n communication du contrôle du processeur 1 h, horloge produite sur et utilisée sur ; on communique b de vers. une horloge ne peut être communiquée de manière asynchrone. r, une horloge plus rapide ; b := h default not r
45
Q (| Q 1 |... | Q n |) répartition des données extraction des programmes distribuésextraction des programmes distribués Méthodologie dimplémentation parallèle P (| C | Q |) compilation Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données C (| C 1 |... | C n |) répartition du contrôle C (| C 1 |... | C n |) | (| Cle 1 | … | Cle n |) communication du contrôle P (| P 1 |... | P n |) P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) | Abs( P ) |) Un exemple : A B X Y A B X Y
46
Q (| Q 1 |... | Q n |) répartition des données extraction des programmes distribuésextraction des programmes distribués Méthodologie dimplémentation parallèle P (| C | Q |) compilation Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données C (| C 1 |... | C n |) répartition du contrôle C (| C 1 |... | C n |) | (| Cle 1 | … | Cle n |) communication du contrôle P (| P 1 |... | P n |) P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) | Abs( P ) |) Un exemple : D EC A B X Y
47
Q (| Q 1 |... | Q n |) répartition des données extraction des programmes distribuésextraction des programmes distribués Méthodologie dimplémentation parallèle P (| C | Q |) compilation Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données C (| C 1 |... | C n |) répartition du contrôle C (| C 1 |... | C n |) | (| Cle 1 | … | Cle n |) communication du contrôle P (| P 1 |... | P n |) P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) | Abs( P ) |) Un exemple : B D EC AX Y B C EY D
48
Q (| Q 1 |... | Q n |) répartition des données extraction des programmes distribuésextraction des programmes distribués Méthodologie dimplémentation parallèle P (| C | Q |) compilation Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données C (| C 1 |... | C n |) répartition du contrôle C (| C 1 |... | C n |) | (| Cle 1 | … | Cle n |) communication du contrôle P (| P 1 |... | P n |) P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) | Abs( P ) |) Un exemple : B D EC AX Y B C EY D AC E X D
49
Q (| Q 1 |... | Q n |) répartition des données Méthodologie dimplémentation parallèle P (| C | Q |) compilation C (| C 1 |... | C n |) répartition du contrôle C (| C 1 |... | C n |) | (| Cle 1 | … | Cle n |) communication du contrôle P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) extraction des programmes distribués Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données Schéma dexécutionSchéma dexécution –dans chaque instant –entre les instants
50
P Schéma dexécution dans linstant
51
P2P2P2P2 P1P1P1P1 P3P3P3P3 La mise en œuvre mono-processeur séquentielle est impossible car non compositionnelle. Il faut mettre en œuvre les processus P i sans introduire de cycle. Problème 1 : Schéma dexécution dans linstant Théorème 1 la mise en œuvre sur chaque processeur doit être compositionnelle.
52
P2P2 P1P1P1P1 P3P3 La mise en œuvre mono-processeur séquentielle est impossible car non compositionnelle. Problème 1 : Il faut mettre en œuvre les processus P i sans introduire de cycle. Schéma dexécution dans linstant
53
P2P2P2P2 P1P1P1P1 P3P3P3P3 La mise en œuvre mono-processeur séquentielle est impossible car non compositionnelle. Problème 1 : Schéma dexécution dans linstant Il faut mettre en œuvre les processus P i sans introduire de cycle.
54
P2P2P2P2 P1P1P1P1 P3P3P3P3 Les mises en œuvre compositionnelles sont très coûteuses (ordonnancement dynamique). Problème 2 : Schéma dexécution dans linstant Il faut mettre en œuvre les processus P i sans introduire de cycle.
55
Une solution : les lignées. Schéma dexécution dans linstant A B C 21 nœuds, 34 arcs : 7 lignées, 12 arcs séquentiel séquentiel séquentiel séquentiel séquentiel séquentiel séquentiel Théorème 2 lordonnancement total des lignées naffecte pas la compositionnalité.
56
P2P2P2P2 P1P1P1P1 PnPnPnPn non synchronisé Sur chaque processeur : Initialiser répéter exécuter linstant courant Schéma dexécution entre instants
57
P2P2P2P2 P1P1P1P1 PnPnPnPn t non synchronisé Schéma dexécution entre instants 1 1 2 2 3 3 4 4 5 57 8 9 10 11 12 13 6 6POUBELLE
58
P2P2P2P2 P1P1P1P1 PnPnPnPn fortement synchronisé Sur chaque processeur : Initialiser répéter exécuter linstant courant signaler la fin de linstant courant attendre la fin de linstant courant ailleurs Schéma dexécution entre instants
59
P2P2P2P2 P1P1P1P1 PnPnPnPn t synchronisation fortement synchronisé Schéma dexécution entre instants 1 1 2 2 3 3 4 4 OK
60
P2P2P2P2 P1P1P1P1 PnPnPnPn faiblement synchronisé Sur chaque processeur : Initialiser n = 1 répéter exécuter linstant n signaler la fin de linstant n attendre la fin de linstant n-1 ailleurs n = n+1 Schéma dexécution entre instants
61
P2P2P2P2 PnPnPnPn t faiblement synchronisé ordre 1 Schéma dexécution entre instants 1 12 2 3 3 4 4 5 5 6 6 7 7 1OK
62
P2P2P2P2 PnPnPnPn t faiblement synchronisé ordre 2 Schéma dexécution entre instants 1 12 2 3 3 4 47 1 5 5 6 67 8 OK Moniteurs dinterface plus complexes
63
P2P2P2P2 P1P1P1P1 PnPnPnPn t problème : la synchronisation faible nest valable que pour une petite classe de programmes. ï pour les autres, il faut désynchroniser. 11 1 2 2 23 3 3 Schéma dexécution entre instants
64
P2P2P2P2 P1P1P1P1 PnPnPnPn t 11 1 2 2 23 3 3 1-désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 2 instants logiques. Schéma dexécution entre instants
65
P2P2P2P2 P1P1P1P1 PnPnPnPn t 11 1 2 2 23 3 3 1-désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 2 instants logiques. Schéma dexécution entre instants
66
P2P2P2P2 P1P1P1P1 PnPnPnPn t 11 1 2 2 23 3 3 1-désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 2 instants logiques. 44 4 2 5 5 Schéma dexécution entre instants OK
67
P2P2P2P2 P1P1P1P1 PnPnPnPn t 11 1 2 2 23 3 3 2-désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 3 instants logiques. 44 4 2 5 5 Schéma dexécution entre instants
68
P2P2P2P2 P1P1P1P1 PnPnPnPn t 11 1 2 2 23 3 3 2-désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 3 instants logiques. 44 4 5 5 56 6 67 Schéma dexécution entre instants moniteurs dinterface plus complexes ordonnanceurs dynamiques plus complexes plus de mémoire nécessaire
69
Q (| Q 1 |... | Q n |) répartition des données Méthodologie dimplémentation parallèle P (| C | Q |) compilation C (| C 1 |... | C n |) répartition du contrôle C (| C 1 |... | C n |) | (| Cle 1 | … | Cle n |) communication du contrôle P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) P i (| Q i | Qle i | C i | Cle i | Abs( P ) |) extraction des programmes distribués synchronisation, désynchronisation synchronisation, désynchronisation application dun schéma dexécution répartition des données répartition du contrôle génériquegénérique synchronisation, désynchronisation synchronisation, désynchronisation application dun schéma dexécution Q (| Q 1 |... | Q n |) | (| Qle 1 | … | Qle n |) communication des données
70
BUILD_PROG (compilation) LOAD_PROG (lancement) pour chaque processeur : PROG_P_comm.c communication PROG_P_io.c entrées sorties PROG_P_main.c principal PROG_P_body.c itération Signal Mise en œuvre : prototype PROG.SIG source + directives MODULES GÉNÉRATEUR LANCEUR
71
Mise en œuvre : Extracteur extracteur P_STATE.SIG état P_DF.SIG flots-de-données P_BOOL.SIG contrôle P_NUM.SIG calculs P_CL_n.SIG lignée n P_CL_n-1.SIG lignée n-1 P_CL_.SIG lignée... P_CL_2.SIG lignée 2 P_CL_1.SIG lignée 1 PROG_n.SIG programme n PROG_n-1.SIG programme n-1 PROG_.SIG programme... PROG_2.SIG programme 2 PROC_1.SIG programme 1 PROG.SIG quelconque DISTRIBUTION PARTITIONNEMENT AUTOMATES VÉRIFICATION [Aubry, Machard 96]
72
Conclusion Modèle mathématiqueModèle mathématique –dynamique ( instantané) –corrélation avec lexistant
73
Conclusion Modèle mathématiqueModèle mathématique MéthodologieMéthodologie –complète (du source au exécutifs) –modulaire Modèle mathématiqueModèle mathématique
74
Conclusion MéthodologieMéthodologie Outils nouveauxOutils nouveaux –prototype de distribution –extracteur de graphe –intégrés dans lenvironnement Signal Modèle mathématiqueModèle mathématique MéthodologieMéthodologie
75
Modèle mathématiqueModèle mathématique MéthodologieMéthodologie Outils nouveauxOutils nouveaux http://perso.univ-rennes1.fr/pascal.aubry
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.