La machine parallèle MPC1

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Le vaccin antigrippal disponible en France :
Distance inter-locuteur
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Classe : …………… Nom : …………………………………… Date : ………………..
Les numéros
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Sud Ouest Est Nord Individuel 36 joueurs
Les Prepositions.
Formation au portail SIMBAD
Architecture de réseaux
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Génération interactive dimages projectives : Application à la Radiothérapie Pierre BLUNIER Du 01/12/2002 au 28/03/2003 Centre Léon Bérard.
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES COHESION CULTURELLE ET EXPANSION DES IDEES SUR LE TERRITOIRE EUROPEEN.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Gestion des Périphériques
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
JST 2008 Michel Boisgontier CETMEF/DSANM/GRB Ministère de l'Écologie, de l'Énergie, du Développement durable et de l'Aménagement.
Synchronisation et communication entre processus
La machine parallèle MPC1 Hardware, protocoles et performances Université P. & M. Curie (PARIS) Laboratoire dInformatique de PARIS6 Olivier Glück.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Virtual Local Area Network
LES RESEAUX DE CAPTEURS SANS-FIL
Configuration de Windows Server 2008 Active Directory
LES NOMBRES PREMIERS ET COMPOSÉS
Optimisations de la bibliothèque de communication MPI pour machines parallèles de type « grappe de PCs » sur une primitive décriture distante Olivier Glück.
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Olivier GLUCK Jérôme JEANJEAN Responsable : Philippe LALEVEE, Département INF 05/02/1999.
La Saint-Valentin Par Matt Maxwell.
PLD GHome H4214 Piccolo Thomas Gu Lei Deville Romain Huang Yachen
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
C'est pour bientôt.....
Les Nombres 0 – 100 en français.
Veuillez trouver ci-joint
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
Adressage internet utilisé par le protocole IP (Internet Protocol)
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Un système de gestion de tâches pour la machine parallèle MPC
SI Informations routières- 1 CETE-SO Les réseaux de transmission : Utilisation du Wi-Fi ‏ La collecte de l’information Formation CERPET – juin 2008 Abdelmename.
CALENDRIER-PLAYBOY 2020.
1. Présentation générale du système
1 Nestlé – Optifibre Zones administrables via le back-office.
Les Chiffres Prêts?
Projet Implémentation du protocole MMT sous Linux
Les réseaux locaux virtuels : VLAN
Partie II: Temps et évolution Energie et mouvements des particules
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
1. Introduction Le traitement informatisé de données requiert un dialogue, une communication entre l’homme et la machine, et parfois, entre plusieurs.
Laboratoire Intégration des Architectures Numériques (IAN)
Interface de communication pour les réseaux InfiniBand
Architecture Client/Serveur
(R&D) Valpré, Septembre 2006David Etasse Comment optimiser l’usage d’un lien Ethernet Gigabit en acquisition de données ? « FASTER »
Olivier Glück UPMC/LIP6/ASIM
Transcription de la présentation:

La machine parallèle MPC1 Hardware, protocoles et performances University P. & M. Curie (PARIS) Laboratoire d’Informatique de PARIS6 Olivier Glück Let ’s begin ? Good morning fellow colleagues Don’t pay attention to my bad accent please because I come from France I’ve been working on the MPC project now for 2 years The project of my presentation is The MPC Parallel … What is the MPC project ? That’s what we are going to see.

Plan Introduction Architecture matérielle La couche de communication bas-niveau (PUT) MPI sur la machine MPC1 Problématique Les messages internes à MPI Les primitives MPI Premières performances PUT en mode utilisateur Redistribution de la mémoire Conclusion In the first part, In the next section, In the last place, I’ve had much experience in the field of software part and in particular in the MPI port on the MPC machine but it doesn’t matter

Introduction Une carte réseau PCI (FastHSL) développée au LIP6 : Liens série, point à point (HSL,1 Gbit/s) RCUBE : routeur (8x8 crossbar, 8 HSL ports) PCIDDC : contrôleur réseau PCI (protocole de communication de type « Remote DMA ») But : fournir des couches logicielles les plus performantes au niveau applicatif (MPI) What I would like to do today is to give you a general overview of … I have broken my speech into 2 main parts … The goal is to build a … Now let’s turn to the point one

Architecture matérielle PCI DDC Standard PC running LINUX or FreeBSD FastHSL boards There is no centralized router like in Myrinet clusters To illustrate this architecture, let’s have a look to a photo of a MPC machine and the FastHSL board Standard PC running LINUX or FreeBSD

La carte FastHSL Now that we have seen the hardware architecture, let us turn to hardware layers

MPC avant On this photo, you can see a MPC clusters constituted of 4 nodes that is to say 8 processors See also HSL links

8 nœuds bi-pro 1GHz, 8 Go de RAM, 160 Go de disk MPC maintenant On this photo, you can see a MPC clusters constituted of 4 nodes that is to say 8 processors See also HSL links 8 nœuds bi-pro 1GHz, 8 Go de RAM, 160 Go de disk

Le matériel Le lien HSL (1 Gbit/s) Câble coaxial, lien série, point à point, full-duplex Les données sont encodées sur 12 bits Contrôle de flux matériel RCUBE Routeur rapide, reconfigurable et à grande extensibilité Latence : 150 ns Routage wormhole PCIDDC Le contrôleur réseau, interface avec le bus PCI Réalise le protocole de communication : Remote DMA Stratégie zéro-copie Now let us turn to the second part of my speech

Le protocole de communication bas-niveau Process Memory Kernel I/O Process Memory Sender Receiver Protocole zéro-copie (dépôt direct dans la mémoire du destinataire) Accès direct à la mémoire du nœud hôte In classical network like Ethernet, ...

L'écriture distante

Plan Introduction Architecture matérielle La couche de communication bas-niveau (PUT) MPI sur la machine MPC1 Problématique Les messages internes à MPI Les primitives MPI Premières performances PUT en mode utilisateur Redistribution de la mémoire Conclusion In the first part, In the next section, In the last place, I’ve had much experience in the field of software part and in particular in the MPI port on the MPC machine but it doesn’t matter

PUT : la couche de communication bas-niveau Supportée par les Unix standards : FreeBSD / Linux Stratégie zéro-copie Fournit une API noyau simple utilisant l’écriture distante de PCIDDC Paramètres d’un appel à PUT() : numéro de nœud distant adresse physique locale adresse physique distante taille des données à émettre un identifiant de message fonctions de callback pour la signalisation

Performances de PUT PC Pentium II 350MHz Débit : 494 Mbit/s Demi-débit : 66 octets Latence : 4 µs (sans appel système, sans interruption)

Plan Introduction Architecture matérielle La couche de communication bas-niveau (PUT) MPI sur la machine MPC1 Problématique Les messages internes à MPI Les primitives MPI Premières performances PUT en mode utilisateur Redistribution de la mémoire Conclusion In the first part, In the next section, In the last place, I’ve had much experience in the field of software part and in particular in the MPI port on the MPC machine but it doesn’t matter

Une implémentation de MPICH sur l’API PUT MPI sur MPC (1) MPI Une implémentation de MPICH sur l’API PUT PUT Driver FreeBSD ou LINUX Réseau HSL

MPI sur MPC (2)

Problématique (1) 2 principaux problèmes : Où écrire les données dans la mémoire physique du nœud récepteur ? On ne peut transmettre que des données contigües en mémoire physique

Ici, 3 buffers physiques sont nécessaires. Problématique (2) Ici, 3 buffers physiques sont nécessaires.

Les messages de l’API GM_P6 Les messages de contrôle SHORT : émission des données utilisateur avec copie intermédiaire dans des tampons alloués par MPI. REQ : envoi d’une requête pour un protocole de rendez-vous. RSP : réponse à une requête (contient la description du tampon de réception). CRDT : contrôle de flux au niveau MPI (algorithme à crédit). Les messages data Envoi des données utilisateur en mode zéro-copie après un protocole de rendez-vous

Format des messages de contrôle crdt type src tag len user data SHORT : 20 octets + données user sid canal recv_map REQ : 24 octets RSP : 20 octets + recv_map CRDT : 20 octets

Les messages de contrôle Transfert d’une information de contrôle (REQ, RSP, CRDT) ou de données utilisateur (SHORT) Utilisation de tampons contigus en mémoire physique pré-alloués par MPI au démarrage de l’application (boîtes aux lettres) Une copie en émission et en réception (pas grave pour des petits messages)

Les messages de données Transfert des données utilisateur par un protocole de rendez-vous Mode zéro-copie La description en mémoire physique du tampon de réception est transmise à l'émetteur dans un message RSP

Les primitives MPI (1) 2 copies, 1 message 0 copie, 3 messages

Les primitives MPI (2) MPI_Ssend et MPI_ISsend On se place dans le mode DATA : quelle que soit la taille du message, on a besoin du protocole de rendez-vous pour faire la synchronisation MPI_Bsend et MPI_IBsend Idem que MPI_Send et MPI_ISend MPI_Rsend et MPI_IRsend Idem que MPI_Send et MPI_ISend mais on n’a plus besoin de REQ (on gagne un message de contrôle dans le cadre du protocole de rendez-vous)

Les différentes API dans MPI API MPI MPI_SEND(VAD, len, tid_dst, TAG) MPI_RECV(VAD, len, tid_src, TAG) MPICH API GM_P6 GMPI_SEND_DATA(VAD, len, tid_dst, TAG, recv_map, canal) GMPI_SEND_SHORT(VAD, len, tid_dst, TAG) GMPI_SEND_REQ(tid_dst, TAG) GMPI_SEND_RSP(tid_dst, TAG, recv_map, canal) GMPI_SEND_CREDIT(tid_dst) MPI-MPC API RDMA RDMA_SEND(Nsrc, Ndst, PRSA, PLSA, len, canal, NS, NR) RDMA_SENT_NOTIFY(Ndst, canal) RDMA_RECV_NOTIFY(Nsrc, canal) RDMA_LOOKUP() RDMA API PUT PUT_ADD_ENTRY(Ndst, PRSA, PLSA, len, mi, flags) PUT_SENT_NOTIFY(Ndst, PRSA, PLSA, len, mi, flags) PUT_RECV_NOTIFY(mi, data1, data2) PUT_FLUSH_LPE() PUT_FLUSH_LMI() PUT ou BIP

Latency : 26 µs Throughput : 490 Mbit/s Performances MPI (1) Latency : 26 µs Throughput : 490 Mbit/s

Performances MPI (2) Cray Latency : 57 µs Throughput : 1200 Mbit/s MPC Latency : 26 µs Throughput : 490 Mbit/s

Performances MPI (3)

Comment améliorer les performances ? On se place dans le cas d’une seule application MPI à la fois (mode batch) On cherche à éliminer les appels système  PUT en mode utilisateur Il faut simplifier les opérations de verrouillage et de traduction d’adresses  Redistribution de la mémoire On veut rester dans le standard MPI

Les appels système La couche de bas-niveau PUT se trouve dans le noyau. Appels système les plus fréquents : émission : appel de put_add_entry() signalisation : soit par interruption soit par polling appel de put_flush_lpe (signalisation en émission) appel de put_flush_lmi (signalisation en réception) Appels système dus à la traduction d’adresse : verrouillage des données en mémoire (mlock) traduction adresse virtuelle en adresse physique

Plan Introduction Architecture matérielle La couche de communication bas-niveau (PUT) MPI sur la machine MPC1 Problématique Les messages internes à MPI Les primitives MPI Premières performances PUT en mode utilisateur Redistribution de la mémoire Conclusion In the first part, In the next section, In the last place, I’ve had much experience in the field of software part and in particular in the MPI port on the MPC machine but it doesn’t matter

PUT en mode utilisateur (1) Un PUT simplifié pour MPI et en mode utilisateur : une seule application utilisatrice de PUT (MPI) plus d’appels système pour faire les émissions et la signalisation Les problèmes qui se posent : accès en configuration à la carte FastHSL en mode utilisateur partage des ressources globales (en particulier de la carte réseau) entre les différentes tâches MPI Elimination des interruptions trop coûteuses

PUT en mode utilisateur (2)

PUT en mode utilisateur (3) Sur un PII-350MHz, 128 Mo de RAM : MPI sur PUT noyau MPI sur PUT utilisateur Latence 29 µs 21 µs

Redistribution de la mémoire (1) On souhaite éviter les coûts de verrouillage et de traductions d’adresse. Idée : la mémoire virtuelle de chacune des tâches MPI correspond à une zone contigüe en mémoire physique. Lors de l’initialisation, on attribue statiquement la mémoire physique de la machine de façon contigüe à chacune des tâches. But : adresse virtuelle = adresse physique + offset

Redistribution de la mémoire (2) Coûteux lors de l’initialisation Pas de modification de l’OS Pas de modification de la libc

Etat d’avancement Une première implémentation de MPI sur MPC résultats encourageants fonctionne avec PUT noyau ou PUT utilisateur PUT utilisateur mesures à affiner amélioration de la signalisation on a gagné en portabilité Redistribution de la mémoire pas implémenté et pas testé sur MPI aucune mesure We have seen together a general overview of the MPC parallel computer Thanks for your attention I didn’t go into details but if you have any questions, I would be happy to answer them.

Perspectives Amélioration de PUT utilisateur on espère passer en dessous des 20 µs de latence Redistribution de la mémoire n’améliorera pas la latence amélioration du débit pour les moyens messages We have seen together a general overview of the MPC parallel computer Thanks for your attention I didn’t go into details but if you have any questions, I would be happy to answer them.