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

Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal.

Présentations similaires


Présentation au sujet: "Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal."— Transcription de la présentation:

1 Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

2 Du système au système de systèmes – Rocquencourt – 15 mai Le « système » Logiciels de base, complexes, pour simplifier les applications : Système d'exploitation Système réparti Temps réel, systèmes enfouis Abstractions et mécanismes génériques Métriques de performance : latence, débit disponibilité ; résistance aux pannes, aux attaques coût logiciel, matériel énergie : batteries, chaleur

3 Systèmes répartis

4 Du système au système de systèmes – Rocquencourt – 15 mai Informatique répartie Toute informatique est répartie sites / processus messages asynchrones, coûteux pannes partielles redondance matérielle Peer-to-peer : décentralisé, effet de masse, auto-organisant Amazon, Google, etc. : PC, disques, etc., bon marché + redondance

5 Du système au système de systèmes – Rocquencourt – 15 mai Réplication des données Accès distant, partagé répliquer performance disponibilité & tolérance aux fautes travail déconnecté et collaboratif Répliques + m-à-j maintien de la cohérence Consensus

6 Du système au système de systèmes – Rocquencourt – 15 mai Profiter du parallélisme ? Opérations commutatives : dans nimporte quel ordre Embarassingly parallel Dépendance causale : dans lordre Ordre partiel Happened-before Opérations non commutatives : le système les ordonne Dans le doute : ordre total Solutions : attendre (pessimiste) spéculer (optimiste) + retour arrière a b c d ef

7 Du système au système de systèmes – Rocquencourt – 15 mai Ordonnancer les opérations concurrentes Exemples : Qui a la dernière place dans l'avion ? Verrouillage atomique d'un fichier Ordre des voitures dans un train Praxitèle (?) Consensus a b c d ef

8 Du système au système de systèmes – Rocquencourt – 15 mai Fischer, Lynch, Patterson 85 Impossibilité du consensus si : messages asynchrones pannes non détectables déterministe On doit sacrifier soit la sûreté : l'algorithme fait des erreurs soit la vivacité : l'algorithme se bloque soit les hypothèses

9 Du système au système de systèmes – Rocquencourt – 15 mai Tolérance aux fautes Fautes bénignes : silencieuses perte de message crash Tolérer f crashes sur n sites : nattendre que n – f messages Il faut 2f+1 sites Propriété de recouvrement A14: : 333 ?14: 547 B C 15: 333

10 Du système au système de systèmes – Rocquencourt – 15 mai L'algorithme de consensus Paxos Clients invoquent "learner" en parallèle Ordonner totalement requêtes de façon tolérante aux fautes : 2f+1 "Acceptor" Choix de la prochaine : "Leader" tournant Primitive de base Req(314) Accepto r 1 Accepto r 2 Accepto r 3 Req(33) Req(549) Req(77) Propose r … Learner …

11 Du système au système de systèmes – Rocquencourt – 15 mai Paxos Client 1 Client 2 Proposer 1 Proposer 2 Acceptor 1 Acceptor 2 Acceptor 3 Learner 1 Req(33) Prepare(1) Promise(1) Accepted(77) Response(77) Accept!(77) Choix du leaderInstallation valeur Accepted(33) Response(33) Accept!(33) Req(77) Nouvelle instance, même leader

12 Du système au système de systèmes – Rocquencourt – 15 mai Tolérance aux fautes dans Paxos Client 1 Client 2 Proposer 1 Proposer 2 Acceptor 1 Acceptor 2 Acceptor 3 Learner 1 Prepare(1) Promise(1) Response(77) Accept!(77) Req(77) Accepted(77) Prepare(4) Req(33) Promise(4) Promise(4,77,1) Accept!(77) Accepted(77)

13 Du système au système de systèmes – Rocquencourt – 15 mai Fautes byzantines Les processus peuvent faire n'importe quoi : collusion, mensonge, etc. : pannes logicielles, attaques de sécurité «Il a dit...» Tolérer f fautes ==> 3f+1 Général félon Lieut. A Lieut. B retraite !attaque ! Il a dit «retraite» Général Lieut. A Lieut. B félon attaque ! Il a dit «retraite» Général Lieut. A Lieut. B félon attaque ! Lieut. C Il a dit «retraite» Il a dit «attaque» attaque !

14 Du système au système de systèmes – Rocquencourt – 15 mai Byzantine Fault Tolerance 1982 Lamport, Shostak, Pease "The Byzantine Generals Problem" 1990 Lamport Paxos "The part-time parliament" Deux idées de théoricien fou Castro, Liskov OSDI Paxos + Byz + NFS = Practical Byzantine Fault Tolerance 2008 Farsite, Oceanstore Google: Chubby, GFS IBM SAN Volume Controller Microsoft Autopilot cluster mgt service SOSP 2007 : une session entière !

15 Réplication optimiste

16 Du système au système de systèmes – Rocquencourt – 15 mai Approche optimiste Répliques x 1, x 2, x 3,..., y 1, y 2,... sur sites 1, 2, 3,... Site 2 propose g(x 2 ) ; propagation ; 1, 3,... rejouent Ordre différent ; résultats équivalents ? À l'essai Prendre en compte sémantique : commutativité, etc. Réconciliation a posteriori : consensus x3x3x3x3 x1x1x1x1 x2x2x2x2 x f (x 1 ) g(x 2 ) f (x 3 ) g(x 1 ) g(x 3 )

17 Du système au système de systèmes – Rocquencourt – 15 mai Sémantique de la concurrence Opérations : pré-conditions / post-conditions Ordonnancements : Ne permettre que ceux sûrs pre/post Equivalence: modulo commutativité Graphe Actions-Contraintes = structure de données pour la concurrence : Sommet = action Arc = contrainte = approximation sûre des pré/post/commutativité

18 Du système au système de systèmes – Rocquencourt – 15 mai Graphe actions-contraintes f g h jk f g h j h k Non commutatif (le système doit ordonnancer) Not-after (le système doit briser les cycles) Antagonisme (un cycle de ) Dépendance causale

19 Du système au système de systèmes – Rocquencourt – 15 mai Contraintes (1) où signifie happened-before Exemple : dans le doute… invariants non connus Non commutatif (le système doit ordonnancer) Not-after (le système doit briser les cycles) Antagonisme (un cycle de ) Dépendance causale f g

20 Du système au système de systèmes – Rocquencourt – 15 mai Contraintes fg f g credit (a, v) debit (a, v') debit (a, v) debit (a, v') autres cas Non commutatif (le système doit ordonnancer) Not-after (le système doit briser les cycles) Antagonisme (un cycle de ) Dépendance causale Exemple : compte bancaire

21 Du système au système de systèmes – Rocquencourt – 15 mai Constraints (3) Exemple: Base de données RW + state replay Non commutatif (le système doit ordonnancer) Not-after (le système doit briser les cycles) Antagonisme (un cycle de ) Dépendance causale

22 Du système au système de systèmes – Rocquencourt – 15 mai Décision Obligation de vivacité : Briser cycles par abort Ordonnancer par ou abort Le système ajoute des contraintes f g h jk f g h j k

23 Du système au système de systèmes – Rocquencourt – 15 mai Cohérence à terme Cohérence à terme : Toutes les opérations sont décidées à terme Pas de décisions illégales Consensus : En tâche de fond : hors du chemin critique Application non ralentie Optimisations : regroupement, heuristiques, sémantique

24 Du système au système de systèmes – Rocquencourt – 15 mai Telex Graphe actions-contraintes persistant Document stocké comme répertoire contenant des fichiers de type journal nommage pas de contention localité /users/shapiro/mydoc Marc Pierre Ruby

25 Du système au système de systèmes – Rocquencourt – 15 mai Example I N R I A insert (0, "L") L I N R I A insert (1, "'") L ' I N R I A delete (5) I N R I delete (5) L ' I N I A insert (0, "L") insert (1, "'") L ' I N R I

26 Du système au système de systèmes – Rocquencourt – 15 mai Designing for commutativity If concurrent operations commute, no concurrency control needed How to design for commutativity: Small, independent objects Commutative operations on single object? true commutativity vs. precedence

27 Du système au système de systèmes – Rocquencourt – 15 mai Shared editing scenario Several users sharing a text buffer Replicated at every site User initiates edit operations Executed, logged, sent to other sites Sites replay remote operations locally Eventually, all sites execute all operations Problem: different execution orders How to ensure eventual consistency?

28 Du système au système de systèmes – Rocquencourt – 15 mai treedoc Goals: Commutative insert and delete operations Block operations (e.g. cut-paste) Minimise space overhead Techniques: Binary tree: minimal metadata insert adds a leaf non-destructive, identifiers dont change Structure changes: background consensus Simple, non-aborting transactions

29 Multiprocesseurs multi- cœur

30 Du système au système de systèmes – Rocquencourt – 15 mai Limites des architectures UC traditionnelles 10,000 1, Power Density (W/cm 2 ) Pentium ® processors Hot Plate Nuclear Reactor Rocket Nozzle Suns Surface Intel Developer Forum, Spring Pat Gelsinger Dissipation de chaleur Ralentir lhorloge Parallélisme CPU Clock Speed DRAM Access Speed (MHz) Speed (MHz) 10,0001, Memory Wall ~90 cycles of the CPU clock to access main memory ! Modern Microprocessors - Jason Patterson Goulot détranglement de laccès à la mémoire Réplication

31 Du système au système de systèmes – Rocquencourt – 15 mai Processeurs multi-cœur LPIA x86 LPIA x86 DRAM ctlr DRAM ctlr OoO x86 LPIA x86 LPIA x86 1 MB cache 1 MB cache LPIA x86 LPIA x86 1 MB cache GPU PCIe ctlr PCIe ctlr NoC 1 MB cache 1 MB cache LPIA x86 LPIA x86 1 MB cache GPU LPIA x86 LPIA x86 1 MB cache 1 MB cache LPIA x86 LPIA x86 DRAM ctlr DRAM ctlr OoO x86 LPIA x86 LPIA x86 DRAM ctlr DRAM ctlr DRAM ctlr DRAM ctlr LPIA x86 LPIA x86 LPIA x86 LPIA x86 1 MB cache 1 MB cache 1 MB cache 1 MB cache LPIA x86 LPIA x86 LPIA x86 LPIA x86 1 MB cache 1 MB cache 1 MB cache 1 MB cache LPIA x86 LPIA x86 LPIA x86 LPIA x86 1 MB cache 1 MB cache 1 MB cache 1 MB cache LPIA x86 LPIA x86 PCIe ctlr NoC PCIe ctlr LPIA x86 LPIA x86 1 MB cache 1 MB cache 1 MB cache 1 MB cache LPIA x86 LPIA x86 LPIA x86 LPIA x86 1 MB cache 1 MB cache 1 MB cache 1 MB cache LPIA x86 LPIA x86 LPIA x86 LPIA x86 1 MB cache 1 MB cache 1 MB cache 1 MB cache LPIA x86 LPIA x86 LPIA x86 LPIA x86 Custom acceleration LPIA x86 LPIA x86 Server Desktop Ultra-Mobile LPIA x86 1 MB cache 1 MB cache DRAM ctlr LPIA x86 1 MB cache PCIe ctlr GPU cache Source : Andrew Herbert, EuroSys 2008 Concurrence Complexité Coûts mémoire

32 Du système au système de systèmes – Rocquencourt – 15 mai Ex. : Sun Niagara Source :

33 Du système au système de systèmes – Rocquencourt – 15 mai Profiter du parallélisme ? Source : Wikipedia, Amdahls Law

34 Du système au système de systèmes – Rocquencourt – 15 mai La révolution est déjà en cours Bientôt : des millions de processeur par personne... Comment est-ce qu'on va programmer ça ? Concurrence très complexe ! Très difficile à programmer et déboguer Énorme : tous les développeurs sont concernés Abstractions ne suffisent pas : interférence, non compositionnel Coup de fouet à la recherche

35 Du système au système de systèmes – Rocquencourt – 15 mai Linéarisabilité Objets (indépendants) linéarisables = méthode prend effet de manière instantanée (ordre total) entre l'appel et la réponse (compatible temps réel) Comportement atomique, réalisation non atomique Compositionnel pre¬postpost

36 Du système au système de systèmes – Rocquencourt – 15 mai 2008 Example : verrous couplés Ensemble d'entiers réalisé par liste chaînée triée Concurrence à grain fin : verrous couplés Prouver : invariant de liste chaînée invariant de l'abstraction linéarisable compositionnel Invariant-clef : un nœud verrouillé reste accessible, quelles que soient les opérations concurrentes 5 H T 5H1015

37 Du système au système de systèmes – Rocquencourt – 15 mai Rely-Guarantee Extension de la logique de Hoare au parallélisme fin : preuve de non-interférence [pre] C [post] [pre i, rely i ] C i [guar i, post i ] par fil i : preuve séquentielle classique global : j i : guar j rely i [p 1, r 1 ] C 1 [g 1, q 1 ][p 2, r 2 ] C 2 [g 2, q 2 ] g 1 r 2 g 2 r 1 [p 1 p 2, g 1 g 2 ] C 1 || C 2 [g 1 g 2, q 1 q 2 ] 37

38 Du système au système de systèmes – Rocquencourt – 15 mai Ne pas rater cette révolution Questions : Algorithmes ? -verrous à grain fin -sans verrou -mémoire transactionnelle -spéculation -opportunisme / caches Langages, paradigmes ? Preuves, simulations, débogage, test ? Maîtriser la complexité : Auto-configuration, auto- administration Réutiliser algorithmes système réparti Que fait lINRIA ?

39 Du système au système de systèmes – Rocquencourt – 15 mai CPU Crossbar L2 cache micro-Ethernet L1 I Crossbar L2 cache Crossbar L2 cache CPU L1 I L1D CPU L1 I RAM L2 cache L1D CPU L1 I L1D CPU L1 I L1D CPU L1 I L1D CPU L1 I CPU L1 I L1D Multi-processeur Tsar Source : Alain Greiner

40 Conclusions

41 Du système au système de systèmes – Rocquencourt – 15 mai Importance du système Modèle + algorithme + expérimentation !!! Pas de théorie sans pratique et vice- versa Comprendre les compromis / trade-offs Intérêt de recherche : lien théorie-pratique très fort impact : 8 sur 11 premières dans CiteSeer voir MIT, Stanford, CMU, Berkeley, etc. INRIA : Grilles, P2P, … Ne pas rater la révolution du multi- cœur !

42 Du système au système de systèmes – Rocquencourt – 15 mai Importance stratégique Couche de base stratégique technologies essentielles (p.ex. sécurité) impact économique (Microsoft, Google) formation indispensable Insuffisamment développé en Europe mais voir EPFL, ETHZ, Max Planck, Cambridge INRIA ?

43 Du système au système de systèmes – Rocquencourt – 15 mai Pourquoi Google nest-il pas français ? Et Akamai, Amazon, Apple, eBay, Google, Groove, IBM, Microsoft, RedHat, SMC, Skype, Sun, Suse, Symbian, VMWare, Xen? Forces : systèmes enfouis, transports, P2P, grilles, Linux… Pour mieux développer le système : expérimental : durée des thèses recrutement


Télécharger ppt "Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal."

Présentations similaires


Annonces Google