Parallélisme Synchrone

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Révisions Circuits électriques samedi 4 janvier 2014samedi 4 janvier 2014samedi 4 janvier 2014samedi 4 janvier 2014.
Introduction à la notion de fonction 1. Organisation et gestion de données, fonctions 1.1. Notion de fonction Déterminer l'image d'un nombre par une fonction.
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
International Telecommunication Union Accra, Ghana, June 2009 Relationship between contributions submitted as input by the African region to WTSA-08,
Sémantique d'Esterel1 Sémantique dEsterel t, P b t, E t instruction au début de linstant t instruction à la fin de linstant P signaux présents E signaux.
Calculs de complexité d'algorithmes
PrimEurope. Un problème grave et mal connu Les cas dinvalidité avec dépendance, perte dautonomie. Les services de laide sociale réclament la contribution.
Les numéros 70 –
Les numéros
Test des Machines de Mealy
Les opérateurs combinatoires
Les circuits séquentiels
Dpt. Télécommunications, Services & Usages Théorie de l information H. Benoit-Cattin Introduction 2. Sources discrètes & Entropie 3. Canaux discrets.
Introduction à la logique
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Tests et Validation du logiciel
Observatoire des Formations OBSERVATOIRE DES FORMATIONS LE RÔLE DU FORMATEUR RÉFÉRENT Synthèse des principaux résultats des enquêtes auprès des stagiaires.
Révision (p. 130, texte) Nombres (1-100).
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Par Clément en vacances sur la Côte d’Azur Le 15 Avril 2012
La compilation matérielle et logicielle d’Esterel v5 /v7
Automates et systèmes de transitions
Etienne Bertaud du Chazaud
La méthodologie………………………………………………………….. p3 Les résultats
MACHINE DE MOORE SYNCHRONE SIMPLIFIÉE Professeur à l'UHP / ESIAL
Cours #6 Conception d’unités de contrôle
La compilation logicielle dEsterel v5 Gérard Berry Chaire Algorithmes, machines et langages Collège de France Cours 4, 23 avril 2013.
Aviation seconde guerre
Présentation générale
Circuits et nombres 2-adiques
Les langages de programmation
Chaire Algorithmes, machines et langages
Ligue de Guyenne de tennis Commission Régionale d’Arbitrage
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
8 Organisations unidimentionnelles : indexage et hachage
Introduction à l’algorithmique
CSI3525: Concepts des Languages de Programmation

Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Chapitre 9 Les sous-programmes.
Partie II Sémantique.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)
1 INETOP
Aire d’une figure par encadrement
Les fondements constitutionnels

ASI 3 Méthodes numériques pour l’ingénieur
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Chaire Algorithmes, machines et langages
Paradigmes des Langages de Programmation
Suites numériques Définitions.
Méthodes de simulation logicielle pour Esterel Dumitru Potop-Butucaru.
Chapitre 3 :Algèbre de Boole
André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA
Algorithmique et programmation en
Esterel et SCADE, de la recherche à l’industrie Gérard Berry Collège de France Chaire Algorithmes, machines et langages
Esterel et SCADE, de la recherche à l’industrie 3. Urgences scientifiques posées par l’industrie Gérard Berry Collège de France Chaire Algorithmes, machines.
Gérard Berry Collège de France
Esterel de A à Z 5. Boucles et réincarnation en Esterel
Esterel de A à Z 4. Traduction d’Esterel en circuits
Transcription de la présentation:

Parallélisme Synchrone Gérard Berry Collège de France Chaire Informatique et sciences numériques Cours 6 du 13 janvier 2010

Parallélismes synchrone et vibratoire Musiciens et spectateurs négligent la vitesse du son Vibratoire Mais les acousticiens règlent sa propagation G. Berry, Collège de France, 06/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

Circuits digitaux combinatoires non (a et b) (non a) et b b et ou oux mux(c,a,b) =(c et a) ou ((non c) et b) mux c a b a b c s r s  a oux b oux c 1 1 s (a et b) ou (b et c) ou (c et a) 1 full adder G. Berry, Collège de France, 13/01/2010

Additionneur de von Neumann Pour n bits temps log(n) G. Berry, Collège de France, 13/01/2010

Le registre a a r ck ck reg(a) r a  a0, a1, a2, ... G. Berry, Collège de France, 13/01/2010

Les circuits séquentiels 6 13 19 a ...00110 ...01101 s ...10011 b r additionneur sériel G. Berry, Collège de France, 13/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Circuits cycliques G. Berry, Collège de France, 06/01/2010

e1 e2 e3 e0 a b (ab+b)*ba déterministe 1-hot (1 seul ri à 1) explosion en taille ! déterministe 1-hot (1 seul ri à 1) r0 r2 r1 r3 a b ok G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba non-déterministe pas d’explosion bien meilleur ! non-déterministe pas d’explosion b a ok G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba b a ok G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba a b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba a b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba ab b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba ab b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba abb b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba abb b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba abba b b b ok a a G. Berry, Collège de France, 13/01/2010

s0 s1 s2 s3 a b (ab+b)*ba abba b b b ok a a G. Berry, Collège de France, 13/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

L’exemple ABRO Emettre O dès que A and B sont arrivés Réinitialiser le comportement à chaque R A / B / A / O B / O A B / O R / Ecriture mémoire R : demande A : adresse B : donnée O : écriture G. Berry, Collège de France, 13/01/2010

L’exemple ABRO Emettre O dès que A and B sont arrivés Réinitialiser le comportement à chaque R A / B / A / O B / O A B / O R / G. Berry, Collège de France, 13/01/2010

L’exemple ABRO Emettre O dès que A and B sont arrivés Réinitialiser le comportement à chaque R A / B / A / O B / O A B / O R / G. Berry, Collège de France, 13/01/2010

L’exemple ABRO Emettre O dès que A and B sont arrivés Réinitialiser le comportement à chaque R A / B / A / O B / O A B / O R / G. Berry, Collège de France, 13/01/2010

L’exemple ABRO Emettre O dès que A and B sont arrivés Réinitialiser le comportement à chaque R Et des problèmes de priorité : quid si A, B, R ensemble? A / B / A / O B / O A B / O R / G. Berry, Collège de France, 13/01/2010

Ecrire chaque chose une fois et une seule ! Programmer par couper / coller Ecrire chaque chose une fois et une seule ! Expressions rationnelles Automates hiérarchiques (Statecharts, SyncCharts, Stateflow) Langages synchrones impératifs Esterel, Quartz G. Berry, Collège de France, 13/01/2010

Esterel = spécification linéaire B / A / O B / O A B / O R / loop abort { await A || await B }; emit O ; halt when R; end loop loop abort { await A || await B }; emit O ; halt when R; end loop loop abort { await A || await B }; emit O ; halt when R end loop copies = résidus ! Esterel = partage des résidus G. Berry, Collège de France, 13/01/2010

hiérarchiques synchrones SyncCharts (C. André) A / B / R / / O loop abort { await A || await B }; emit O ; halt when R end loop automates parallèles hiérarchiques synchrones G. Berry, Collège de France, 13/01/2010

Le coureur Esterel trap HeartAttack in every Morning do abort loop || run CheckHeart exit HeartAttack handle HeartAttack fo run RushToHospital end trap every Morning do end every abort when 4 Lap abort run Slowly when 100 Meter ; abort every Step do run Jump || run Breathe end every when 15 Second ; loop each Lap run FullSpeed G. Berry, Collège de France, 13/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

Le noyau Esterel pur nothing pause emit S if S then p else q end suspend p when S p ; q loop p end p || q trap T in p end exit T signal S in p end 1 ! s s ? p, q s p p ; q p p | q {p} p k, k > 1 p \ s U * G. Berry, Collège de France, 13/01/2010

La sémantique comportementale signaux reçus signaux émis code de retour Broadcasting : E’  E 0 : terminaison 1 : attente 2 : sortie du trap le plus proche 3 : sortie du second trap le plus proche k E’ k p p’ E G. Berry, Collège de France, 13/01/2010

Numérotation des traps trap T in trap U in nothing0 || pause1 exit U2 exit T3 end trap exit T2 Si deux traps sont levés en même temps, seul le plus extérieur compte Code de retour du parallèle  max des codes des branches (code de Gonthier) G. Berry, Collège de France, 13/01/2010

0 k k E (pour k  0, k  1, k  1) {s} 0 !s E (pour k  0, k  1, k  1) !s E {s} 0 G. Berry, Collège de France, 13/01/2010

s ? p, q E E’ k p’ s  E p s ? p, q E F’ l q’ s  E q G. Berry, Collège de France, 13/01/2010

p E E’ 0 p’ s p U E E' k s p U s p' p E’ k p’ k  0 E E' k s p U s p' p E’ k p’ k  0 avec s p' = {( s ? 1 , 2) } ; s p' * G. Berry, Collège de France, 13/01/2010

p E E’ k p’ k = 0 p ; q p’ ; q p E E’ 0 p’ q F’ l q’ p ; q E’ U F’ l G. Berry, Collège de France, 13/01/2010

p E E’ k p’ k  0 p’ ; p * p E E’ k p’ q F’ l q’ p | q E’ U F’ max(k,l) p’ | q’ G. Berry, Collège de France, 13/01/2010

{p} E E’ 0 p E’ k p’ k  0 ou k  2 {p} E E’ k {p’} p p’ p E’ k p’ k  0 ou k  2 {p} E E’ k {p’} p p’ k  1 ou k > 2 k  1 si k=1,  k-1 si k>2 G. Berry, Collège de France, 13/01/2010

si une seule règle s’applique => déterminisme p \ s E E’ k p’ \ s p E U {s} E’ U {s} k p’ p \ s E E’ k p’ \ s p’ s  E s  E' p si une seule règle s’applique => déterminisme Mais les deux peuvent s’appliquer, voir plus loin! G. Berry, Collège de France, 13/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

Traduction structurelle en circuits Chaque instruction p engendre un sous-circuit E and E’: signaux reçus et émis GO : démarrer p RES : continuer p SUSP : suspendre p pour un cycle KILL : remettre les registres de p à 0 SEL : au moins un registre à 1 => vivant Ki : code de retour 1-hot K0: terminé K1: pause, en attente d’événements K2,K3,… - sortie des traps englobants E E' SEL GO K0 RES p K1 SUSP K2 KILL ... G. Berry, Collège de France, 13/01/2010

Circuit pour 1 (pause) KILL RES K0 SUSP GO K1 SEL G. Berry, Collège de France, 13/01/2010

Circuit pour « p ; q » p q G. Berry, Collège de France, 13/01/2010 GO RES SUSP KILL SEL K0 K1 K2 ... E E' p q Circuit pour « p ; q » G. Berry, Collège de France, 13/01/2010

Circuit pour « p || q » p q G. Berry, Collège de France, 13/01/2010 GO RES SUSP KILL SEL K0 K1 K2 E E' K3 ... p LEM L0 L1 L2 L3 IN_KILL REM R0 R1 R2 R3 S Y N C H R O I Z q Circuit pour « p || q » G. Berry, Collège de France, 13/01/2010

Le synchroniseur du parallèle LEM REM L0 R0 R1 L1 L2 R2 L3 R3 K0 K1 K2 K3 IN_KILL KILL G. Berry, Collège de France, 13/01/2010

Circuit pour « abort p when s » GO RES SUSP KILL SEL K0 K1 K2 ... E E' s p G. Berry, Collège de France, 13/01/2010

Le circuit ABRO hiérarchique saute à l’optimisation loop abort { await A || await B }; emit O ; halt when R end loop G. Berry, Collège de France, 13/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

Optimisation séquentielle 1. Construction du circuit hiérarchique bon début, mais trop gros 2. Optimisation des registres réduction des redondances 3. Optimisation de la logique combinatoire vitesse, surface, puissance dissipée Calcul Booléen à grande échelle (expressions, BDDs, SAT, cf cours algo. 2007-2008) G. Berry, Collège de France, 13/01/2010

Mauvaise solutions déterministe => 1-hot explose avec le nb d’états log(n) bits pour n états peut faire exploser la logique e0  10 e1  11 e2  01 e3  00 e0  01 e1  10 e2  11 e3  11 bon mauvais n! possibilités, pas d’heuristique ! G. Berry, Collège de France, 13/01/2010

Il faut équilibrer les registres et la logique logique combinatoire R registres Il faut équilibrer les registres et la logique Solutions : automates non-déterministes encodage structurel d’Esterel / SyncCharts G. Berry, Collège de France, 13/01/2010

Le secret : écrire chaque chose une fois ! loop abort { await A || await B }; emit O ; halt when R end loop Un registre par attente explicite  bon équilibre registres / logiques Plus le programme est bien écrit, plus il est efficace ! G. Berry, Collège de France, 13/01/2010

Encodage « group-hot » loop [ await A || await B ] ; emit O each R threads parallèles => groupes indépendants séquence => group-hot 1-hot: 4bits log: 2bits group-hot: 3bits – meilleur passage à l’échelle A / B / / O 1 1 0 1 R / 0 1 0 1 1 0 0 1 0 0 1 G. Berry, Collège de France, 13/01/2010

Vérification, optimisation : calculer les états atteignables A1  A0 U F(A0) A2  A1 U F(A1) ... A  U Ai Calculer les Ai en utilisant des BDDs - mais .... BDD(F) explose ! Utiliser chaque Ai comme simplifieur pour BDD(F) Puis utiliser A comme optimiseur pour l’implémentation de F (Madre, Coudert, Touati) G. Berry, Collège de France, 13/01/2010

Vérification, optimisation : calculer les états atteignables Esterel v7 : en pratique, toujours meilleur que les méthodes traditionnelles G. Berry, Collège de France, 13/01/2010

Agenda Circuits digitaux Des automates aux circuits Esterel et SyncCharts Sémantique Traduction en circuits Optimisation Circuits cycliques G. Berry, Collège de France, 06/01/2010

Protocole round-robin cylique à 2 req ok A un seule requête ok dans l’ordre des demandes après le registre à 1 B ok req G. Berry, Collège de France, 13/01/2010

Protocole round-robin cylique à 2 req ok A un seule requête ok dans l’ordre des demandes après le registre à 1 qui tourne à chaque fois B ok req G. Berry, Collège de France, 13/01/2010

Protocole round-robin cylique à 4 ok req G. Berry, Collège de France, 13/01/2010

Protocole round-robin cylique à 2 req ok un seule requête ok dans l’ordre des demandes après le registre à 1 qui tourne à chaque fois Attention ! cycle combinatoire ! ok req G. Berry, Collège de France, 13/01/2010

Protocole round-robin cylique à 2 req ok Cycle sain ssi au moins un registre vaut 1 car coupé par tout registre à 1 ok req G. Berry, Collège de France, 13/01/2010

Protocole round-robin cylique à 2 req ok 1 Cycle sain ssi au moins un registre vaut 1 car coupé par tout registre à 1 ok req G. Berry, Collège de France, 13/01/2010

Trois sortes de circuits cycliques 1. Sans espoir, ni électriquement, ni logiquement X  X X  non X 2. Sans problème (éventuellement sous conditions) partie combinatoire du round-robin cyclique (si au moins une sortie de registre à 1) 3. Etrange Hamlet : ToBe  ToBe or not ToBe G. Berry, Collège de France, 13/01/2010

Trois sortes de circuits cycliques 3. Etrange Hamlet : ToBe  ToBe or not ToBe ToBe Se stabilise électriquement à 1 pour certains délais des portes et fils, mais pas pour tout les délais Quand un circuit se stabilise-t-il pour tous les délais des portes et des fils ? G. Berry, Collège de France, 13/01/2010

L’électricité est constructive! (Berry – Shiple – Mendler) Théorème : pour une entrée donnée un circuit se stabilise pour tous délais des portes et des fils si et seulement si toutes les valeurs de ses fils sont calculables en logique constructive, sans tiers exclu « X ou non X  1 » si et seulement si le point fixe de ses équations dans la logique de Scott (B) est partout défini il existe des délais pour lesquels Hamlet ne se stabilise pas ! G. Berry, Collège de France, 13/01/2010

Logique propositionnelle constructive E : environnement = fonction des entrées I dans {0,1} Formules : « E prouve X = b », écrit « E X  b »  E I  E(I)  I entrée E e  0  E non e  1 E e  1  E non e  0 E e  0  E e et e’  0 E e’  0  E e et e’  0 E e  1  E e et e’  1 E e’  1 E e  1  E e ou e’  1 E e’  1  E e ou e’  1 E e  0  E e ou e’  0 E e’  0 X  e E e  b  E X  b G. Berry, Collège de France, 13/01/2010

marier le séquentiel, le synchrone et l’asynchrone Conclusion Le modèle synchrone déterministe parallélisme massif + déterminisme avec toutes les bonnes propriétés du séquentiel fondé sur des sémantiques mathématiques rigoureuses qui conduisent à d’excellentes propriétés d’implémentation Son champ d’application reste limité à des systèmes relativement compact mais reste considérable : circuits, systèmes embarqués critiques (avions, trains, etc.) le 27 janvier : marier le séquentiel, le synchrone et l’asynchrone G. Berry, Collège de France, 13/01/2010

Références Synchronous Programming of Reactive Systems Nicolas Halbwachs Kluver, 1992 Statecharts : a Visual Formalism for Complex Systems David Harel Science of Computer Programming 8 (1987) 231-274 The Foundations of Esterel Gérard Berry dans “Proof, Language and Interaction: Essays in Honour of Robin Milner, MIT Press, Foundations of ComputingSeries, 2000. G. Berry, Collège de France, 06/01/2010

Références Compiling Esterel Dumitru Potop-Butucaru, Stephen Edwards et Gérard Berry Springer, 2008 The Constructive Semantics of Pure Esterel Gérard Berry, web book ...et plus sur www-sop.inria.fr/members/Gerard/Berry G. Berry, Collège de France, 13/01/2010