Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1
Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications concurrentes (Java et MPI) Contenu Introduction au traitement parallèle Principe de traitement vectoriel et pipeline Systèmes multiprocesseurs Analyse et mesures de performance 2
Chapitre I Introduction au traitement parallèle Quelques applications parallèles Evolution de la densité d intégration Evolution des systèmes d ordinateurs Définition et niveaux Parallélisme dans un système monoprocesseur Structures des ordinateurs parallèles Classification de Flynn 3
Quelques applications parallèles Calcul parallèle : utilisation de ressources multiples simultanément (processeurs, RAM, Caches, DMA, ) Applications classiques : Prévision météorologique Réactions chimique et nucléaire (temps réel) Activités géologique et sismique Recherche biologique Simulation des circuits intégrés Applications commerciales : Moteur de recherche du Web Exploration minière (pétrole, ) Réalité virtuelle (simulation de vol d avion, entertainment industry, ) Environnement de travail collaboratif Big Data (données massives) 4
Evolution de la densité d intégration Processeur Année Transistors Technologie 4004 1970 2,3 K 6μm 8088 1980 29 K 3μm 80286 1983 134 K 2μm 80386 1985 275 K 2μm 80486 1989 1,2 M 1μm Pentium 1995 3,3M 350 nm PentiumPro 1996 5,5M 250 nm Pentium II 1997 7,5 M 180 nm Pentium III 1999 9,5 M 130 nm Pentium IV 2003 42 M 90 nm i7-3770k 2008 1,4 G 22 nm 5
Intel Core i7-3770k 3,4 GHz, 22 nm, 1,4 G transistors 6
Evolution des systèmes d ordinateurs (1/4) Générations d'ordinateurs sont déterminées par : Technologie de fabrication des composants Mode de traitement Langage de programmation Evolution des systèmes d'exploitation traitement par lot Multiprogrammation temps partagé Multitraitement Multithread 7
Evolution des systèmes d ordinateurs (2/4) Première génération : 1938-1953 relais électromécaniques comme organes de commutation tubes à vide arithmétique bit à bit (additionner à 1 bit) des nombres en virgule fixe langage machine binaire ENIAC, EDVAC (bell laboratoires) Deuxième génération : 1952-1963 : transistors et diodes circuits imprimés (800 transistors) mémoire à tore assembleur, FORmula TRANslation 1956, Algol (Algorithmic Langage) 1960, Cobol. (Common business oriented) 1959 traitement par lot TRADIC, IBM 1620 en 1960 8
Evolution des systèmes d ordinateurs (3/4) Troisième génération : 1962-1975 : SSI et MSI circuits imprimés multicouches compilateurs intelligents multiprogrammation (exécution simultanée des programmes et des E/S) IBM 360/91, Illiac IV, TI-ASC, Cyber-175, STAR-100 temps partagé mémoire virtuelle (mémoire principale, mémoire secondaire) Quatrième génération : 1972-1990: LSI et VLSI pour la logique et la mémoire langages pour la manipulation des scalaires et des vecteurs (Fortran étendu) compilateurs avec vectorisation machine vectorielle CRAY-1 (1976), Cyber-205 (1982) systèmes multiprocesseurs IBM370/168 MP et IBM3081 (1980), Cray X- MP(1983), MPP massively parrallel processor (1982 composé de 16K microprocesseurs. 9
Evolution des systèmes d ordinateurs (4/4) Cinquième génération : 1990-aujourd hui: VLSI, ULSI, WSI (1G processeurs) Processeur multicores Plusieurs niveux de mémoire cache (3 à 7) CRAY-2 (4 processeurs) plus de 1 GFlops NEC 5 GFlops et coûte 5 millions de dollars Mutithreading 10
Classement des superordinateurs (juin 2014) Rang Site Système Cores PFlops 1 2 3 4 5 National Super Computer Center in Guangzhou, China DOE/SC/Oak Ridge National Laboratory, United States DOE/NNSA/LLNL United States RIKEN Advanced Institute for Computational Science, Japan DOE/SC/Argonne National Laboratory, United States Tianhe-2 NUDT Titan - Cray XK7 Cray Inc. Sequoia IBM K computer Fujitsu Mira - BlueGene/Q, IBM 3 120 000 33,86 560 640 17,59 1 572 864 17,17 705 024 10,51 786 432 8,58 Référence : http://www.top500.org/lists/2014/06/ 11
Définition et niveaux Définition : Exploitation d'événements concurents dans le processus de traitement Concurence : parallélisme, simultaniété et pipeline Parallèlisme : événements se produisant pendant le même intervalle de temps Simultaniété : évenements se produisant dans le même instant Pipeline : événement se produisant pendant des intervalles de temps cheuvauchés Niveaux du traitement parallèle Travail ou programme (multiprogrammation, temps partagé, multitraitements) Tâche ou procédure (décomposition du programme) Inter-instruction (analyse de la dépendance des données) ---> vectorisation Intra-instruction (au niveau de la micro-programmation) ou du cablage De plus en plus le matériel remplace le logiciel : Miniaturisation et coût Vitesse (temps réel) Tolérance au pannes 12
Parallélisme dans un monoprocesseur Multiplicité des unités fonctionnelles (10 UAL dans le CDC-6600) Parallélisme et pipeline dans le CPU Chevauchement des opérations du CPU et d'e/s (canaux, DMA E/S prog.) Système de hiérarchie de mémoire (mémoire virtuelle) Equilibrage des tâches bornées par le calcul et celles bornée par les E/S. Multiprogrammation (chevauchement entre le CPU et les E/S), et le temps partagé (efficace en interactif ---> temps réel). Tous ces mécanismes sont propres aux systèmes d exploitation 13
Structures des ordinateurs parallèles Ordinateur pipeline parallélisme temporel Tableau d'ordinateurs parallélisme spatial Système multiprocesseurs asynchrone 14
Ordinateur pipeline Exemple du pipeline : Exécution d'une instruction. CI : Chercher l'instruction de la mémoire DI : Décoder l'instruction CO : Chercher les opérandes EO : Exécuter l'opération Instruction CI DI CO EO Problème : conflit d accès à la mémoire branchement et interruption Avantage : exécution de la même instruction plusieurs fois (traitement vectoriel) Ordinateurs pipeline : IBM3838, CRAY-1, CYBER-205. 15
Tableau d ordinateurs (mémoire distribuée) E/S UC PC MC ET1 ET2 ET3 ETn P M P M P M P M UC : Unité de Contrôle PC : processeur de contrôle MC : mémoire de contrôle ET : Elément de traitement P : processeur M : mémoire locale. Réseau d interconnexion Exemples : Illiac IV et MPP 16
Système multiprocesseurs (mémoire partagée) Canaux d E/S MM1 MM2 Réseau d interconnexion MM : module mémoire P : processeur ML : mémoire locale MMn P1 ML1 Pp MLp Réseau d interconnexion Exemples : S-1, IBM370/168MP, Cray X-MP et Cray-2. 17
Classification de Flynn En 1966 : basée sur la multiplicité du flot d'instructions et le flot de données SISD : Single Instruction Single Data Stream SIMD : Single Instruction Multiple Data Stream MISD : Multiple Instruction Single Data Stream MIMD : Multiple Instruction Multiple Data Stream. 18
Classification de Flynn : SISD FI FI FD UC P M UC : unité de contrôle P : unité de processeur M : module mémoire FI : flot d'instruction FD : flot de données Le systeme peut être pipeline et/ou avoir plus d'une unité fonctionnelle (VAX11/780 une seule unité, IBM370/168 plusieurs unités). 19
Classification de Flynn : SIMD P1 FD1 M1 UC FI P2. FD2 M2. FI Pn FDn Mm Systèmes qui ont une structure de tableaux d'ordinateurs (Illiac IV et MPP) 20
Classification de Flynn : MISD FI1 FI2 UC1 P1 FD UC2 P2.. M1 M2... Mm FIn UCn Pn FD FIn... FI2 FI1 Architecture ayant moins d intention et considérée comme impraticable par certains architectes 21
Classification de Flynn : MIMD FI1 UC1 FI1 P1 FD1 DSn M1 FI2 FIn UC2. UCn FI2 FIn P2. Pn FD2 FDn M2. Mm. Exemples : IBM 360/16 MP, Cray-2, IBM 3081/3084 et S-1 22