Algorithmique et Architectures parallèles - 0fees.Net

23 downloads 111 Views 934KB Size Report
ó 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

Suggest Documents