ó Modèles de programmation parallèle ó Mesure de performances ó Mesure de
performances ó Algorithmique parallèle. Web: issatso.0fees.net.
Algorithmique et Architectures parallèles
Chapitre 1 : Introduction aux architectures parallèles
Plan du cours Introduction au parallélisme Introduction aux architectures parallèles Modèles de programmation parallèle Mesure de performances Algorithmique parallèle Web: issatso.0fees.net
Archi Parallèles & Virtualisation 12/13
2
Plan Motivation Introduction au parallélisme Classification des Architectures Parallèles
Archi Parallèles & Virtualisation 12/13
3
Motivation tout
Un puissant ordinateur doit faire du calcul parallèle ◦ Technologie Core
La puissance des ordinateurs séquentiels augmente de manière régulière (elle double tous les 18 mois: Loi de Moore). Les améliorations futures des vitesses de calcul des processeurs sont limitées par des contraintes ◦ Physiques : telles que la vitesse de la lumière ◦ Economiques : coûts très élevés de fabrication des processeurs Archi Parallèles & Virtualisation 12/13
4
Processeur vs Mémoire Quad Core Dual Core
2000
µProc 60%/an
1000
“Loi de Moore” 100
Processor-Memory Performance Gap: (augmente 50% / an)
10 DRAM
DRAM 7%/an
2009
1999 2000
1992 1993 1994 1995 1996 1997 1998
1986 1987 1988 1989 1990 1991
1982 1983 1984 1985
1 1980 1981
Performance
CPU
Années 5
Hiérarchie de la mémoire
Archi Parallèles & Virtualisation 12/13
6
Temps de transfert
Latence des réseaux Bande passante
Temps de transmission Taille des données
Ethernet
1 GB/s
40 µs
500€
Infiniband
30 GB/s (3 lignes)
1 µs
8 K€
Myrinet
20 GB/s (2 lignes)
2,3 µs
6 K€
7
Grand challenge Un certain nombre d’applications ont été classées «grand challenge», et font l’objet de recherches intensives, tant au niveau matériel qu’au niveau logiciel Elles nécessitent très souvent des puissances de traitement supérieures à celles que peut fournir un ordinateur séquentiel, aussi performant soit-il Appelées «applications 3T», nécessitant pour leur exécution: ◦ 1 Téraflops ◦ 1 Téraoctet de mémoire centrale ◦ 1 Téraoctet par seconde de bande passante pour produire les résultats
Ces applications ne peuvent être réalisées qu’en ayant recours au parallélisme massif Archi Parallèles & Virtualisation 12/13
8
Unités de mesure Calcul de Haute Performance (HPC) : ◦ Flop: opération flottante (double précision) ◦ Flop/s: opération flottante par seconde ◦ Bytes: taille des données (Octets)
Tailles mesurées en millions, billions, trillions… Mega Giga Tera Peta Exa Zetta Yotta
Mflop/s = 106 flop/sec Gflop/s = 109 flop/sec Tflop/s = 1012 flop/sec Pflop/s = 1015 flop/sec Eflop/s = 1018 flop/sec Zflop/s = 1021 flop/sec Yflop/s = 1024 flop/sec
Mbyte = 220 ~ 106 bytes Gbyte = 230 ~ 109 bytes Tbyte = 240 ~ 1012 bytes Pbyte = 250 ~ 1015 bytes Ebyte = 260 ~ 1018 bytes Zbyte = 270 ~ 1021 bytes Ybyte = 280 ~ 1024 bytes
La machine la plus puissante ~ 16 Pflop/s (1572864 coeurs) ◦ www.top500.org
Archi Parallèles & Virtualisation 12/13
9
Définition du parallélisme Le parallélisme est le fait d’utiliser un ensemble de processeurs capables de communiquer et de coopérer dans le but d’accélérer la résolution d’un seul problème. Le parallélisme pose de nombreuses questions.
Archi Parallèles & Virtualisation 12/13
10
Parallélisme ? Un ensemble de processeurs… ◦ ◦ ◦ ◦ ◦ ◦
Combien ? De quelle puissance ? Que sont-ils capables de réaliser ? Quelle est la taille de leur mémoire associée ? Quelle en est l’organisation ? Comment les entrées/sorties sont-elles réalisées ?
Archi Parallèles & Virtualisation 12/13
11
Parallélisme ? Capables de communiquer … ◦ Comment sont-ils reliés les uns aux autres ? ◦ Que sont-ils capables d’échanger ? ◦ Quel est leur protocole d’échange d’informations ?
Et de coopérer … ◦ Comment synchronisent-ils leurs efforts ? ◦ Quel est leur degré d’autonomie ? ◦ Comment sont-ils pris en compte par le système d’exploitation ? Archi Parallèles & Virtualisation 12/13
12
Parallélisme ? dans le but d’accélérer la résolution d’un seul problème … ◦ Quels sont les problèmes à fort potentiel de parallélisme ? ◦ Quel est le modèle de calcul utilisé ? ◦ Quel est le degré de spécialisation des machines à un problème donné ? ◦ Comment choisir les algorithmes ? ◦ Quelle efficacité peut-on espérer ? ◦ Comment ces machines se programment-elles ? Archi Parallèles & Virtualisation 12/13
13
Classification des Architectures Parallèles Deux principales catégories ◦ Machines à mémoire partagée (incluant les machines vectorielles). ◦ Machines à mémoire distribuée.
Le nombre de processeurs composant une machine peut varier de ◦ Quelques dizaines dans une machine à mémoire partagée. ◦ Centaines de milliers dans un système massivement parallèle (MPP).
Actuellement : dominance des clusters (grappes). Archi Parallèles & Virtualisation 12/13
14
Classification de Flynn (1966) Classification simpliste, basée sur le nombre (seul ou multiple) de ◦ Flux d’instructions : séquence d’instructions exécutées par la machine. ◦ Flux de données : séquence des données appelées par le flux d’instructions. Single Data Stream
Multiple Data Stream
Single Instruction Stream
SISD Machines séquentielles
SIMD machines vectorielles
Multiple Instruction Stream
MISD
MIMD machines multiprocesseurs Archi Parallèles & Virtualisation 12/13
15
Classification de Flynn SPMD (Single Program Multiple Data) ◦ variante de MIMD ◦ Même programme sur des données différentes.
SIMD < SPMD < MIMD Insuffisante pour classer finement les architectures parallèles Archi Parallèles & Virtualisation 12/13
16
Architecture SIMD Chaque processeur exécute la même opération que les autres mais sur des données différentes. Chaque processeur possède une petite mémoire locale. Ce modèle convient principalement pour des calculs numériques réguliers (comme le traitement d’images). Exemples : Cray-1 (1976), NEC SX-5, Tera/Cray SV1, Connection Machine CM1(1985),… Actuellement GPUs
Archi Parallèles & Virtualisation 12/13
17
Architecture MIMD Classe de machines la plus répandue. Chaque processeur exécute son propre code sur ces propres données de manière asynchrone et indépendante. 2 sous-classes MIMD à mémoire partagée ◦ les processeurs de la machine ont accès à une mémoire commune.
MIMD à mémoire distribuée ◦ les processeurs disposent chacun d’une mémoire locale. ◦ un réseau d’interconnexion est nécessaire pour échanger les informations entre processeurs. Archi Parallèles & Virtualisation 12/13
18
Architecture à mémoire partagée Réseau d’interconnexion
CPU
CPU
CPU
CPU
Mémoire partagée
Archi Parallèles & Virtualisation 12/13
19
Architecture à mémoire partagée La coordination inter-processeurs est accomplie à travers une mémoire globale partagée par tous les processeurs. Ces systèmes sont aussi appelés SMP (Symmetric Multiprocessors). En général entre 2 et 64 processeurs. Leur programmation est relativement facile ◦ il n’est plus nécessaire de mettre en ouvre des communications explicites
Extensibilité? ◦ En raison des coûts très élevés et de la complexité de réalisation ◦ Difficulté de gérer une mémoire partagée à laquelle pourraient accéder plusieurs dizaines de processeurs (goulots d’étranglement) ◦ les concepteurs de machines parallèles ont opté pour le « distribué ».
Organisation de la mémoire ◦ UMA (Uniform Memory Access) : tous les processeurs ont le même temps d’accès à n’importe quelle case mémoire. ◦ NUMA (Non UMA) : le temps d’accès à un module mémoire dépend de la distance le séparant au processeur
Exemples : PC bi-processeurs, Cray SV1, SGI Origin3000, un nœud de l’IBM SP3, … Archi Parallèles & Virtualisation 12/13
20
Architecture à mémoire distribuée Réseau d’interconnexion
CPU
CPU
CPU
Mémoire Locale
Mémoire Locale
Mémoire Locale
CPU
Mémoire Locale
Archi Parallèles & Virtualisation 12/13
21
Architecture à mémoire distribuée La notion de mémoire globale n’existe pas. Les machines à mémoire distribuée sont les seules susceptibles de fournir de très hautes performances : Extensibilité. Exemples de systèmes dans les années 90 : Systèmes à base de Transputers, Tera/Cray T3E, IBM SP3,… MIMD CLUMPS : Clusters of SMP ◦ ◦ ◦ ◦
Construits à partir de SMP. Mémoire partagée au sein de chacun des SMP. Mémoire distribuée entre SMP. Exemple : IBM SP3 : des nœuds SMP de 16 processeurs chacun reliés par un réseau dédié. Archi Parallèles & Virtualisation 12/13
22
Cluster de SMPs Réseau d’interconnexion
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
4-way SMP
4-way SMP
4-way SMP
4-way SMP
Archi Parallèles & Virtualisation 12/13
23
Architecture hybride La situation réelle est plus compliquée. On peut avoir des architectures qui présentent des aspects couvrant plus d’une catégorie. En effet, plusieurs machines sont de conception hybride. Combiner les avantages des architectures à mémoire partagée et à mémoire distribuée. Donner naissance à une architecture à mémoire distribuée-partagée. La mémoire est physiquement distribuée : l’architecture matérielle peut suivre le modèle de passage de message, et la façon de programmation suit le modèle à mémoire partagée. Exemple de système : SGI Origin2000.
Archi Parallèles & Virtualisation 12/13
24
Machines actuelles Profiter des avantages des deux architectures précédentes Maximiser le parallélisme au sein d’une seule machine Augmenter le nombre de machines ◦ PCs
Processeur multicoeurs ◦ Architecture classiques de type PC ◦ Remédier au gap processeur/DRAM Archi Parallèles & Virtualisation 12/13
25
http://www.fz-juelich.de/jsc/files/docs/vortraege/supercomputer/SC-BlueGene-Architecture.pdf Archi Parallèles & Virtualisation 12/13
26
Architectures parallèles et distribuées (Leopold (Leopold,, 2001)
Archi Parallèles & Virtualisation 12/13
27
Systèmes Parallèles et systèmes Distribués Systèmes parallèles ◦ Ensemble d’éléments de calcul. ◦ Qui peuvent communiquer et coopérer. ◦ Pour résoudre rapidement de grands problèmes.
Systèmes distribués ◦ Ensemble de processeurs autonomes. ◦ Qui ne se partagent pas de mémoire primaire. ◦ Mais qui coopèrent par envoi de messages à travers un réseau de communication. Archi Parallèles & Virtualisation 12/13
28
Clusters (Grappes) Motivation ◦ Les plateformes de super-calcul traditionnelles spécialisées, (comme le Cray/SGI,T3E…) n’étaient accessibles qu’à une minorité d’individus à cause de leurs prix élevés. ◦ Avancés dans la technologie des réseaux et la disponibilité de stations de travail de coût faible. ◦ D’où la naissance des clusters dans les années 90.
Archi Parallèles & Virtualisation 12/13
29
Clusters (Grappes) • Ensemble de nœuds interconnectés par un réseau • •
de communication à haut débit Architecture de déploiement de services sur des Intranets Spécificités ◦ Homogénéité ◦ Forte localité ◦ Confiance
Architecture du I-Cluster (INRIA / Lab. ID-IMAG) Archi Parallèles & Virtualisation 12/13
30
Grids (Grilles) Ian Foster (1998) : Analogie avec la distribution d’électricité
Archi Parallèles & Virtualisation 12/13
31
Grids (Grilles) Partage de ressources multiples et hétérogènes Interopérabilité transparente pour l’utilisation des ressources ◦ L’utilisateur ne perçoit pas l’architecture sous-jacente de la grille (son middleware la masque).
Accès transparent aux ressources ◦ Où sont stockées les données ? ◦ Où sont lancés les calculs ?
Spécificités
• • • •
Existence de plusieurs domaines administratifs autonomes Hétérogénéité des ressources Passage à l’échelle (scalability) Dynamicité des ressources
Archi Parallèles & Virtualisation 12/13
32