72
Architectures et paradigmes de programmation parallèle Violaine Louvet Institut Camille Jordan ECOMOD 2010 – Réseau des Plasmas Froids

Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architectures et paradigmes de programmation parallèle

Violaine LouvetInstitut Camille Jordan

ECOMOD 2010 – Réseau des Plasmas Froids

Page 2: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 3: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 4: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Conjectures de Moore

● Le nombre de transistors des microprocesseurs double tous les 2 ans

● Loi vérifiée depuis 1973, théoriquement valable jusqu'en 2015 (atteinte de certaines limites physiques)

Page 5: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Evolution de la technologie

● Depuis 2004 : ralentissement de l'augmentation en fréquence dû à des problèmes de dissipation thermique

● Les fondeurs favorisent alors l'hyperthreading et le multi-cœurs

● « The Wall » : la finesse de gravure peut être poussée jusqu'à 20 nm, au delà, limites industrielles et physiques

● Efficacité énergétique : entre 1999 et 2007, multiplication par 7 de la consommation d’électricité des serveurs en rack. A ce rythme les dépenses en énergie pour le fonctionnement et le refroidissement d’une machine dépasseront bientôt son coût initial

● Architectures hybrides : montée en puissance des processeurs graphiques (marché de masse) et des processeurs à très basse consommation (cell)

Herb Sutter, “The free lunch is over”, Dr. Dobb's Journal, 30(3),March 2005. On-line version, August 2009.http://www.gotw.ca/publications/concurrency-ddj.htm

Page 6: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

La fin du « Free Lunch »

● La fin des gains en performances « faciles » est arrivée

● 2x3 GHz < 6 GHz : un processeur dual-cœurs n'offre pas les mêmes performance qu'un mono-cœur

● Les applications vont devoir s'adapter à cette évolution :● Beaucoup de cœurs : problème de concurrence, d'accès

mémoire ...● Avec des fréquences relativement basses● Hétérogénéité des cœurs

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 7: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 8: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architecture globale :Von Neumann ­ 1945

Page 9: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architecture actuelle

Page 10: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Taxinomie de Flynn

● Classification des architectures selon 2 dimensions : instruction, data

● Deux états possibles pour chacune des dimensions : single, multiple

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SISDSingle Instruction, Single Data

SIMDSingle Instruction, Multiple Data

MISDMultiple Instruction, Single Data

MIMDMultiple Instruction, Multiple Data

Page 11: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 12: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Caractéristiques d'un processeur

● Jeux d'instructions (ISA : Instruction Set Architecture) qu'il peut exécuter. Historiquement on en distingue 2 types, aujourd'hui les jeux d'instruction des processeurs sont souvent intermédiaires :

● CISC (Complex Instruction Set Computer) : beaucoup d’instructions complexes mais prenant plusieurs cycles d’horloge

– Exemple : x86

● RISC (Reduced Instruction Set Computer) : moins d’instructions possibles (chaque instruction n'effectue qu'une seule opération élémentaire : load, store ...) mais n’utilisant que quelques cycles d’horloge

– Exemple : powerpc – cell – ARM (ipod ...)

● Complexité : nombre de transistors

Page 13: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Caractéristiques d'un processeur● Nombre de bits pouvant être traités en une instruction : 32 ou 64 bits.

● Définit la taille des registres généraux du processeur (emplacement mémoire interne du processeur) pour les nombres entiers.

● En 64 bits, les entiers et les adresses passent de 32 bits (4 octets) à 64 bits (8 octets).

● Avantages :

– Passage de 8 registres de 32 bits à 16 registres de 64 bits

– Adressage mémoire > 4 GB

– Nouvelles fonctionnalités, par exemple mode d'accès amélioré à la mémoire

● Vitesse maximale de l’horloge (plus elle augmente, plus le processeur complète d’instructions en une seconde).

● La fréquence d’horloge détermine la durée d’un cycle.

● Chaque opération utilise un certain nombre de cycles.

● La fréquence d’horloge est fonction de :

– la technologie des semi-conducteurs,

– le packaging,

– les circuits.

Page 14: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Composants d'un processeur● 1 CPU = plusieurs unités fonctionnelles

● Une unité de gestion des bus (unité d’entrées-sorties) en interface avec la mémoire vive du système,

● des registres, souvent divisés en registre floating-point (FPRs) et registres généraux (GPRs),

● Un compteur ordinal (Program Counter), registre contenant l'adresses de l'instruction en cours (ou à venir),

● une unité d’instruction (control unit) qui lit les données arrivant, les décode et les envoie à l’unité d’exécution,

● une unité d’exécution qui accomplit les tâches que lui a données l’unité d’instruction, composée notamment de :

– une ou plusieurs unités arithmétiques et logiques (UAL) qui assurent les fonctions basiques de calcul arithmétique et les opérations logiques.

– une ou plusieurs unités de virgule flottante (FPU) qui accomplissent les calculs complexes. L’instruction de calcul de base est la multiplication / addition voir les deux en même temps (FMA pour Floating-point Multiply and Add) en double précision.

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 15: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

PipeliningUne opération s’exécute en plusieurs étapes indépendantes par des éléments différents du processeur. Exemple du découpage classique RISC :

● IF : Instruction Fecht, charge l’instruction à exécuter dans le pipeline.

● ID : Instruction Decode/Register Fecht, décode l’instruction et adresse les registres.

● EX : Execution/Effective Address, exécute l’instruction (par la ou les unités arithmétiques et logiques).

● MA : Memory Access/ Cache Access, dénote un transfert depuis un registre vers la mémoire dans le cas d’une instruction du type STORE (accès en écriture) et de la mémoire vers un registre dans le cas d’un LOAD (accès en lecture).

● WB : Write-Back, stocke le résultat dans un registre.

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Dans un micro-processeur sans pipeline, les instructions sont exécutées les unes après les autres. En supposant que chaque étape met 1 cycle d’horloge pour s’exécuter, il faut normalement 5 cycles pour exécuter une instruction, 15 pour 3 instructions.

Page 16: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Modèle idéal

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Exécution simultanée des différentes étapes (parallélisme d'instructions)

Page 17: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Complexité liée au pipeline● Accès concurrent à la mémoire

● Branchements● Prédiction dynamique, en fonction des dernières instructions de

branchement

● Indication du compilateur

● Prédiction statique en fonction de l'emplacement de la cible dans le déroulement de l'exécution

● Durées différentes pour chacune des étapes● Problème de la latence mémoire

● Introduction de délais (delay, bubble) pour synchroniser les instructions

● Problème de dépendances

● Interruptions

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 18: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Parallélisme de données● Le mode SIMD permet d'appliquer la même instruction

simultanément à plusieurs données :● Soit physiquement installé dans les processeurs : architectures

vectorielles (CRAY, NEC SX ...), qui disposent d'instructions vectorielles :

– L'instruction est décodée une seule fois, les éléments du vecteur sont ensuite soumis aux unités de traitement

– Les pipelines sont pleinement alimentés

● Soit simulé par des instructions de type vectorielles de bas niveau :

– SSE, 3DNow!, ...

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 19: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Parallélisme d'instructions

ILP = Instruction Level Parallelism :● Architectures superscalaires :

● Exécuter simultanément les différentes étapes du pipeline sur des données distinctes

● Thread Level Parallelism (TLP) :● Améliorer le remplissage du flot d'instructions du processeur

en mixant plusieurs flux d'instructions

● Architecture Very Long Instruction Word (VLIW) :● Traiter des instructions longues, agrégations d’instructions

courtes indépendantes de façon à les exécuter explicitement en parallèle

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 20: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architectures superscalaires● Duplication de certains composants (FMA, FPU) et exécution simultanée de plusieurs

instructions

● Gestion des instructions :

– Statique (in-order) : exécutées dans l'ordre du code machine

– Dynamique (out-of-order) : le hardware modifie l'ordre des instructions pour favoriser le parallélisme

● Exécution spéculative, prédiction de branchement

● Prefetching : anticiper les données et les instructions dont le processeur aura besoin, et ainsi les précharger en mémoire

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 21: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Thread Level Parallelism● SMT (Simultaneous MultiThreading)

● A chaque cycle, traitement de plusieurs instructions (parallélisme d'instruction) issues de plusieurs threads distincts : partage du pipeline, des registres et des caches entre les threads.

● Dégrade les performances individuelles mais améliore les performances de l'ensemble.

● Performance de l'ordre de 5 à 15% pour des applications multithreadées : ce n'est pas du « vrai » multithread !

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 22: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architectures VLIW● Reporte une partie de la gestion du pipeline d'exécution sur le compilateur

● Le compilateur a la charge de fournir une instruction longue = bundle (jusqu'à 256 bits), agrégation d'instructions courtes indépendantes

● Technologie EPIC d'Intel : l'Itanium

● Gain en performance (pas de contrôle, pas de ré-ordonnancement au niveau du processeur, les instructions sont exécutées dans l'ordre exact choisi par le compilateur) mais compatibilité binaire entre génération quasi-impossible.

● Le rôle du compilateur est essentiel !

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 23: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 24: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Différentes technologies● Deux grandes catégories :

● DRAM (Dynamique Random Access Memory) : chaque bit est représenté par une charge électrique qui doit être rafraîchie à chaque lecture/écriture

● SRAM (Static Random Access Memory) : retient ses données aussi longtemps qu'il y a du courant.

● Temps d'un cycle SRAM 8 à 16 fois plus rapide qu'un cycle DRAM.

● Coût de la mémoire SRAM 8 à 16 fois plus élevé que la mémoire DRAM

Type Taille Vitesse Coût/bit

Registre < 1 KB < 1ns €€€€

SRAM On-chip 8 KB – 6 MB < 10 ns €€€

SRAM Off-chip 1 MB – 16 MB < 20 ns €€

DRAM 64 MB – 1 TB < 100 ns €

Flash 64 MB – 32 GB < 100 µs c

Disk 40 GB – 1 PB < 20 ms ~ 0

Solution la plus courante :

De 1 à 3 niveaux de SRAM en mémoire cache La mémoire principale en DRAM La mémoire virtuelle sur des

disques

Page 25: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Caractérisation de la mémoire● Cas idéal : Mémoire la plus grande possible et la plus rapide

possible

● La performance des ordinateurs est limitée par la latence et la bande passante de la mémoire :● Latence = temps pour un seul accès

Temps d'accès mémoire >> temps cycle processeur

● Bande passante = nombre d'accès par unité de temps

Page 26: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Hiérarchisation de la mémoire

Page 27: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Organisation des caches● Le cache est divisé en lignes de mots.

● 2 niveaux de granularité :● Le CPU travaille sur des mots (par exemple 32 ou 64 bits)

● Les transferts mémoire se font par blocs (par exemple lignes de cache de 256 octets).

● Une même donnée peut être présente à différents niveaux de la mémoire : problème de cohérence et de propagation des modifications.

● Les lignes de caches sont organisées en ensembles à l'intérieur du cache, la taille de ces ensembles est constante et est appelée le degré d'associativité.

Page 28: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Mémoire virtuelle● La mémoire virtuelle est le dernier niveau de la hiérarchie mémoire.

● Espace d'adressage virtuel (ou logique) :

● Quantité maximale d'espace d'adressage disponible pour une application.

● Cet espace d'adressage est en correspondance avec l'espace d'adressage physique pour l'accès aux données via le MMU (Memory Management Unit) au niveau hard et via le système d'exploitation.

● L'espace d'adressage virtuel de chaque programme et l'espace mémoire sont divisés en pages (physiques ou virtuelles) de même taille.

● Translation Lookaside Buffer (TLB) : tampon de traduction d'adresses qui permet de conserver les dernières traductions adresse virtuelle ↔ adresse physique réalisées par le MMU.

Page 29: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Principe de localité

● Les programmes standards ont souvent des comportements prédictibles soit temporellement, soit spatialement, de sorte que les accès mémoires réalisés par le processeur pour les exécuter ne se font pas au hasard.

● Deux types de localité :● Temporelle : si un mot a été utilisé récemment, il a plus de chances d'être réutilisé

– Exemple : travailler sur des blocs qui tiennent dans le cache.

● Spatiale : si un mot a été utilisé récemment, les mots avec adresses voisines ont plus de chances d'être utilisés

– Exemple (localité spatiale sur les données) :for (i = 0 ; i < DIM ; i++) Buff[i] = Tab[i];

● Pre-fetching : ● Migration au plus près du processeur des données les plus récemment accédées.

● Migration au plus près du processeur des données ayant des adresses voisines.

Page 30: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Problèmes d'accès à la mémoire● Quand le processeur cherche un mot dans le cache :

● En cas d'échec, cache miss : le bloc du mot est copié depuis la mémoire dans le cache.

● En cas de succès, cache hit : la mémoire principale n'est pas accédée

● Trois catégories d'échec :● Echec obligatoire lors du premier accès

● Echec de capacité si le cache ne peut contenir tous les blocs nécessaires pendant l'exécution d'un programme

● Echec de conflit dans les caches associatifs : le mécanisme de correspondance utilisé (associativité) remplace des lignes déjà présentes dans le caches (alors que d'autres lignes peuvent être non utilisées)

● Page fault : l'adresse virtuelle référence une page qui n'est pas trouvée en mémoire physique. Il faut alors aller charger la page référencée en mémoire physique et modifier les indicateurs de présence dans la table des pages et dans le TLB.

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Coût en cycles

Cache hit : ~ 1 cycle Page hit : ~ 100 cycles

Cache miss : ~ 100 cycles Page miss : ~ 5M cycles

Page 31: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 32: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Composants● Le débit maximal d'un bus est caractérisé par :

● Le volume d'informations transmises simultanément (exprimé en bits = nombre de lignes physiques sur lesquelles les données sont envoyées de manière simultanée) = largeur du bus

– Exemple : une nappe de 32 fils permet de transmettre 32 bits en parallèle

● La vitesse du bus = fréquence (en Hz), nombre de paquets envoyés ou reçus par seconde.

● Front Side Bus : permet au processeur de communiquer avec la mémoire. 2 grands types :

● Hyper transport, solution AMD● QuickPath Interconnect (QPI), solution Intel

● Bus PCI, standard de bus interne permettant de connecter des cartes d'extensions sur la carte mère :

● PCI-Express : évolution du PCI standard, souvent disponible à la fois au niveau du northbridge et dou southbridge

Page 33: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Réseaux● Caractéristiques importantes :

● Bande passante (bandwith) = débit maximal

● Latence = temps d'initialisation de la communication

● Distance maximale entre deux noeuds

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Technologie Latence Bande passante

1 Gb Ethernet - 1 Gb/s

10 Gb Ethernet ~ 10 µs 10 Gb/s

Infiniband < 2 µs De 10 à 96 Gb/s

Myrinet 2 µs 10 Gb/s

Répartition des types de réseaux des machines du top 500

Page 34: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 35: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architectures Hautes Performances

Page 36: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Atteindre l'exaflops ?

● Le petaflops a été atteint en 2008 (roadrunner)● Si on doit, pour atteindre l'exaflops, multiplier

par 1000 la facture énergétique, on a besoin de GigaWatts ! En fait, les prévisions sont de ~20 MW

● L'exaflops devrait être atteint vers 2018-2020● Sous quelle forme ?

● D'une manière générale, beaucoup d'unités de calcul

Page 37: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 38: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Multi­coeurs● Un processeur composé de plusieurs unités de calcul sur une même

puce.

● Permet d'augmenter la puissance de calcul sans augmenter la fréquence d'horloge.

● Et donc réduire la dissipation thermique.

● Et augmenter la densité : les cœurs sont sur le même support, la connectique qui relie le processeur à la carte mère ne change pas par rapport à un mono-processeur

Single Core Dual Core Quad Core

Core area A ~ A/2 ~ A/4

Core power W ~ W/2 ~ W/4

Chip power W + O W + O' W + O''

Core performance P 0.9 P 0.8 P

Chip performance P 1.8 P 3.2 P

Page 39: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Organisation des caches

Page 40: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Partage des caches● Partage du cache L2 (ou L3) :

● + : Communications plus rapides entre cœurs● + : meilleure utilisation de l'espace● + : migration des threads plus faciles entre les cœurs● - : contention au niveau de la bande passante et de la mémoire● - : problème de cohérence

● Pas de partage entre les caches :● + : pas de contention● - : communication/migration plus coûteuse, passage systématique par

le cache local

● Tendance :● Cache L2 non partagé, cache L3 partagé

Page 41: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Exemples

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 42: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 43: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Many­coeurs● Problématique :

● Consommation électrique : doubler la fréquence <=> X 8 de la consommation électrique

● Memory Wall : la vitesse d'accès à la mémoire augmente beaucoup plus lentement que la puissance crête du processeur

● Solution d'IBM : Blue Gene :● Augmenter le nombre de cœurs avec des fréquences réduites.

Page 44: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Caractéristiques de la BG/P● Avantages :

● Diminution de l'écart entre les débits et les latences mémoires

● Diminution de l'écart entre les débits et les latences réseaux

● Machine plus équilibrée

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

● Inconvénients :● Chaque cœur est lent

● Un très grand nombre de cœurs

● Peu de mémoire par cœurs

● 1 rack Blue Gene/P :

● 1024 nœuds, 4096 cœurs de type Power PC 45 à 850 MHz

● Cache L1 et L2 privés

● 2 Go de mémoire/nœud

● 1 nœud dédié au IO tous les 64 nœuds

● Topologie réseau :

● Tore 3D

● Réseau collectif

● barrières.

Page 45: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

PowerPC 450 de la Blue Gene/P

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

FPU (Floating Point Unit) de type FMA (Fused Add Multiply)

Page 46: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne

● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances

● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation

● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 47: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Architectures hybrides

● GP-GPU (General Purpose – Graphics Processing Units) :● Un marché de masse● Calcul double précision norme IEEE ● Outils de développement de plus en plus adaptés

Page 48: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Comparaison entre Fermi et Nehalem

● 512 coeurs simples

● ~ 3 billions de transistors

● ~ 1.5 GHz

● ~ 1500 Gflops SP

● ~ 750 Gflops DP

● ~ 190 Gbytes/s

● Support IEEE 754-2008

● Mémoires ECC (Error Correction Coding)

● 4 coeurs complexes

● 731 millions de transistors

● ~ 3 GHz

● 96 Gflops SP

● 48 Gflops DP

● ~ 30 Gbytes/s

● Support IEEE 754-2008

● Mémoires ECC (Error Correction Coding)

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 49: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Organisation d'un GPU● Architecture Fermi

● 512 cœurs répartis en streaming processor (SM) de 32 coeurs

● Chaque streaming processor a un cache L1 partagé de 64 KB

● Tous les cœurs ont accès à un cache L2 partagé de 768 KB● Les cœurs supportent le standard IEEE 754-2008 pour la précision

flottante

● La mémoire est ECC (Error Correcting Coding)

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 50: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Où va­t­on ?● Des dizaines, centaines, milliers de cœurs par processeur

● Exemple : Intel Knight Corner (basé sur l'architecture MIC – Many Integrated Cores)

● Des processeurs hybrides ● Exemple : APU (Accelerated Processing Unit) AMD Fusion combinant CPU et

GPU en une seule unité de traitement

● Des architectures many-coeurs à consommation électrique relativement basse :● Exemple : successeur de la Blue Gene/P : Blue Gene/Q, Cyclops64

● Quelles conséquences ?● Mémoires très hiérarchiques

● Très peu de mémoire par coeur

● Peu/pas de gestion de cohérence des caches

● Gestion de milliers de threads sur un chip

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 51: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 52: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Pourquoi paralléliser ?● Parallélisation : ensemble de techniques logicielles et matérielles permettant

l'exécution simultanée de séquences d'instructions indépendantes, sur des processeurs différents.

● Pourquoi ?● Traitement de problèmes scientifiques : météo, climat, biologie, géophysique, chimie

● Applications : bases de données, web, …

● Parce qu'on n'a plus le choix !

● La multiplication du nombre d'unités de calcul ne réduit pas spontanément le temps d'exécution des programmes ...

Page 53: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Classification de Flynn associée● SISD, architecture séquentielle : un seul flot d'instructions, un seul flot de données,

exécution déterministe.

● MISD : un seul flot de données alimente plusieurs unités de traitement associées à plusieurs flots d'instructions. Peu implémenté.

● SIMD, processeurs vectoriels, GPU : un seul flot d'instructions et plusieurs flots de données. Toutes les unités de traitement exécutent la même instruction à un cycle d'horloge donné, en opérant sur des données différentes, exécution déterministe.

● MIMD, cluster de multi-cœurs : plusieurs flots de données et d'instructions. Chaque unité de traitement peut gérer un flot d'instructions sur un flot de données différent des autres. Exécution synchrone ou asynchrone, déterministe ou non-déterministe.

SISD

SIMD MISD MIMD

Page 54: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Terminologie● Mémoire partagée : d'un point de vue hard, réfère à une machine dont tous les proc ont un accès

direct à une mémoire commune. D'un point de vue modèle de programmation, toutes les tâches ont la même image mémoire.

● Mémoire distribuée : d'un point de vue physique, basée sur un accès mémoire réseau pour une mémoire physique non commune.D'un point de vue modèle de programmation, les tâches ne peuvent voir que la mémoire de la machine locale.

● Communications : les tâches parallèles échangent des données par différents moyens physiques : via un bus à mémoire partagée, via un réseau. Quelque soit la méthode employée, on parle de «communications».

● Synchronisation : la coordination des tâches en temps réel est souvent associée aux communications, elle est souvent implémentée en introduisant un point de synchronisation au-delà duquel la tâche ne peut continuer tant que une ou plusieurs autres tâches ne l'ont pas atteint.

● Granularité : mesure qualitative du rapport calcul/communications

● Grain grossier (coarse) : relativement beaucoup de calcul entre différentes communications

● Grain fin (fine) : relativement peu de calcul entre différentes communications

● Speedup : mesure de l'amélioration des performances dues au parallélismewall clock time of serial execution / wall clock time on parallel execution

● Scalabilité : réfère à la capacité d'un système parallèle à fournir une augmentation de l'accélération proportionnelle à l'augmentation du nombre de processeurs.

Page 55: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Efficacité de la parallélisation● Accélération et efficacité sont une mesure de la qualité de la parallélisation

● Soit T(p) le temps d'exécution sur p processeurs.● Accélération : A(p) = T(1)/T(p) (p = 1,2,3 …)

● Efficacité : E(p) = A(p)/p

● Accélération parallèle parfaite :● T(p) = T(1)/p

● A(p) = T(1)/T(p) = T(1)/(T(1)/p) = p

● E(p) = A(p)/p = p/p = 100%

● Les programmes scalables demeurent efficaces pour un grand nombre de processeurs (passage à l'échelle).

● Scalabilité faible : l'efficacité reste bonne quand le nombre de processeurs augmente en augmentant la taille du problème : augmenter le nombre de données traitées par cœur

● Scalabilité forte : l'efficacité reste bonne quand le nombre de processeurs augmente en conservant une taille de problème fixe : aller plus vite sur un problème de même taille

Page 56: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Loi d'Amdahl● Raisons possible d'une mauvaise scalabilité :

● La machine parallèle employée : architecture inadaptée, charge …

● Le programme parallélisé : analyser le comportement, améliorer les performances

● Un peu des deux …

● Loi d'Amdahl● Plus une règle qu'une loi

● Principe : la partie non parallèle d'un programme limite les performances et fixe une bonne supérieure à la scalabilité.

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 57: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 58: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Principes● Tous les processeurs accèdent à toute la mémoire globale avec un

même espace d'adressage global.

● Chaque processeur travaille indépendamment des autres mais les modifications effectuées par un processeur à un emplacement mémoire (en mémoire globale) sont visibles par tous les autres.

● Les processeurs ont leur propre mémoire locale (cache)

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 59: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Accès mémoire● UMA, Unified Memory Access

● Des processeurs identiques, ayant tous le même temps d'accès à la mémoire. Plus couramment appelés SMP (Symmetric MultiProcessor)

● Gestion de la cohérence des caches. Certains systèmes sont CC-UMA : si un processeur modifie un emplacement mémoire partagé, la modification est visible par tous les autres processeurs

● NUMA (Non Uniform Memory Access)

● Conçus pour pallier aux problèmes d'accès mémoire concurrents via un unique bus

● En général fabriqués à base de plusieurs blocs SMP interconnectés

● Des temps d'accès à la mémoire différents suivant la zone accédée. Le temps d'accès via le lien d'interconnexion des blocs est plus lent.

● Gestion de la cohérence des caches. CC-NUMA : Cache Coherent NUMA.

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 60: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Avantages et inconvénients

● Avantages● Espace d'adressage global → facilite le travail du

programmeur● Mémoire proche des CPUs → le partage des données

entre tâches est rapide

● Inconvénients● Manque de scalabilité : augmenter le nombre de CPUs

accroît le trafic sur le chemin d'accès à la mémoire partagée

● Le programmeur doit gérer la synchronisation pour un accès correct à la mémoire globale

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 61: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Modèles de programmation associés

● Modèle à mémoire partagée : openMP● Threads : Posix, TBB …

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 62: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 63: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Principes● Le point commun de ces architectures : elles possèdent un réseau

d'interconnexion pour communiquer entre les mémoires des différents processeurs

● Chaque processeur a sa propre mémoire locale, il n'y a pas de notion d'espace d'adressage global entre tous les procs

● Les procs opèrent indépendamment les uns des autres, une modification en mémoire locale n'a pas d'effet sur la mémoire des autres procs

● Si un processeur a besoin d'une données dans la mémoire d'un autre processeur, le programmeur doit définir explicitement la communication

● Les réseaux d'interconnexion sont divers, avec des niveaux de performances très variables

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 64: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Avantages et inconvénients

● Avantages● On peut augmenter le nombre de processeurs et la mémoire

proportionnellement● Accès rapide à la mémoire locale sur chaque proc, sans

surcoût de gestion de cohérence de cache

● Inconvénients● Le programmeur doit gérer toutes les communications entre

processeurs● Difficulté pour faire coïncider une structure de données basée

sur une mémoire globale à cette organisation physique de la mémoire

● Temps d'accès mémoire non locaux élevés

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 65: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Modèles de programmation associés

● Message Passing Interface : MPI● PVM● Cuda/OpenCL/Brook

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 66: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 67: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Principes● Les ordinateurs les plus puissants au monde sont aujourd'hui un mixte de

mémoire partagée et de mémoire distribuée

● La brique de base (nœud) est un multiprocesseur à mémoire partagée

● Ces briques sont interconnectées par un réseau (type ethernet, myrinet, infiniband) ou par des bus (cas CPU-GPU)

● Architectures concernées :● Cluster de multi-processeurs multi-cœurs

● CPU + GPU

● Deux types de parallélisme :● Parallélisme à gros grains → passage de message

● Parallélisme à grains fins → thread like

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 68: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Performances

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 69: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Modèles de programmation associées● Association des modèles de programmation à

mémoire partagée et à mémoire distribuée● Exemple :

– MPI + openMP– MPI + Cuda/openCL

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Page 70: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

SOMMAIRE● Problématique de l'évolution des architectures

● Architecture interne● Processeurs

● Mémoire

● Interconnexion

● Architectures Hautes Performances● Multi-coeurs

● Many-coeurs

● Architectures hybrides

● Paradigmes de programmation● Introduction

● Modèle à mémoire partagée

● Modèle à mémoire distribuée

● Modèle hybride

● Conclusions

● Références

Page 71: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Conclusions● Importance de la compréhension de

l'architecture des machines pour ● Adapter les algorithmes, les méthodes numériques

et la programmation● Comprendre le comportement d'un programme● Choisir son infrastructure de calcul en fonction des

besoins

● Appréhender les évolutions des architectures de calcul pour réaliser des codes pérennes à l'algorithmie portable

Page 72: Architectures et paradigmes de programmation parallèleplasmasfroids.cnrs.fr/IMG/pdf/ECOMOD2010_Louvet1.pdf · ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

ECOMOD 2010 – V. Louvet – Architectures et programmation parallèles

Références● Top 500 : www.top500.org

● Actualités sur le HPC :● http://www.realworldtech.com

● http://www.hpcwire.com/

● http://www.clusterhpc.com/

● http://insidehpc.com/

● Centres de calcul :● Idris : http://www.idris.fr/

● CINES : http://www.cines.fr/

● CCRT : http://www-ccrt.cea.fr/

● GENCI : http://www.genci.fr/?lang=fr

● PRACE : http://www.prace-project.eu/

● HPC Europa2 : http://www.hpc-europa.eu/

● Mésocentres : http://calcul.math.cnrs.fr/spip.php?rubrique6