ASR5 Système pour architectures multicœurs CSC5001 : Systèmes Hautes Performances Architecte de Services informatiques Répartis Gaël Thomas

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

The name of ALLAH C'est quoi un Chipset ?.
Commutation Ethernet.
Simple OS La Pagination
PLAN du COURS Introduction Structure des Systèmes Informatiques
Plan Présentation de la Solution. Le Protocole MESI
Système d’exploitation : Assembleur
Les systèmes à microprocesseur
Gestion de la Mémoire Bases Swapping Allocation Contigue Pagination
Informatique temps réel et réseaux de terrain – ELEC365
Les systèmes multiprocesseurs Ph. Sèvre le 19/12/08.
Module 3 : Analyse des performances du serveur
Rappels sur les systèmes d’exploitation
Architectures parallèles
Réseau informatique Ismail rida et otman khalil
D. E ZEGOUR Institut National d ’Informatique
02/10/2013JC LP MD1 COURS_3. 02/10/2013JC LP MD2 Direct Memory Access DMA.
MJ / EME 2006Architecture matérielle des systèmes microprogrammés Exemple de système microprogrammé Exemple de système microprogrammé Bus Bus de données.
Architecture et technologie des ordinateurs II
Réseaux locaux Rappels sur Ethernet et Token Ring Spanning Tree VLANs.
Interface de communication pour les réseaux InfiniBand
Architecture et technologie des ordinateurs II
ALLOCATION DU CPU et GESTION DES TRAVAUX.
Les nouveaux bus de données H. Le Provost (SEDI) Journée Electronique du DAPNIA, 10 Novembre 2006.
Le schéma fonctionnel d’un ordinateur
FACTORY systemes Module 1 Section 2 Page 1-7 Introduction InSQL FORMATION InSQL 7.1.
Question de gestion 13 : Le document peut-il être vecteur de coopération ? Le document : - Dématérialisation des documents - Partage, mutualisation, sécurisation.
Architecture matérielle et logicielle. Sommaire Un peu d’histoire : Naissance de l’informatique Organisation matérielle des ordinateurs Processeur, Mémoire,
Équipements d'interconnexion téléinformatique l Répéteurs, amplificateur, interface, commutateur? l Pont (bridge) l Aiguilleur (Routeur) l Passerelle (Gateway)
Chapitre10 Prise en charge des utilisateurs distants Module S41.
Design Patterns.  SIDAOUI Abdelfahem  
V- Identification des ordinateurs sur le réseau??? ? ? ? ?
Étapes pour la Programmation du 68HC11 I. Écriture du programme dans un fichier *.a11 II. Le programme est compilé (traduit en langage machine) III. Le.
UNIX AVANCE Yves PAGNOTTE – Janvier – QUELQUES RAPPELS SUR LES SYSTEMES D’EXPLOITATION 1.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
1 Caractériser les dispositifs permettant l’interconnexion des réseaux.
Sommaire LA MEMOIRE VIVE ou RAM (Random Access Memory)
Comment écrire un article scientifique Olivier MIMOZ DAR.
Chapitre 4 Gestion des disques Module S41. Plan du cours 1. Utilisation de l'outil Gestion des disques 2. Utilisation des disques de base 3. Utilisation.
G. Botti Service de l ’Information Médicale Pr M. Fieschi Hôpital Timone-adultesMarseille le 13 novembre 2000 Problématique du codage Langage, communication,
Professeur: Halima HOUSNY Chapitre1 Installation de Microsoft Windows XP Professionnel Module S41.
1 Les logiciels en général sont classés en deux familles:  Logiciels de base  Logiciels d’applications (applications) 2.
Projet Personnel (Epreuve 6) Projet réalisé dans le cadre de mon épreuve E6 au sein de mon alternance au conseil départemental du val de marne Arnaud PICANO.
Migration Plan adressage EPLE Migration Plan d'adressage EPLE.
Chapitre 7 Résolution de noms NetBIOS à l'aide du service WINS Module S43 1.
Les méthodes de tests Les grands principes pour réaliser des tests efficaces.
Migration du système de sauvegarde d’une infrastructure locale à un système centralisé IN2P3 101/06/2016 HEPIX Spring 2013 Muriel Gougerot (LAPP) and Remi.
Introduction à la Programmation Orientée Objet H.GATI.
P ROJET C ONNEC S ENS CPER 2016 D ÉFIS A UDACE ET S YMBIOSE JP C HANET, M M ISSON, L R OYER onnec enS.
Page 1 Contact :Mr ELLOUZE Khaled GSM Nos Clients.
Jobs multicore dans WLCG Présentation en partie basée sur des présentations faites dans le cadre du groupe de travail multicore.
©Armelle Thomas - mars Diigo, le gestionnaire de bookmarks en ligne de nouvelle génération ADBS RA Grenoble Les jeudi de l’Internet pratique - Mars.
Eric Fede - 1 GESTION DES PRIORITES SUR LA GRILLE.
Mercredi 7 novembre 2007 Dominique Boutigny Activités et Évolution du CC-IN2P3 Réunion des Expériences 2007.
1 Projet d'établissement Action 10.2 Créer un portail intranet dédié aux agents de l’Inrap Présentation des choix technologiques de l’Inrap.
Chapitre IV Architecture de VonNeumann. I/ Introduction John VonNeumann est un mathématicien d’origine Hongroise qui a participé au projet Manhattan.
Objectif ? Comprendre, connaître, restituer Etre capable de REPRODUIRE des schémas, décrire des concepts, expliquer, définir… Mais aussi et le plus souvent.
CSI 3531 Systèmes d’exploitation Nathalie Japkowicz 1.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 3 ème séance.
Méso-Grille Marseille :Simulation Intensive pour les Sciences de l’Ingénieur  Issue de plusieurs Programmes Pluri- Formations dans le domaine du calcul.
Structure Machine Haouam M. Yassine
Ecole Informatique 2010 La Programmation des Architectures Multi-cœurs Cécile Barbier Fatih Bellachia Alain Masserot.
Les Systèmes de Paiements Électroniques. Les Systèmes de paiements Électroniques Moyens de paiements « traditionnels » Nécessite double coïncidence des.
Colloque LCG France14-15 mars SURVEILLANCE ET GESTION D’INCIDENTS Cécile Barbier (LAPP)
Jean-Philippe PICARAT - Pôle TICE - Cnam Pays de la Loire Le numérique, un langage en soi.
Eric Fede : Obernai Intégration des services grille dans l'exploitation des systèmes informatiques du laboratoire.
*Lycée qualifiant Salaheddine al ayoubi-Taourirt 1 L.Q. SalaheddineElAyoubi- Taourirt
Architecture matérielle des ordinateurs
Transcription de la présentation:

ASR5 Système pour architectures multicœurs CSC5001 : Systèmes Hautes Performances Architecte de Services informatiques Répartis Gaël Thomas

ASR5 Évolution de la puissance des machines 2Système pour architectures multicœurs Évolution Traditionnelle des mono-processeurs Accélération 1.8x 7x 3.6x Time: Moore’s law

ASR5 Évolution de la puissance des machines 3Système pour architectures multicœurs 3 Évolution Traditionnelle des mono-processeurs Accélération 1.8x 7x 3.6x Time: Moore’s law Consommation énergétique 1x 49x 7x

ASR5 Évolution de la puissance des machines 4Système pour architectures multicœurs 4 Évolution Actuelle des mono-processeurs Accélération Par processeur 1.8x Consommation énergétique 1x 12x 5x 1.8x1.8x

ASR5 Architecture d’un multicœurs Système pour architectures multicœurs5 5 Impossible d’utiliser une topologie classique à base de BUS! Pas assez de bande passante/trop de collisions RAM Ethernet Video

ASR5 Architecture d’un multicœurs 6Système pour architectures multicœurs 6 Pour passer à l’échelle, il faut changer la topologie RAM Ethernet Pont Sud

ASR5 Architecture d’un multicœurs 7Système pour architectures multicœurs 7 Un peu de terminologie Processing Unit (PU) Memory Management Unit (MMU) Cache Data Cache Code TLB Interrupt Controler (IC) Cœur Tuile ou Cluster Timer

ASR5 Architecture d’un multicœurs 8Système pour architectures multicœurs 8 Un peu de terminologie : die = ensemble de clusters correspondant à un circuit intégré unique (souvent die = cluster) Die

ASR5 Architecture d’un multicœurs Système pour architectures multicœurs9 9 Un peu de terminologie : package/socket = ensemble de dies identiques intégrés sur un même support (celui qu’on achète) Socket

ASR5 Architecture d’un multicœurs Système pour architectures multicœurs10 Un peu de terminologie Network On Chip (NOC) si sur un seul die Inter-connect si entre die Peut mixer les deux Network On Chip Inter-Connect

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs11 Problème : comment invalider une ligne de cache Protocole MOESI : état par ligne de cache Principe de transition : implémentation d’un verrou lecteur/écrivain États M ou E : verrou en écriture États O ou S : verrou en lecture État I : pas de verrou Duplication des états verrou en écriture ou lecture pour indiquer si la ligne est sale ModifiedOwnedExclusiveSharedInvalid Mémoire centraleIncohérente Cohérente RépliquéesNonOuiNonOuiIndéfini

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs12 Problème : comment invalider une ligne de cache Classiquement avec un bus unique : changement d’état via méthode de snooping (espionnage des demandes de lecture/écriture) Cache En lecture En lecture Demande d’acquisition En écriture Invalidation Par snooping

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs13 Problème : comment invalider une ligne de cache Snooping ne passe pas à l’échelle car demande un broadcast RAM Ethernet Pont Sud

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs14 Problème : comment invalider une ligne de cache Solution : une table associant adresse physique avec cœurs qui cachent la ligne invalidations adressées explicitement aux cœurs qui cachent la ligne Problème : où placer cette table!

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs15 Solution : partitionnement de l’espace d’adressage physique  notion de nœud = ensemble de clusters gérant une partition mémoire (en général : un nœud = un die ou un nœud = un cluster) 0 à 1 Go1 à 2 Go2 à 3 Go 3 à 4 Go4 à 5 Go5 à 6 Go Noeud

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs16 Table d’association ligne de cache/cœur partitionnée sur les nœuds Une écriture vers la mémoire est effectuée via ce nœud (assure la cohérence) 0 à 1 Go1 à 2 Go2 à 3 Go 3 à 4 Go4 à 5 Go5 à 6 Go Noeud

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs17 Exemple : lecture (nœud 3) à partir du cœur 5/4 Nœud 0Nœud 1Nœud 2 Nœud 3Nœud 4Nœud

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs18 Nœud 0Nœud 1Nœud 2 Nœud 3Nœud 4Nœud Demande d’acquisition En lecture Exemple : lecture (nœud 3) à partir du cœur 5/4

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs19 Exemple : lecture (nœud 3) à partir du cœur 5/4 Nœud 0Nœud 1Nœud 2 Nœud 3Nœud 4Nœud Demande d’acquisition En

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs20 Nœud 0Nœud 1Nœud 2 Nœud 3Nœud 4Nœud Ligne Passe en lecture Exemple : lecture (nœud 3) à partir du cœur 5/4

ASR5 Exemples de multicœurs Système pour architectures multicœurs21 64 cœurs de Tilera (unique die) 12 core Opteron 6174 (6 cœurs * 2 dies * 4 sockets = 48)

ASR5 Multicœurs et gestion mémoire Système pour architectures multicœurs22 Conséquences pour le programmeur du multicœurs Accès à la mémoire physique non uniforme : plus un nœud est proche du contrôleur RAM, plus il a un accès rapide Partitionnement de la mémoire sur les nœuds change les latences Deux types d’accès : accès local et accès distant

ASR5 Gestion mémoire sous Linux Système pour architectures multicœurs23 Augmenter la localité d’accès (i.e. accès plutôt à la mémoire locale au nœud) Trois principes : Eviter de migrer un processus d’un nœud sur un autre Essayer de maintenir les threads d’un processus sur le même noeud First-touch : lors du premier accès à une page non projetée en mémoire, la page physique est alouée sur le nœud local Table des pages d’un processus Nœud 1Nœud 2Nœud 3 Mémoire Physique de la machine Accès mémoire Threads du processus = page non projetée

ASR5 Gestion mémoire sous Linux Système pour architectures multicœurs24 Augmenter la localité d’accès (i.e. accès plutôt à la mémoire locale au nœud) Trois principes : Eviter de migrer un processus d’un nœud sur un autre Essayer de maintenir les threads d’un processus sur le même noeud First-touch : lors du premier accès à une page non mappée en mémoire, la page physique est alouée sur le nœud local Table des pages d’un processus Nœud 1Nœud 2Nœud 3 Mémoire Physique de la machine Threads du processus Allocation à partir du nœud 2 car thread s’exécute sur nœud 2

ASR5 Gestion mémoire sous Linux Système pour architectures multicœurs25 Quelques fonctions utiles Placement des processus et des threads setaffinity(ensemble E de cœurs) : oblige le scheduler à placer les threads du processus sur un des cœurs de E pthread_setaffinity(ensemble E de cœurs) : idem pour un thread Placement de pages : mbind(plage d’adresses virtuelle, ensemble de nœud) : demande à n’allouer la mémoire physique des pages qu’à partir de l’ensemble de nœuds madvise(plage d’adresses virtuelle, flag) : demande à libérer les pages physique de la plage d’adresse (permet de migrer) Allocation mémoire : numa_alloc_onnode(taille, nœud N) : malloc sur le nœud N

ASR5 Quelques OS Multicœurs Système pour architectures multicœurs26 Linux (et autres OS à mémoire partagée) : Tous les cœurs partagent leur mémoire Communication par mémoire partagée/lock + Interruption entre les cœurs Nombreuses optimisations (compteurs répliqués par cœur, RCU etc…) Performances bonnes jusqu’à 48 cœurs! [Boyd-Wickizer, OSDI 2010] Multikernel (Barelfish [Baumann, SOSP 2009], Helios [Nightingale, SOSP 2009]) : Pas de mémoire physique partagée entre les cœurs dans l’OS Communication par envoi de message (évite la contention sur lignes de cache) OS Clustering [Song, Eurosys 2011] : Chaque nœud exécute un Linux dans une machine virtuelle Les machines virtuelles utilisent des pages physiques différentes Communication entre les cœurs d’un nœud via mémoire partagée/lock Communication entre les nœuds via envois de message