SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Syst`mes concurrents
                           e

                          Philippe Qu´innec
                                     e


                           11 f´vrier 2011
                               e




Syst`mes concurrents
    e                                         1 / 31
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 bloquante


Syst`mes concurrents
    e                                                2 / 31
Activit´s concurrentes
                                e
                                    Conception
                       Avantages/inconv´nients
                                        e




                                 Premi`re partie
                                      e

                                     Introduction




Syst`mes concurrents
    e                                               3 / 31
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
                           e



Syst`mes concurrents – Introduction
    e                                                                                   4 / 31
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
                          e



Syst`mes concurrents – Introduction
    e                                                                                                 5 / 31
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.
                               e




Syst`mes concurrents – Introduction
    e                                                                                   6 / 31
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      e




Syst`mes concurrents – Introduction
    e                                                                                   7 / 31
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
               e




Syst`mes concurrents – Introduction
    e                                                                                   8 / 31
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)
               e




Syst`mes concurrents – Introduction
    e                                                                                   9 / 31
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    e




Syst`mes concurrents – Introduction
    e                                                                                   10 / 31
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émoire

Syst`mes concurrents – Introduction
    e                                                                                   11 / 31
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       e




Syst`mes concurrents – Introduction
    e                                                                                   12 / 31
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 L1

Syst`mes concurrents – Introduction
    e                                                                                      13 / 31
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 Access


Syst`mes concurrents – Introduction
    e                                                                                    14 / 31
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               e


Syst`mes concurrents – Introduction
    e                                                                                   15 / 31
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
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 commutable




Syst`mes concurrents – Introduction
    e                                                                                   17 / 31
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 implicite

Syst`mes concurrents – Introduction
    e                                                                                   18 / 31
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              Unix
communication                         m´moire
                                         e              message                   fichier/tube/signal
m´moire partag´e
  e             e                     oui               non                       non (sauf. . . )
d´signation explicite
 e                                    non               (du canal)                non/indirecte/oui
primitives de synchro                 ´volu´es
                                      e     e           (communication)           pauvres
      Rq : un processus unix est plus une unit´ d’allocation que
                                              e
      d’ex´cution.
          e




Syst`mes concurrents – Introduction
    e                                                                                           19 / 31
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
                           e



Syst`mes concurrents – Introduction
    e                                                                                                       20 / 31
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´)
                                                      e




Syst`mes concurrents – Introduction
    e                                                                                                       21 / 31
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
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 attente




Syst`mes concurrents – Introduction
    e                                                                                                       23 / 31
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
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                            e

Syst`mes concurrents – Introduction
    e                                                                                                       25 / 31
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.
                    e
Syst`mes concurrents – Introduction
    e                                                                                                       26 / 31
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)
                 e




Syst`mes concurrents – Introduction
    e                                                                                                       27 / 31
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
                           e



Syst`mes concurrents – Introduction
    e                                                        28 / 31
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. . .
                   e

Syst`mes concurrents – Introduction
    e                                                                  29 / 31
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 d'Amdahl
                                                                            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
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 !
                         e
Syst`mes concurrents – Introduction
    e                                                                   31 / 31

Más contenido relacionado

Destacado

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Destacado (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

1 chap 1-parallel

  • 1. Syst`mes concurrents e Philippe Qu´innec e 11 f´vrier 2011 e Syst`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 bloquante Syst`mes concurrents e 2 / 31
  • 3. Activit´s concurrentes e Conception Avantages/inconv´nients e Premi`re partie e Introduction Syst`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 e Syst`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 e Syst`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. e Syst`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 e Syst`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 e Syst`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) e Syst`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 e Syst`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émoire Syst`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 e Syst`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 L1 Syst`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 Access Syst`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 e Syst`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 commutable Syst`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 implicite Syst`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 Unix communication m´moire e message fichier/tube/signal m´moire partag´e e e oui non non (sauf. . . ) d´signation explicite e non (du canal) non/indirecte/oui primitives de synchro ´volu´es e e (communication) pauvres Rq : un processus unix est plus une unit´ d’allocation que e d’ex´cution. e Syst`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 e Syst`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´) e Syst`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 attente Syst`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 e Syst`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. e Syst`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) e Syst`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 e Syst`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. . . e Syst`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 d'Amdahl 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 ! e Syst`mes concurrents – Introduction e 31 / 31