La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Mises en œuvre distribuées de programmes synchrones Pascal AubryEnvironnement de Programmation pour Applications Temps-Réel univ-rennes1.fr/pascal.aubry.

Présentations similaires


Présentation au sujet: "Mises en œuvre distribuées de programmes synchrones Pascal AubryEnvironnement de Programmation pour Applications Temps-Réel univ-rennes1.fr/pascal.aubry."— Transcription de la présentation:

1

2 Mises en œuvre distribuées de programmes synchrones Pascal AubryEnvironnement de Programmation pour Applications Temps-Réel 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) Z X Y État initial : Instants : 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 : Instants :

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 : Instants :

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 : Instants :

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 POUBELLE

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 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 OK

62 P2P2P2P2 PnPnPnPn t faiblement synchronisé ordre 2 Schéma dexécution entre instants 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 Schéma dexécution entre instants

64 P2P2P2P2 P1P1P1P1 PnPnPnPn t 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 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 désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 2 instants logiques Schéma dexécution entre instants OK

67 P2P2P2P2 P1P1P1P1 PnPnPnPn t désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 3 instants logiques Schéma dexécution entre instants

68 P2P2P2P2 P1P1P1P1 PnPnPnPn t désynchronisation Sur chaque processeur, on autorise lexécution simultanée de 3 instants logiques 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


Télécharger ppt "Mises en œuvre distribuées de programmes synchrones Pascal AubryEnvironnement de Programmation pour Applications Temps-Réel univ-rennes1.fr/pascal.aubry."

Présentations similaires


Annonces Google