Architecture et Systèmes

Documents pareils
Architecture des ordinateurs

Architecture des calculateurs

Initiation au HPC - Généralités

Limitations of the Playstation 3 for High Performance Cluster Computing

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Parallélisme et Répartition

Systèmes et traitement parallèles

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Eléments d architecture des machines parallèles et distribuées

Tests de performance du matériel

<Insert Picture Here> Exadata Storage Server et DB Machine V2

Architecture des ordinateurs

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Quantification d incertitude et Tendances en HPC

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Chapitre 4 : Les mémoires

Architecture matérielle des systèmes informatiques

Leçon 1 : Les principaux composants d un ordinateur

THÈSE. Pour obtenir le grade de. Spécialité : Informatique. Arrêté ministériel : 7 août Présentée et soutenue publiquement par.

La mémoire. Un ordinateur. L'octet. Le bit

ELP 304 : Électronique Numérique. Cours 1 Introduction

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Cours Informatique 1. Monsieur SADOUNI Salheddine

Programmation C. Apprendre à développer des programmes simples dans le langage C

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Exécution des instructions machine

Éléments d'architecture des ordinateurs

Architecture des Ordinateurs. Partie II:

Contributions à l expérimentation sur les systèmes distribués de grande taille

Gestion de clusters de calcul avec Rocks

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

Fonctionnement et performance des processeurs

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

NOTIONS DE RESEAUX INFORMATIQUES

Segmentation d'images à l'aide d'agents sociaux : applications GPU

Les environnements de calcul distribué

Informatique Générale

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Réseau longue distance et application distribuée dans les grilles de calcul : étude et propositions pour une interaction efficace

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Les liaisons SPI et I2C

«clustering» et «load balancing» avec Zope et ZEO

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Concepts et systèmes de stockage

Métriques de performance pour les algorithmes et programmes parallèles

Diagrammes de Package, de déploiement et de composants UML

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

LOT 1 - ACQUISITION DE SERVEURS INFORMATIQUES LOT 2 - ACQUISITION DE 5 POSTES INFORMATIQUES

Sanity Check. bgcolor mgcolor fgcolor

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Vers du matériel libre

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Détection d'intrusions en environnement haute performance

HP 600PD TWR i G 4.0G 39 PC

Conception de circuits numériques et architecture des ordinateurs

Drupal : Optimisation des performances

Une méthode de conception de systèmes sur puce

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Structure fonctionnelle d un SGBD

Infrastructures Parallèles de Calcul

Spécifications détaillées

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

ORACLE EXADATA DATABASE MACHINE X2-2

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Architecture des ordinateurs Introduction à l informatique

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Machines virtuelles Cours 1 : Introduction

UNIVERSITÉ D ORLÉANS ÉCOLE DOCTORALE MIPTIS MATHÉMATIQUES, INFORMATIQUE, PHYSIQUE THÉORIQUE ET INGÉNIEURIE DES SYSTÈMES. THÈSE présentée par :

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Évaluation et implémentation des langages

Spécifications détaillées

Représentation des Nombres

Exigences système Commercial & Digital Printing

Exigences système Edition & Imprimeries de labeur

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

ORACLE EXADATA DATABASE MACHINE X2-8

Séminaire RGE REIMS 17 février 2011

Serveur Lynx CALLEO Application 2240S Fiches Technique

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Pré-requis techniques. Yourcegid Secteur Public On Demand Channel

Architectures d implémentation de Click&DECiDE NSI

CORBA haute performance

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Chapitre 13 Numérisation de l information

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Serveur Lynx CALLEO Application 2240 Fiches Technique

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Structure de base d un ordinateur

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Pré-requis techniques

ADMINISTRATION EXADATA

Transcription:

Architecture et Systèmes Bastien DI PIERRO Lyon Calcul 6 octobre 2016 B. DI PIERRO Architectures et Systèmes 05/02/2016 1 / 76

Objectifs de ce module Démystifier l ordinateur B. DI PIERRO Architectures et Systèmes 05/02/2016 2 / 76

Objectifs de ce module Démystifier l ordinateur Modéliser et simuler un problème scientifique issu de la physique, biologie, chimie,... Comprendre l architecture Adapter les méthodes numériques, les algorithmes, les structures de données et la programmation Comprendre et expliquer le comportement d un programme Optimiser les codes de calcul Réaliser des codes portables et réutilisables Paralléliser B. DI PIERRO Architectures et Systèmes 05/02/2016 2 / 76

Importance des aspects matériels La connaissance des architectures de calcul permet de : choisir et d adapter son matériel en fonction des besoins dimensionner correctement en retenant le meilleur compromis : architecture équilibrée comprendre le comportement d un programme adapter les méthodes numériques, les algorithmes, la programmation Multi-cœurs Blue-gene P GPU B. DI PIERRO Architectures et Systèmes 05/02/2016 3 / 76

1 Historique 2 Architecture générale séquentielle 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 4 / 76

1 Historique Programmation Machine de Turing Architecture de Von-Neumann 2 Architecture générale séquentielle 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 5 / 76

Historique - Programmation Muhammad Al-Khwarizmi (780-850) Mathématicien, Géologue, Astronome, Astrologue Père de l Algèbre, The Compendious Book on Calculation by Completion and Balancing, 830 Donne son nom au mot algorithme Succession d opérations simples et non ambigües visant à résoudre un problème précis Exemples : Surface d un volume, tissage, règle d un sport, recette de cuisine... B. DI PIERRO Architectures et Systèmes 05/02/2016 6 / 76

Historique - Programmation Muhammad Al-Khwarizmi (780-850) Mathématicien, Géologue, Astronome, Astrologue Père de l Algèbre, The Compendious Book on Calculation by Completion and Balancing, 830 Blaise Pascal (1623-1662) Mathématicien, Physicien, Théologue, Philosophe La Machine à calculer (1642) Langage Pascal. B. DI PIERRO Architectures et Systèmes 05/02/2016 6 / 76

Historique - Programmation Leonhard Euler (1707-1783) Mathématicien, Physicien, Astronome, Ingénieur. 1768, Institutionum calculi integralis Méthodes d intégration approchées pour résoudre les EDO B. DI PIERRO Architectures et Systèmes 05/02/2016 7 / 76

Historique - Programmation Leonhard Euler (1707-1783) Mathématicien, Physicien, Astronome, Ingénieur. Ada Lovelace (1815-1852) Mathématicienne, Écrivaine Premier programme informatique (1842, nombres de Bernoulli), langage ADA. B. DI PIERRO Architectures et Systèmes 05/02/2016 7 / 76

1 Historique Programmation Machine de Turing Architecture de Von-Neumann 2 Architecture générale séquentielle 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 8 / 76

Historique - Premier ordinateur Allan Turing (1912-1954), Mathématicien, Logisticien Pionnier des sciences informatiques, informatique théorique Introduit la notion de calculable (calculus : petit caillou) Qu est-ce qui est calculable? Machine de Turing (Modèle Abstrait) Formalisme Mathématique Casse les codes allemands pendant WWII Estimation : 2 à 4 ans de gagnés B. DI PIERRO Architectures et Systèmes 05/02/2016 9 / 76

Machine de Turing Machine minimaliste : Ruban (données) Tête lecture-écriture Registre d état (mémoire) Table d actions (calculs) Inconvenient : 1 machine 1 série d instruction! B. DI PIERRO Architectures et Systèmes 05/02/2016 10 / 76

1 Historique Programmation Machine de Turing Architecture de Von-Neumann 2 Architecture générale séquentielle 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 11 / 76

Architecture de Von-Neumann Jhon Von Neumann (1903-1957) Mathématicien, Physicien Idée : instructions et données stockées dans la même mémoire! Possibilité de changer les instructions, surtout en cours de calcul! 1 machine infinité d opérations! Architecture de la plupart des ordinateurs actuels! B. DI PIERRO Architectures et Systèmes 05/02/2016 12 / 76

Quelques dinosaures B. DI PIERRO Architectures et Systèmes 05/02/2016 13 / 76

1 Historique 2 Architecture générale séquentielle Architecture générale Le processeur (CPU) La mémoire Communications internes et réseaux 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 14 / 76

Les différents composants 1 Carte mère 2 Processeur 3 Mémoire vive (RAM) 4 Disque dur (ROM) 5 Alimentation 6 Carte graphique B. DI PIERRO Architectures et Systèmes 05/02/2016 15 / 76

Architecture générale B. DI PIERRO Architectures et Systèmes 05/02/2016 16 / 76

1 Historique 2 Architecture générale séquentielle Architecture générale Le processeur (CPU) La mémoire Communications internes et réseaux 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 17 / 76

Le processeur Unité centrale de traitement (UCT), Central Processing Unit (CPU) Cerveau de l ordinateur! Exécute les instructions machines (ex : addition, sinus, logarithme,...) Traite généralement des données binaires Possède une mémoire interne Différentes famille : 80x86 IA-64 PowerPC SPARC ARM... B. DI PIERRO Architectures et Systèmes 05/02/2016 18 / 76

Composition d un cœur Unité de commande : permet de séquencer les instructions Unité Arithmétique et Logique (UAL), calculs arithmétiques élémentaires sur des nombres entiers et opérations logiques Unité de calcul en virgule flottante (en anglais Floating Point Unit - FPU) : traitement des calculs sur des nombres à virgule Registres : mémoires de petite taille (quelques octets) très rapides Mémoires caches : diminuent les temps d accès à la mémoire B. DI PIERRO Architectures et Systèmes 05/02/2016 19 / 76

Caractéristique d un processeur Nombre de cœurs : le processeur peut intégrer plusieurs noyaux de calcul appelés cœurs B. DI PIERRO Architectures et Systèmes 05/02/2016 20 / 76

Caractéristique d un processeur Nombre de cœurs : le processeur peut intégrer plusieurs noyaux de calcul appelés cœurs Fréquence d horloge : vitesse de fonctionnement du processeur = nombre de cycles que le processeur est capable d effectuer par seconde Cycle = plus petite unité de temps au niveau du processeur. Chaque opération/instruction nécessite au minimum un cycle, et plus souvent plusieurs 1GHz = 10 9 Hz = 10 9 cycle/s B. DI PIERRO Architectures et Systèmes 05/02/2016 20 / 76

Caractéristique d un processeur Nombre de cœurs : le processeur peut intégrer plusieurs noyaux de calcul appelés cœurs Fréquence d horloge : vitesse de fonctionnement du processeur = nombre de cycles que le processeur est capable d effectuer par seconde Jeu d instructions : ensemble des opérations qu un processeur peut exécuter (+, -, *,,/, sin,...) Conséquences directes B. DI PIERRO Architectures et Systèmes 05/02/2016 20 / 76

Caractéristique d un processeur Nombre de cœurs : le processeur peut intégrer plusieurs noyaux de calcul appelés cœurs Fréquence d horloge : vitesse de fonctionnement du processeur = nombre de cycles que le processeur est capable d effectuer par seconde Jeu d instructions : ensemble des opérations qu un processeur peut exécuter (+, -, *,,/, sin,...) Largeur (32 ou 64 bits) : notamment du bus de données et des registres internes. Bon indicateur de la quantité d informations que celui-ci peut gérer en un temps donné B. DI PIERRO Architectures et Systèmes 05/02/2016 20 / 76

Caractéristique d un processeur Nombre de cœurs : le processeur peut intégrer plusieurs noyaux de calcul appelés cœurs Fréquence d horloge : vitesse de fonctionnement du processeur = nombre de cycles que le processeur est capable d effectuer par seconde Jeu d instructions : ensemble des opérations qu un processeur peut exécuter (+, -, *,,/, sin,...) Largeur (32 ou 64 bits) : notamment du bus de données et des registres internes. Bon indicateur de la quantité d informations que celui-ci peut gérer en un temps donné Adressage mémoire Les processeurs 32 bits ne peuvent pas adresser plus de 4 gigaoctets (2 32 ) de mémoire centrale, tandis que les processeurs 64 bits peuvent adresser 16 exaoctets (2 64 ) de mémoire. B. DI PIERRO Architectures et Systèmes 05/02/2016 20 / 76

Flops et performance du processeur La performance s exprime en opérations à virgule flottante par seconde = FLoating point Operations Per Second Puissance crête (point de vue théorique) : mesure les performance des unités de calcul en virgule flottante (FPU) contenues dans le cœur. Exemple sur un processeur Intel Sandybridge 6 coeurs, 3.2GHz, registres vectoriels 16 (simple précision) ou 8 (double) Performance crête d un processeur : 6 x 3.2 x 16 = 307.2 GFLOPS D un point de vue pratique, la puissance d une machine dépend de l ensemble de ses composants : accès mémoire vitesse des bus système d exploitation charge de la machine B. DI PIERRO Architectures et Systèmes 05/02/2016 21 / 76

1 Historique 2 Architecture générale séquentielle Architecture générale Le processeur (CPU) La mémoire Communications internes et réseaux 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 22 / 76

Memory Wall : Vitesse CPU >> Vitesse Memoire 10 6 Relative performance 10 3 Processor Memory 1 1980 1990 2000 2010 Mémoire : élément très pénalisant! B. DI PIERRO Architectures et Systèmes 05/02/2016 23 / 76

Définitions bit et octect bit (b) : binary digit, plus petite unité d information d un composant en informatique. Vaut 0 ou 1. octet (o) ou byte (B) = composé de 8 bits 1ko = 1000 octets, 1kibio = 2 10 octets = 1024 octets = 8192 bits Bande passante : Débit d informations Mesurée généralement en octets (byte) par seconde (o/s, ou B/s) ou en bits par seconde (bit/s ou bps) Latence Temps minimum d établissement de la connexion : indépendant de la quantité de données à transporter. Mesurée généralement en secondes B. DI PIERRO Architectures et Systèmes 05/02/2016 24 / 76

Différents types de mémoires Cache : petite mémoire interne processeur en accès très rapide RAM : Mémoire centrale de l ordinateur, située sur la carte mère. Mémoire vidangée à chaque reboot. Disque dur : Stockage des données, sauvegarde au long terme. Quelques ordres de grandeurs : Type Taille Vitesse Coût/bit Registre < 1 KB < 1 ns $$$$ 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 B. DI PIERRO Architectures et Systèmes 05/02/2016 25 / 76

Hiérarchie Mémoire Registres Caches Bande passante Vitesse Proximité du cœur RAM : Mémoire locale Disques : Mémoire secondaire Latence Taille CD, Bandes... : Mémoire tertiaire B. DI PIERRO Architectures et Systèmes 05/02/2016 26 / 76

Problématique Memory wall L accès aux données est un des principaux facteurs limitant la performance Les machines sont déséquilibrées Equilibre d une machine Ratio entre la bande passante mémoire et la performance crête B m = memory bandwith (GWords/sec) peak performance (GFlops/sec) data path balance (W/F) cache 0.5-1.0 machine (RAM) 0.03-0.5 GBit ethernet 0.0001-0.0007 disque 0.0001-0.01 B. DI PIERRO Architectures et Systèmes 05/02/2016 27 / 76

Accès mémoire : problématique Quels facteurs influencent les performances des accès mémoires? Localisation: cache, RAM, disque? Manière dont on y accéde : au travers d un chipset (jeu de composants électroniques qui permet le contrôle des échanges d informations) directement par le processeur via le processeur voisin... Plus une donnée est proche du processeur, plus elle est accédée rapidement. Mémoire centrale L3 L2 L1 CPU B. DI PIERRO Architectures et Systèmes 05/02/2016 28 / 76

Principes de localité Localité spatiale Lorsqu un programme accède à une donnée ou à une instruction, il est probable qu il accédera ensuite aux données ou instructions voisines Localité temporelle Lorsqu un programme accède à une donnée ou à une instruction, il est probable qu il y accédera à nouveau dans un futur proche Exemple s u b r o u t i n e sumvec ( vec, n ) i n t e g e r : : n i n t e g e r : : vec ( n ) i n t e g e r : : i, sum=0 do i = 1, n sum = sum + vec ( i ) end do end s u b r o u t i n e Bonne localité spatiale des données du tableau vec : accès en séquence Bonne localité temporelle de la donnée sum : accès fréquent Bonne localité spatiale et temporelle des instructions : accès en séquence et fréquemment B. DI PIERRO Architectures et Systèmes 05/02/2016 29 / 76

Fonctionnement des caches Le cache est divisé en lignes (ou blocs) de mots 2 niveaux de granularité : le CPU travaille sur des mots (par ex 32 ou 64 bits) les transferts mémoire se font par ligne (ou bloc, par ex 256 octets) Exploitation de la localité spatiale : le cache contient des copies des mots par ligne de cache Exploitation de la localité temporelle : choix judicieux des lignes de cache à retirer lorsqu il faut rajouter une ligne à un cache déjà plein Lorsque le processeur tente d accéder à une information (instruction ou donnée) Si l information se trouve dans le cache (hit), le processeur y accède sans état d attente, sinon (miss) le cache est chargé avec un bloc d informations de la mémoire ( 1 ms). B. DI PIERRO Architectures et Systèmes 05/02/2016 30 / 76

Quelles conséquences pour nous? Exemple du parcours d une matrice On considère un tableau 2D Allocation mémoire : les données sont stockées dans un bloc mémoire contigu sous la forme d un vecteur En C/C++ : stockage des lignes les unes derrière les autres En Fortran : stockage des colonnes les unes derrière les autres for i 1, n do for j 1, n do a i,j x j = 0. end for end for for i 1, n do for j 1, n do a j,i x i = 0. end for end for Une version est bonne, l autre pas! Démonstration par l exemple B. DI PIERRO Architectures et Systèmes 05/02/2016 31 / 76

Stockage : Goulot d étranglement Le débit global est dépendant de toute la chaîne d I/Os (baie, serveur, interconnexion...). La capacité de stockage augmente beaucoup plus vite que la vitesse d accès Le débit vers les disques augmente moins vite que la puissance de calcul La quantité de données générée augmente avec la puissance de calcul L approche classique un fichier/processus génère de plus en plus de fichiers Trop de fichiers = saturation des systèmes de fichiers (nombre maximum de fichiers et espace gaspillé à cause des tailles de bloc fixes) Le temps passé dans les I/O croît (surtout pour les applications massivement parallèles) B. DI PIERRO Architectures et Systèmes 05/02/2016 32 / 76

1 Historique 2 Architecture générale séquentielle Architecture générale Le processeur (CPU) La mémoire Communications internes et réseaux 3 Architecures parallèles 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 33 / 76

Quelques définitions Bus = ensemble de liaisons physiques pouvant être exploitées en commun par plusieurs éléments matériels afin de communiquer. Bande passante = débit d informations ; quantité d informations échangée par unité de temps Latence = temps de réponse du bus à une requête de transfert, temps minimum d établissement de la connexion : indépendant de la quantité de données à transporter Ordres de grandeur Protocole Usage Débit théorique maximal SATA 3.0 Disque dur 750 Mo/s USB 2.0 Périphériques externes 60 Mo/s DDR3 RAM 17000 Mo/s ADSL Réseau domestique 8 Mb/s B. DI PIERRO Architectures et Systèmes 05/02/2016 34 / 76

Communications internes Chipset : gère les flux de données B. DI PIERRO Architectures et Systèmes 05/02/2016 35 / 76

Caractéristiques des réseaux La bande passante (bandwidth) est le débit maximal. La bande passante effective est généralement inférieure à la bande passante physique La latence : temps d initialisation de la communication. La distance maximum entre deux nœuds. La topologie: tore, fat-tree... B. DI PIERRO Architectures et Systèmes 05/02/2016 36 / 76

Technologies réseaux Technologie Latence Bande passante 1 Gb Ethernet - 1 Gb/sec 10 Gb Ethernet 10 µs 10 Gb/sec Infiniband 2 µs 10, 20 & 40 Gb/sec Myrinet 2.5-5.5 µs 10 Gb/sec Répartition des familles d interconnexion, top 500, juin 2014 B. DI PIERRO Architectures et Systèmes 05/02/2016 37 / 76

1 Historique 2 Architecture générale séquentielle 3 Architecures parallèles Introduction Multi-coeur GPU Many-coeur Mémoire distribuée 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 38 / 76

Concept : calcul séquentiel Calcul séquentiel : Les instructions (et accès mémoires) s exécutent les unes après les autres. Conjecture de Moore : La puissance double tous les 18 mois! Instruction 0 Instruction 1 Instruction 2 Instruction N B. DI PIERRO Architectures et Systèmes 05/02/2016 39 / 76

Concept : calcul séquentiel Calcul séquentiel : Les instructions (et accès mémoires) s exécutent les unes après les autres. Conjecture de Moore : La puissance double tous les 18 mois! Limitation 1 : consommation Puissance fréquence 3 (Curie : 3.5MW Bron / 4) Limitation 2 : miniaturisation Prochain processeur Intel gravés à 14nm ( 100 atomes) les coûts explosent! Instruction 0 Instruction 1 Instruction 2 Instruction N B. DI PIERRO Architectures et Systèmes 05/02/2016 39 / 76

Concept : Architecture parallèle Calcul parallèle : 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. Programme Instruction 0 Instruction 1 Instruction 2 Instruction 3 Instruction 4 Instruction 5 Instruction 6 Instruction 7 B. DI PIERRO Architectures et Systèmes 05/02/2016 40 / 76

Pourquoi paralléliser? Grands challenges : météo et climat biologie géophysique astrophysique chimie nucléaire Applications commerciales : bases de données parallèles exploration pétrolière moteurs de recherche web réalité virtuelle Traiter des problèmes plus grands et/ou plus complexes. Mais aussi exploiter les architectures actuelles! La multiplication du nombre d unités de calcul ne divise pas spontanément le temps d exécution des programmes! Demonstration B. DI PIERRO Architectures et Systèmes 05/02/2016 41 / 76

Classification de Flynn Les programmes et les architectures sont classés selon le type d organisation du flux de données et du flux d instructions. 2 états possibles pour chacune : single ou multiple SISD SIMD Single Instruction, Single Data Single Instruction, Multiple Data = machines séquentielles = processeurs vectoriels, GPU MISD MIMD Multiple Instruction, Single Data Multiple Instruction, Multiple Data = rare = multiproc, multicores B. DI PIERRO Architectures et Systèmes 05/02/2016 42 / 76

SISD, MISD SISD : architecture séquentielle avec 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 unités de traitement indépendantes instructions indépendantes Ex d utilisation : exécution en // de plusieurs algos de cryptographie pour le décodage d 1 même message. B. DI PIERRO Architectures et Systèmes 05/02/2016 43 / 76

SIMD, MIMD SIMD architecture // même instruction données différentes Exemple : rameurs MIMD architecture la plus courante. instructions indépendantes données différentes Exemple : équipe foot B. DI PIERRO Architectures et Systèmes 05/02/2016 44 / 76

Terminologie Tâche Exécution parallèle Exécution d une tâche sur plusieurs unités de calculs B. DI PIERRO Architectures et Systèmes 05/02/2016 45 / 76

Terminologie Tâche Exécution parallèle Mémoire partagée Mémoire centrale Toutes les unités de calculs partagent la même mémoire centrale B. DI PIERRO Architectures et Systèmes 05/02/2016 45 / 76

Terminologie Tâche Exécution parallèle Mémoire distribuée Chaque unité de calcul a sa propre mémoire centrale B. DI PIERRO Architectures et Systèmes 05/02/2016 45 / 76

Terminologie Tâche Exécution parallèle Mémoire distribuée Communications Communication : Échange de données entre les unités de calcul B. DI PIERRO Architectures et Systèmes 05/02/2016 45 / 76

Terminologie Synchronisation Synchronisation : coordination des tâches. Point où les unités doivent s attendre pour poursuivre le calcul B. DI PIERRO Architectures et Systèmes 05/02/2016 45 / 76

Parallélisation efficace 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. L accélération A(p) et l efficacité E(p) sont définies comme étant : A(p) = T (1)/T (p) (p = 1, 2, 3...) E(p) = A(p)/p Pour une accélération parallèle parfaite, on obtient : 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% B. DI PIERRO Architectures et Systèmes 05/02/2016 46 / 76

Accélération et efficacité Les programmes scalables demeurent efficaces pour un grand nombre de processeurs (scalables = passages à l échelle). B. DI PIERRO Architectures et Systèmes 05/02/2016 47 / 76

Loi d Amdahl Loi d Amdahl : la partie non parallèle d un programme limite les performances et fixe une borne supérieure à la scalabilité. B. DI PIERRO Architectures et Systèmes 05/02/2016 48 / 76

1 Historique 2 Architecture générale séquentielle 3 Architecures parallèles Introduction Multi-coeur GPU Many-coeur Mémoire distribuée 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 49 / 76

Multi-coeur Processeur multi-coeur : Processeur possédant plusieurs coeurs de calcul physiques fonctionnant simultanément Architecture de la plupart des processeurs actuels! B. DI PIERRO Architectures et Systèmes 05/02/2016 50 / 76

CPU, processeur, cœur, socket? B. DI PIERRO Architectures et Systèmes 05/02/2016 51 / 76

CPU, processeur, cœur, socket? CPU, Processeur : Central Processing Unit Cœur : élément du processeur capable d exécuter des programmes de façon autonome Socket : réceptacle du processeur sur la carte mère Serveur Socket Socket Coeur Coeur Coeur Coeur Coeur Coeur Coeur Coeur Serveur bi-sockets quadri-coeurs B. DI PIERRO Architectures et Systèmes 05/02/2016 51 / 76

Fonctionnement : les points importants Il existe des mécanismes complexes pour augmenter les performances : pipelining, processeur superscalaire, exécution spéculative, hyperthreading... Instructions vectorielles : le processeur, en fonction de son jeu d instructions, est capable d appliquer la même instruction simultanément à plusieurs données (SSE, AVX). Parallélisme multi-niveaux B. DI PIERRO Architectures et Systèmes 05/02/2016 52 / 76

Pipeline L exécution d une instruction est décomposée en une succession d étapes. Chaque étape correspond à l utilisation d une des fonctions du micro-processeur. Lorsqu une instruction se trouve dans l une des étapes, les composants associés aux autres étapes ne sont pas utilisés. Problèmes potentiels Le temps de traitement de chaque étape doit être à peu près égal sinon les unités rapides doivent attendre les plus lentes. Des aléas si une instruction produit un résultat utilisé par l instruction suivante par exemple, ou quand deux instructions ont besoin d utiliser la même ressource. B. DI PIERRO Architectures et Systèmes 05/02/2016 53 / 76

Exemple de pipeline à 4 étages Recherche Décodage Exécution Sauv. résultat Modèle classique R1 R2 R3 D1 D2 D3 E1 E2 E3 1 2 3 S1 4 5 6 7 S2 8 9 S3 10 11 12 de Nbre cyles B. DI PIERRO Architectures et Systèmes 05/02/2016 54 / 76

Exemple de pipeline à 4 étages Modèle pipeliné à 4 étages R1 R2 R3 R4 R5 R6 R7 R8 R9 D1 D2 D3 D4 D5 D6 D7 D8 D9 E1 E2 E3 E4 E5 E6 E7 E8 E9 S1 S2 S3 S4 S5 S6 S7 S8 S9 1 2 3 4 5 6 7 8 9 10 11 12 de Nbre cyles Chaque travailleur effectue le même travail sur des objets différents S il y a 4 étapes dans la chaîne, 4 objets peuvent être traités simultanément Et si ces étapes prennent le même temps, la chaîne est continuellement occupée B. DI PIERRO Architectures et Systèmes 05/02/2016 55 / 76

Hyperthreading SMT = Simultaneous MultiThreading, plus connu sous le nom d Hyperthreading chez Intel. Principe : créer deux cœurs logiques sur une seule puce, chacun doté de ses propres registres. Ces deux unités partagent les éléments du cœur physique comme le cache et le bus système. Dégradation des performances individuelles des threads mais amélioration des performances de l ensemble. Attention Ce fonctionnement est généralement activé par défaut. B. DI PIERRO Architectures et Systèmes 05/02/2016 56 / 76

Architecture superscalaire Principe Exécuter plusieurs instructions en même temps. Doter le micro-processeur de plusieurs unités de traitement travaillant en parallèle Nécessite un flot de données/instructions important ALU ALU B. DI PIERRO Architectures et Systèmes 05/02/2016 57 / 76

Organisation des caches Core L1 L2 Core L1 L2 Core L1 Core L1 L3 Cache L3 Cache Shared L2 Cache Core L1 L2 Core L1 L2 L3 Cache L3 Cache Core L1 Core L1 Caches indépendants Caches partagés Problème de cohérence Problème d accès concurrent B. DI PIERRO Architectures et Systèmes 05/02/2016 58 / 76

UMA/NUMA Modèle NUMA (Non Uniform Memory Access) : les processeurs sont capables d accéder à la totalité de la mémoire du système mais les temps d accès mémoire sont non uniformes en fonction de la distance mémoire/cœur. Architecture UMA Architecture NUMA RAM RAM RAM B. DI PIERRO Architectures et Systèmes 05/02/2016 59 / 76

Balance Avantages Mémoire globale facile à programmer Mémoire proche des CPU accès rapide Inconvénients Gros trafic de données mauvaise scalabilité Programmeur : gérer la synchronisation (mémoire globale) Très coûteux! B. DI PIERRO Architectures et Systèmes 05/02/2016 60 / 76

1 Historique 2 Architecture générale séquentielle 3 Architecures parallèles Introduction Multi-coeur GPU Many-coeur Mémoire distribuée 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 61 / 76

Pourquoi les GPU? À performance théorique égale, les plateformes à base de GPU: occupent moins de place sont moins chères sont moins consommatrices d électricité B. DI PIERRO Architectures et Systèmes 05/02/2016 62 / 76

Architecture comparée d un CPU et d un GPU Flow Control ALU ALU ALU ALU...... CACHE...... DRAM DRAM CPU GPU B. DI PIERRO Architectures et Systèmes 05/02/2016 63 / 76

Caractéristiques d un GPU Deux composants principaux : Mémoire globale : similaire à la RAM du CPU, accessible à la fois par le GPU et le CPU. Actuellement, jusqu à 16 GB par GPU. Bande passante jusqu à 250 GB/s Streaming Multiprocessors (SMs) : en charge des calculs. Chaque SM possède ses propres : unités de contrôle registres pipelines d exécution caches B. DI PIERRO Architectures et Systèmes 05/02/2016 64 / 76

Accélérer les applications grâce au GPU B. DI PIERRO Architectures et Systèmes 05/02/2016 65 / 76

Balance Avantage Milliers/millions d unités de calcul Moindre coût Inconvenients Milliers/millions d unités de calcul Complexe à exploiter (gestion mémoire) Tranferts CPU/GPU coûteux B. DI PIERRO Architectures et Systèmes 05/02/2016 66 / 76

1 Historique 2 Architecture générale séquentielle 3 Architecures parallèles Introduction Multi-coeur GPU Many-coeur Mémoire distribuée 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 67 / 76

Many-coeur Apparition sur le marché de cartes Many Integrated Core : les Xeon Phi c Intel Xeon Phi 5110P: 72 coeurs à 1500 MHz, 16 Go de mémoire Spécificités Une architecture x86 native - en fait à la fois un complément idéal à Xeon et un concurrent crédible aux accélérateurs GPU. B. DI PIERRO Architectures et Systèmes 05/02/2016 68 / 76

Programmer sur le Phi La carte exécute son propre OS (adresse IP propre) communication : bus PCIe Connexion : ssh un serveur classique. Deux modes d exploitation : déporter les parties parallèles sur le Phi (openmp) : offload exécuter nativement tout le code sur le Phi 72 cœurs, 288 threads 32 Mb Cache L2 Pour exploiter efficacement un Phi Application massivement parallèle Boucles vectorisées (alignement des données) Localité des données optimisée B. DI PIERRO Architectures et Systèmes 05/02/2016 69 / 76

1 Historique 2 Architecture générale séquentielle 3 Architecures parallèles Introduction Multi-coeur GPU Many-coeur Mémoire distribuée 4 Conclusions B. DI PIERRO Architectures et Systèmes 05/02/2016 70 / 76

Historique Architecture ge ne rale se quentielle Architecures paralle les Conclusions Architecture a me moire distribue e : exemples B. DI PIERRO Architectures et Syste mes 05/02/2016 71 / 76

Architecture à mémoire distribuée Mémoire centrale Processeur Unité de calcul Périphériques On dispose de N ordinateurs... travaillant sur la même tâche B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Interconnection On dispose de N ordinateurs... reliés par un réseau! B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Données à échanger Communication : données à échanger B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Empaquetage Communication : données à échanger empaquetées (envoyeur) B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Transfert Empaquetage Communication : données à échanger transférées sur le réseau B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Transfert Déplacement Empaquetage Communication : données à échanger déplacées sur le réseau B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Transfert Déplacement Réception Empaquetage Communication : données à échanger réceptionnées B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Architecture à mémoire distribuée Transfert Déplacement Réception Empaquetage Dépaquetage Communication : données à échanger dépaquetées/stockées B. DI PIERRO Architectures et Systèmes 05/02/2016 72 / 76

Balance Avantages Puissance de calcul élevée Augmentation proportionnelle des CPU et de la mémoire Accès rapide à la mémoire locale Coût raisonnable Inconvénients Programmation complexe : gestion explicite mémoire, échange, synchronisation Temps d accès à la mémoire non-locale très lent B. DI PIERRO Architectures et Systèmes 05/02/2016 73 / 76

Architecture mémoire hybride La plupart des calculateurs actuels sont aujourd hui un mixte de mémoire partagée et mémoire distribuée. La brique de base (noeud) est un multiprocesseur à mémoire partagée. Ces briques sont interconnectées par un réseau (type ethernet, Infiniband,...). À noter qu on trouve aussi de l hybride entre CPU et cartes accélératrices. B. DI PIERRO Architectures et Systèmes 05/02/2016 74 / 76

Conclusions Fréquence d horloge, nombre de cœurs, nombre d unités fonctionnelles, fréquence et capacité mémoire, caches, stockage, interconnexions internes et réseaux... Tous les éléments ont leur importance ; l architecture doit être équilibrée pour que l ensemble soit performant Au niveau technologique Beaucoup de cœurs Des cœurs hybrides CPU / cartes accélératrices Une différence entre la vitesse de calcul et les transferts mémoire et I/O B. DI PIERRO Architectures et Systèmes 05/02/2016 75 / 76

Conclusions Au niveau applicatif Nécessité d une bonne connaissance des architectures, notamment au niveau de la mémoire. Plus de croissance des performances au niveau du cœur = parallélisation obligatoire pour un gain de performance. Nécessité d élaborer des algorithmes et des programmes capables d exploiter un grand nombre de processeurs. Nécessité d exploiter le parallélisme aux différents niveaux du hardware. Programmation sur des architectures hybrides avec différents types de processeurs. B. DI PIERRO Architectures et Systèmes 05/02/2016 76 / 76