1 chap 1-parallel

  • 162 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
162
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Syst`mes concurrents e Philippe Qu´innec e 11 f´vrier 2011 eSyst`mes concurrents e 1 / 31
  • 2. Plan du cours 1 Introduction : probl´matique e 2 Exclusion mutuelle 3 Synchronisation ` base de s´maphores a e 4 Synchronisation ` base de moniteur a 5 Interblocage 6 API Java, Posix Threads 7 Probl`mes g´n´riques e e e 8 Processus communicants – Ada 9 Transactions 10 Synchronisation non bloquanteSyst`mes concurrents e 2 / 31
  • 3. Activit´s concurrentes e Conception Avantages/inconv´nients e Premi`re partie e IntroductionSyst`mes concurrents e 3 / 31
  • 4. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Plan 1 Activit´s concurrentes e Le probl`me e Un peu d’architecture Communication & processus 2 Conception Comment contrˆler (r´aliser) la composition ? o e Comment d´crire ? e Comment raisonner ? 3 Avantages/inconv´nients eSyst`mes concurrents – Introduction e 4 / 31
  • 5. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Le probl`me e Ouvrier Récepteur travaux urgents Ouvrier Résultats Livreur Récepteur (émetteur) Ouvrier Récepteur travaux normaux Ouvrier coop´ration : les activit´s e e se connaissent comp´tition : les activit´s e e s’ignorent vitesse d’ex´cution arbitraire eSyst`mes concurrents – Introduction e 5 / 31
  • 6. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Vocabulaire parall´lisme (vrai parall´lisme) : le fait que des activit´s e e e s’ex´cutent simultan´ment. Possible uniquement sur e e un syst`me multi-processeurs. e concurrence (ou parall´lisme simul´, ou pseudo-parall´lisme) : e e e illusion que des activit´s s’ex´cutent simultan´ment. e e e asynchronisme : d´crit le fait que des activit´s (ou ´v´nements) se e e e e produisent de mani`re ind´pendante. e e synchronisation : apparaˆ quand il existe des d´pendances entre ıt e les activit´s. eSyst`mes concurrents – Introduction e 6 / 31
  • 7. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Diff´rence avec la programmation s´quentielle e e pluralit´ d’activit´s e e simultan´es e explosion de l’espace d’´tats e ⇒ n´cessit´ de m´thodes et d’outils (conceptuels et logiciels) e e e pour le raisonnement et le d´veloppement e interd´pendance des activit´s e e logique : production/utilisation de r´sultats interm´diaires e e chronologique : disponibilit´ des r´sultats e eSyst`mes concurrents – Introduction e 7 / 31
  • 8. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Composants mat´riels e Processeurs M´canisme d’interconnexion e M´moire et caches eSyst`mes concurrents – Introduction e 8 / 31
  • 9. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Processeur Vision simpliste : ` chaque cycle, le processeur ex´cute une a e instruction machine ` partir d’un flot s´quentiel (le code). a e En pratique : pipeline : plusieurs instructions en cours dans un mˆme cycle : e obtention, d´codage, ex´cution, ´criture du r´sultat e e e e superscalaire : plusieurs unit´s d’ex´cution e e instructions vectorielles r´ordonnancement (out-of-order) eSyst`mes concurrents – Introduction e 9 / 31
  • 10. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Interconnexion Bus m´dium ` diffusion e a interconnecte des processeurs entre eux interconnecte les processeurs et la m´moire e interconnecte les processeurs et des unit´s d’E/S e Mini r´seaux locaux (parall´lisme massif) e e R´seaux locaux classiques (syst`me r´parti) e e eSyst`mes concurrents – Introduction e 10 / 31
  • 11. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus M´moire e La m´moire et le processeur sont ´loign´s : un acc`s m´moire est e e e e e consid´rablement plus lent que l’ex´cution d’une instruction (peut e e atteindre un facteur 100 dans un ordinateur, 10000 en r´parti). e Principe de localit´ : e temporelle si on utilise une adresse, on l’utilisera probablement de nouveau dans peu de temps spatiale si on utilise une adresse, on utilisera probablement une adresse proche dans peu de temps ⇒ conserver pr`s du CPU les derni`res cases m´moire acc´d´es e e e e e ⇒ Cache : m´moire rapide proche du processeur e Plusieurs niveaux de caches : de plus en plus gros, de moins en moins rapides (actuellement 3 niveaux). CPU Cache L1 Cache L2 MémoireSyst`mes concurrents – Introduction e 11 / 31
  • 12. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Cache Diff´rents principes de placement dans le cache (associatif, e mapp´, k-associatif. . . ) e Diff´rentes strat´gies de remplacement (LRU - least recently e e used. . . ) Diff´rentes strat´gies d’invalidation - coh´rence m´moire e e e eSyst`mes concurrents – Introduction e 12 / 31
  • 13. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Architecture multi-processeurs Multi-processeurs ` l’ancienne a : Bus CPU Cache L1 Cache L2 CPU Cache L1 Cache L2 Mémoire CPU Cache L1 Cache L2 CPU Cache L1 Cache L2 Multi-processeurs multi-cœurs : CPU Cache L1 Cache L2 CPU Cache L1 Mémoire CPU Cache L1 Cache L2 CPU Cache L1Syst`mes concurrents – Introduction e 13 / 31
  • 14. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Architecture multi-processeurs SMP Symmetric multiprocessor : une m´moire + un e ensemble de processeurs CPU CPU RAM CPU NUMA Non-Uniform Memory Access : un graphe d’interconnexion de {CPU+m´moire} e CPU CPU CPU RAM RAM RAM CPU CPU CPU RAM RAM RAM CC-NUMA Cache-Coherent Non-Uniform Memory AccessSyst`mes concurrents – Introduction e 14 / 31
  • 15. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus ´ Ecritures en m´moire e Comme fonctionne l’´criture d’une case m´moire en pr´sence de e e e caches ? Write-Through diffusion sur le bus ` chaque valeur ´crite a e + visible par les autres processeurs ⇒ invalidation des valeurs pass´es e + la m´moire et le cache sont coh´rents e e − trafic inutile : ´critures r´p´t´es, ´critures de e e ee e variables priv´es au thread e Write-Back diffusion uniquement ` l’´viction de la ligne a e + trafic minimal − coh´rence cache - m´moire - autres caches ? e eSyst`mes concurrents – Introduction e 15 / 31
  • 16. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Coh´rence m´moire e e Si un processeur ´crit la case d’adresse a1 , quand les autres e processeurs verront-ils cette valeur ? Si plusieurs ´critures e cons´cutives en a1 , a2 . . . , sont-elles vues dans cet ordre ? e R`gles de coh´rence m´moire e e e Coh´rence s´quentielle le r´sultat d’une ex´cution parall`le est le e e e e e mˆme que celui d’une ex´cution s´quentielle qui e e e respecte l’ordre partiel de chacun des processeurs. Coh´rence PRAM (pipelined RAM ou fifo) les ´critures d’un e e mˆme processeur sont vues dans l’ordre o` elles ont e u ´t´ effectu´es ; des ´critures de processeurs diff´rents ee e e e peuvent ˆtre vues dans des ordres diff´rents. e e Coh´rence lente e (slow consistency) : une lecture retourne une valeur pr´c´demment ´crite, sans remonter dans le e e e temps.Syst`mes concurrents – Introduction e 16 / 31
  • 17. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Activit´ e Activit´/processus/tˆches/threads/processus l´gers/. . . e a e ex´cution d’un programme s´quentiel e e entit´ logicielle e ex´cutable par un processeur e interruptible et commutableSyst`mes concurrents – Introduction e 17 / 31
  • 18. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus La communication M´moire partag´e e e Syst`me centralis´ multi-tˆches e e a communication implicite, r´sultant de l’acc`s ` des variables e e a partag´es e processus anonymes (pas d’identification n´cessaire) e Messages Syst`me r´parti e e communication explicite par transfert de donn´es e d´signation n´cessaire du destinataire (l’activit´ ou un e e e interm´diaire) e synchronisation impliciteSyst`mes concurrents – Introduction e 18 / 31
  • 19. Activit´s concurrentes e Le probl`me e Conception Un peu d’architecture Avantages/inconv´nients e Communication & processus Activit´s e processus processus processus l´gers e communicants Unixcommunication m´moire e message fichier/tube/signalm´moire partag´e e e oui non non (sauf. . . )d´signation explicite e non (du canal) non/indirecte/ouiprimitives de synchro ´volu´es e e (communication) pauvres Rq : un processus unix est plus une unit´ d’allocation que e d’ex´cution. eSyst`mes concurrents – Introduction e 19 / 31
  • 20. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? Plan 1 Activit´s concurrentes e Le probl`me e Un peu d’architecture Communication & processus 2 Conception Comment contrˆler (r´aliser) la composition ? o e Comment d´crire ? e Comment raisonner ? 3 Avantages/inconv´nients eSyst`mes concurrents – Introduction e 20 / 31
  • 21. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? Contrˆler o Concevoir une application concurrente contrˆler un ensemble d’activit´s concurrentes o e contrˆler la progression et les interactions de chaque activit´ o e assurer leur protection r´ciproque e Moyen attente (par blocage – suspension – de l’activit´) eSyst`mes concurrents – Introduction e 21 / 31
  • 22. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? Contrˆler o Hypoth`ses de bon comportement : un protocole d´finit les e e interactions possibles : Op´rations et param`tres autoris´s. e e e S´quences d’actions autoris´es. e e Un ouvrier ne doit pas d´poser plus de r´sultats qu’il n’a pris e e de travaux.Syst`mes concurrents – Introduction e 22 / 31
  • 23. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? D´crire e Compteurs d’´v´nements e e Compter les actions ou les changements d’´tats et les relier entre e eux. Exemple #nb de travaux soumis = #nb travaux effectu´s e + #nb travaux en cours + #nb travaux en attenteSyst`mes concurrents – Introduction e 23 / 31
  • 24. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? D´crire e Triplets de Hoare pr´condition/action/postcondition e Exemple {t = nb travaux en attente ∧ t > 0 ∧ r = nb r´sultats} e ouvrier effectue un travail {nb travaux en attente = t − 1 ∧ nb r´sultats = r + 1} e S´rialisation : {p}A1 ; A2 {q12 }, {p}A2 ; A1 {q21 } e {p}A1 A2 {q12 ∨ q21 } Ind´pendance : e A1 et A2 sans interf´rence, {p}A1 {q1 }, {p}A2 {q2 } e {p}A1 A2 {q1 ∧ q2 }Syst`mes concurrents – Introduction e 24 / 31
  • 25. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? D´crire e Propri´t´s temporelles ee Lin´aires : pour toutes les ex´cutions possibles, e e ` tout moment d’une ex´cution. a e Arborescentes : pour certaines ex´cutions possibles, e ` tout moment d’une ex´cution. a e Exemple Sˆret´ : rien de mauvais ne se produit u e Deux ouvriers ne peuvent jamais prendre le mˆme travail. e Vivacit´ : quelque chose de bon finit par se produire e Un travail d´pos´ finit par ˆtre pris par un ouvrier. e e e Possibilit´ : deux travaux d´pos´s cons´cutivement peuvent e e e e ˆtre ex´cut´s s´quentiellement par le mˆme ouvrier. e e e e eSyst`mes concurrents – Introduction e 25 / 31
  • 26. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? Mod`le : l’entrelacement e Raisonner sur tous les cas parall`les est trop complexe e ⇒ on raisonne sur des ex´cutions s´quentielles obtenues par e e entrelacement des instructions des diff´rentes activit´s. e e Deux processus P = p1 ; p2 et Q = q1 ; q2 . L’ex´cution concurrente e P Q est vue comme (´quivalente `) l’une des ex´cutions : e a e p1 ; p2 ; q1 ; q2 ou p1 ; q1 ; p2 ; q2 ou p1 ; q1 ; q2 ; p2 ou q1 ; p1 ; p2 ; q2 ou q1 ; p1 ; q2 ; p2 ou q1 ; q2 ; p1 ; p2 (p+q)! Nombre d’entrelacements : p! q! Attention Ne pas oublier que c’est un mod`le simplificateur (vraie e concurrence, coh´rence m´moire. . . ) e e Il peut ne pas exister de code s´quentiel ´quivalent au code e e parall`le. eSyst`mes concurrents – Introduction e 26 / 31
  • 27. Activit´s concurrentes e Comment contrˆler (r´aliser) la composition ? o e Conception Comment d´crire ? e Avantages/inconv´nients e Comment raisonner ? Raisonner Contrˆler les effets des interactions o isoler (raisonner ind´pendamment) ⇒ modularit´ e e contrˆler/sp´cifier l’interaction o e sch´mas connus d’interaction (design patterns) eSyst`mes concurrents – Introduction e 27 / 31
  • 28. Activit´s concurrentes e Conception Avantages/inconv´nients e Plan 1 Activit´s concurrentes e Le probl`me e Un peu d’architecture Communication & processus 2 Conception Comment contrˆler (r´aliser) la composition ? o e Comment d´crire ? e Comment raisonner ? 3 Avantages/inconv´nients eSyst`mes concurrents – Introduction e 28 / 31
  • 29. Activit´s concurrentes e Conception Avantages/inconv´nients e Avantages/inconv´nients e + utilisation d’un syst`me multi-processeurs. e + utilisation de la concurrence naturelle d’un programme. + mod`le de programmation naturel, en explicitant la e synchronisation n´cessaire. e − surcoˆt d’ex´cution (synchronisation, implantation du u e pseudo-parall´lisme). e − surcoˆt de d´veloppement : n´cessit´ d’expliciter la u e e e synchronisation, v´rifier la r´entrance des biblioth`ques, e e e danger des variables partag´es. e − surcoˆt de mise-au-point : debuggage souvent d´licat (pas de u e flot s´quentiel ` suivre) ; effet d’interf´rence entre des e a e activit´s, interblocage. . . eSyst`mes concurrents – Introduction e 29 / 31
  • 30. Activit´s concurrentes e Conception Avantages/inconv´nients e Parall´lisme et performance e Mythe du parall´lisme e Si je remplace ma machine mono-processeur par une machine ` a N processeurs, mon programme ira N fois plus vite Soit un syst`me compos´ par une partie p parall´lisable + une e e e partie 1 − p s´quentielle. e Loi dAmdahl 20.00 18.00 Portion parallèle 16.00 50% 75% CPU dur´e e p = 40% p = 80% 14.00 90% 95% 12.00 1 p + (1 − p) 100 100 Speedup 10.00 p 4 4 + (1 − p) 70 40 8.00 p 8 8 + (1 − p) 65 30 6.00 4.00 p 16 16 + (1 − p) 62, 5 25 2.00 ∞ 60 20 0.00 16384 32768 65536 1024 2048 4096 8192 128 256 512 16 32 64 1 2 4 8 1 Loi d’Amdahl : maximal speedup = 1−p Nombre de Processeurs (source : wikicommons)Syst`mes concurrents – Introduction e 30 / 31
  • 31. Activit´s concurrentes e Conception Avantages/inconv´nients e Parall´lisme et performance e Mythe de la performance Si je remplace ma machine par une machine N fois plus rapide, mon programme traitera des probl`mes N fois plus grands dans le e mˆme temps e Pour un probl`me de taille n soluble en temps T , taille de probl`me e e soluble dans le mˆme temps sur une machine N fois plus rapide : e complexit´ e N=4 N = 16 N = 1024 O(n) √ 4n √ 16n √ 1024n O(n 2) √ 4n = 2n √ 16n = 4n √1024n = 32n O(n3 ) 3 4n ≈ 1.6n 3 16n ≈ 2.5n 3 1024n ≈ 10n O(e n) ln(4)n ≈ 1.4n ln(16)n ≈ 2.8n ln(1024)n ≈ 6.9n En supposant en outre que tout est 100% est parall´lisable et qu’il e n’y a aucune interf´rence ! eSyst`mes concurrents – Introduction e 31 / 31