Fork

Introduction au Parallélisme

------>> Serge « sans paille » Guelton

 Amer Baghdadi <<---------------------

--------------------->> Adrien Merlini

Matthieu Arzel <<---------------------

------------------>> Mathieu LEONARDON

Parallélisme de la Tarte au Pomme

[Q] Combien de temps pour faire une tarte aux pommes

pomme → eplucher → couper -+
pomme → eplucher → couper -+
                           +-→ garniture
pomme → eplucher → couper -+       |
pomme → eplucher → couper -+       |
                                   +-→ cuire → miam
farine +                           |
       +-→ mélanger -→ pâte -------+
beurre +

éplucher: 3min    couper:   2min
cuire:   30min    mélanger: 5min

Parallélisme de la Tarte au Pomme

[Q] À deux personnes ?

pomme → eplucher → couper -+
pomme → eplucher → couper -+
                           +-→ garniture
pomme → eplucher → couper -+       |
pomme → eplucher → couper -+       |
                                   +-→ cuire → miam
farine +                           |
       +-→ mélanger -→ pâte -------+
beurre +

éplucher: 3min    couper:   2min
cuire:   30min    mélanger: 5min

Parallélisme de la Tarte au Pomme

[Q] À quatre personnes ?

pomme → eplucher → couper -+
pomme → eplucher → couper -+
                           +-→ garniture
pomme → eplucher → couper -+       |
pomme → eplucher → couper -+       |
                                   +-→ cuire → miam
farine +                           |
       +-→ mélanger -→ pâte -------+
beurre +

éplucher: 3min    couper:   2min
cuire:   30min    mélanger: 5min

Accélération théorique limitée - Loi d'Amdahl

[Q] Limite d'accélération si 90% parallélisable ?

Exemples d'algorithmes parallèles

Exemples d'architectures parallèles

> Hardware is like milk, you want it the freshest you can find.

Exemples d'abstraction pour le parallélisme

> Software is like wine, you want it with a bit of age.

Niveaux de parallélisme

> Michael Wolfe

  1. Node level → calcul sur grille en mémoire distribuée
  2. Socket level → plusieurs accélérateurs
  3. Core level → plusieurs processeurs en mémoire partagée
  4. Vector level → dans une unité attachée au processeur
  5. Pipeline level → utilisation du pipeline d’instruction
  6. Instruction level → VLIW et autres CISC

[Q] Et sur votre ordinateur portable ?

Pourquoi le parallélisme

Paléoinformatique

Performance(s) d'un programme

Illusions de grandeur

> http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/

Parallélisme et consommation énergétique

> L'énergie est notre avenir, ́economisons-la

https://www.youtube.com/watch?v=nXaxk27zwlk / Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!

Parallélisme et mémoire

Notion de tâche

Tâche = calcul + données

Avec un calcul sans effet de bord !

Un appel de tâche peut être bloquant ou non - bloquant

Notion de dépendance

Deux tâches sont interdépendantes si leurs exécutions ne peuvent pas être entrelacées.

Cela arrive si :

ce sont les conditions de Bernstein

Notion de graphe de tâche

Graphe = nœuds + arcs

Un ordonnanceur va décider de l'exécution de ce graphe sur des ressources en respectant l'ordre topologique.

Taxonomy de Fynn

Modèles théoriques

Déroulement de l'UE

Plusieurs instances des mêmes concepts !

1