DSM-PM2 : une plate-forme portable pour l implémentation de protocoles de cohérence MVP multithread. Gabriel Antoniu LIP, ENS-Lyon



Documents pareils
CORBA haute performance

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Introduction aux Machines Virtuelles avec VMKit

Prise en compte des ressources dans les composants logiciels parallèles

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Projet gestion d'objets dupliqués

<Insert Picture Here> Solaris pour la base de donnés Oracle

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

Vulgarisation Java EE Java EE, c est quoi?

Introduction à la Programmation Parallèle: MPI

Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair

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

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

Initiation à JAVA et à la programmation objet.

Le Network File System de Sun (NFS)

Modélisation des interfaces matériel/logiciel

Java et les bases de données

Systèmes distribués et virtualisation de ressources

Annexe : La Programmation Informatique

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Optimisations des SGBDR. Étude de cas : MySQL

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Performances de la programmation multi-thread

MEAD : temps réel et tolérance aux pannes pour CORBA

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"

Mobile OGSI.NET: Grid Computing on Mobile Devices

Software Engineering and Middleware A Roadmap

Rapport d activité. Mathieu Souchaud Juin 2007

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

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Description de SQL SERVER. historique

Groupe Eyrolles, 2004 ISBN :

Gestion de la cohérence des données dans les systèmes distribués

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Instrumentation de code Java

WEA Un Gérant d'objets Persistants pour des environnements distribués

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Java - la plateforme

DG-ADAJ: Une plateforme Desktop Grid

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Cahier des charges (CDC)

Exchange 2007 : Améliorations et nouvelles fonctionnalités Atelier 136. Société GRICS

Le passage à l échelle de serveur J2EE : le cas des EJB

Plan du cours. Historique du langage Nouveautés de Java 7

La carte à puce. Jean-Philippe Babau

Une bibliothèque de templates pour CUDA

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Communications performantes par passage de message entre machines virtuelles co-hébergées

Architecture distribuée

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Quantification d incertitude et Tendances en HPC

Initiation au HPC - Généralités

Machine virtuelle Java pour Palm TX

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

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

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Optimisation de logiciels de modélisation sur centre de calcul

Présentation Alfresco

Windows serveur 2008 installer hyperv

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

Vérifier la qualité de vos applications logicielle de manière continue

Messagerie asynchrone et Services Web

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

SYSTÈME DE GESTION DE FICHIERS

La technologie Java Card TM

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

Lotus Notes et Domino 8.5 Administration de serveurs Domino

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Programmation Web Avancée Introduction aux services Web

Implémentation des SGBD

INITIATION AU LANGAGE JAVA

Gestion répartie de données - 1

Solutions de gestion de la sécurité Livre blanc

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Administration de Citrix NetScaler 10.5 CNS-205-1I

LOG4430 : Architecture et conception avancée

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Conception des systèmes répartis

«Clustering» et «Load balancing» avec Zope et ZEO

Communiqué de lancement Paie 100 pour SQL Server

TP Bases de données réparties

Un nouveau modèle d'identité NFC compatible avec l'écosystème mobile, et cas d'usage

Multiprogrammation parallèle générique des méthodes de décomposition de domaine

Windows Server Chapitre 1: Découvrir Windows Server 2008

Encadré par : Michel SIMATIC

JOnAS Day 5.1. Clustering

Architecture des calculateurs

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Systèmes et algorithmes répartis

Projet IGGI. Infrastructure pour Grappe, Grille et Intranet. Fabrice Dupros. CASCIMODOT - Novembre Systèmes et Technologies de l Information

Mise en œuvre des serveurs d application

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Détection d'intrusions en environnement haute performance

Approche Contract First

Transcription:

DSM-PM2 : une plate-forme portable pour l implémentation de protocoles de cohérence MVP multithread Gabriel Antoniu LIP, ENS-Lyon

Contexte : PM2 Environnement de programmation multithread distribué Développé au LIP Modèle de programmation : RPC Portabilité assurée par deux bibliothèques Marcel Madeleine threads (en espace utilisateur) communications Supporte la migration préemptive de threads

Architecture de PM2 API : MICRO PM2 + PM2 Intrinsics PM2 API : migration, allocation iso-adresse PM2 Intrinsics Migration Isomalloc API : RPC ( packs Madeleine), thread create, API Marcel MARCEL MICRO-PM2 MADELEINE

Architecture de PM2 API: MICRO PM2 + PM2 Intrinsics PM2 API: migration, allocation iso-adresse, MVP Migration DSM-PM2 Isomalloc PM2 Intrinsics API: RPC, thread create, Marcel API MARCEL MICRO-PM2 MADELEINE

DSM-PM2 : point de départ Quelques questions : Modèle de cohérence? Multithreading? Efficacité et portabilité? Migration des threads? Utilisation?

Quel modèle de cohérence? Le modèle de cohérence dépend de l application cohérence séquentielle cohérence relâchée cohérence Java Besoin d une MVP multi-modèle!

Intégration MVP - threads? Threads entités centrales! Environnement multithread Accès concurrents à des données globales Concurrence prise en compte dans les protocoles de cohérence Implémentation multithread Gestion multithread de la MVP Threads mobiles Utilisation de la migration dans les protocoles

Quelle utilisation pour DSM-PM2? Objectifs Plate-forme ouverte d expérimentation Cible de compilateurs (Java, OpenMP, ) Besoins Flexibilité, configurabilité Extensibilité Efficacité et portabilité Outils de traçage et profiling

MVP multi-protocoles : conception Éléments génériques Communications élémentaires (transfert de pages, invalidations, etc.) Détection d accès par défauts de pages Table des pages partagées Synchronisation et cohérence Threads! Éléments spécifiques aux protocoles Actions pour maintenir la cohérence

Protocole de cohérence Protocole = ensemble d actions Read fault handler Write fault handler Read page server Write page server Invalidate server Receive page server Lock acquire Lock release Un protocole implémente un modèle de cohérence

DSM-PM2: Architecture DSM comm: send page request send page send invalidate request DSM page manager: set/get page owner set/get page access add/remove to/from copyset...

Comment ça marche? status=shared read page fault! page info table DSM page table DSM protocol table read fault handler protocol id

Bibliothèque de protocoles Cohérence séquentielle li_hudak migrate_thread Cohérence relâchée erc_sw : eager release consistency, single writer hbrc_mw : home-based release consistency, multiple writers Cohérence Java java_pf : Java consistency, page faults Java_ic : Java consistency, in-line checks

Cohérence séquentielle basée sur la migration de threads Principe: migrer le thread lors d un défaut de page Possible grâce à l approche iso-adresse

Utilisation : choix du protocole Sélection d un protocole dans la bibliothèque pm2_set_default_protocol (li_hudak); Définition d un nouveau protocole int new_prot; new prot = dsm_create_protocol ( read_fault_handler, write_fault _handler, read_server, write_server, invalidate_server, receive_page_server, acquire_handler, release_handler); pm2_set_default_protocol (new_prot);

Déclaration des données partagées Statique BEGIN_DSM_DATA int shared_var = 0; END_DSM_DATA Allocation dynamique isoaddr_attr_t attr; int *shared_var_ptr; isoaddr_set_status(&attr, ISO_SHARED); isoaddr_set_protocol(&attr, li_hudak); shared_var_ptr = (int *)pm2_malloc(sizeof(int), &attr);

Microbenchmarks (migration des pages) Opération/protocol SISCI/SCI BIP/Myrinet TCP/Myrinet Défaut de page 11 11 11 Transmission 38 23 220 requête Transfert de page 119 138 343 (4kB) Surcoût protocole 26 26 26 Coût total accès 194 ms 198 ms 600 ms

Microbenchmarks (migration des threads) Opération/protocol SISCI/SCI BIP/Myrinet TCP/Myrinet Défaut de page 11 11 11 Migration thread 62 75 280 Surcoût protocole 1 1 1 Coût total accès 74 ms 87 ms 292 ms

Comparaison des protocoles : SISCI/SCI Temps d'exécution (s) 2 1,8 1,6 1,4 1,2 1 0,8 0,6 0,4 0,2 FFT (4 nœuds, 1 thread/nœud) 0 1000 10000 100000 1000000 Taille du problème (octets) li_hudak erc_sw hbrc_mw

Influence du multithreading FFT sur TCP/Ethernet (s) Threads/nœud : li_hudak 1 74,8 2 54,8 4 54,4 8 57,5 erc_sw 27,2 21,0 19,6 24,1 hbrc_mw 21,4 20,9 20,9 21,1 FFT sur SISCI/SCI (s) Threads/nœud : li_hudak 1 79 2 57 4 44 8 36 erc_sw 1,3 1,3 1,4 1,4 hbrc_mw 1,2 1,2 1,2 1,2

DSM-PM2 : cible d un compilateur Java pour grappes Hyperion (Hatcher, UNH, Durham) prog.java javac prog.class java2c prog.[ch] gcc -06 (bytecode) Sun's Java compiler Instruction-wise translation libs prog Exécution parallèle par distribution des threads Java sur les noeuds d une grappe

Cohérence Java Variante de la cohérence relâchée Les threads peuvent garder des copies des données dans leurs caches Règles de cohérence Invalider le cache d un thread lors de l entrée en section critique Envoi des modifications locales vers la mémoire principale à la sortie d une section critique

Cohérence Java dans DSM-PM2 Deux protocoles Propriétés communes Home-based MRMW Enregistement des modifications aux objets du cache Envoi des diffs au home-node Propriétés spécifiques Access detection: inline-checks vs. page faults

Java/DSM-PM2 : performances ASP : java_ic vs. java_pf Temps d'exécution (s) 3000 2500 2000 1500 1000 500 java_ic (200 MHz, Myrinet) java_pf (200 MHz, Myrinet) java_ic (450 MHz, SCI) java_pf (450 MHz, SCI) 0 0 2 4 6 8 10 12 Nombre de noeuds

Autres travaux DSM-Threads (Mueller, Berlin) Millipede (Schuster, Technion) Munin (Carter, Rice) TreadMarks (Keleher, Rice) CVM (Keleher, Maryland) Brazos (Bennet, Rice)

Conclusion DSM-PM2 - plate-forme d expérimentation de protocoles MVP multithread Portable Configurable Co-design application + protocoles Cible de systèmes de compilation pour des architectures distribuées Java

Perspectives Évaluation plus fine des protocoles (benchmarks SPLASH-2) OpenMP sur DSM-PM2 Protocoles adaptatifs migration des pages vs. migration des threads Spécification et de validation formelle de protocoles Exploitation de Marcel SMP Prise en compte des modèles de mémoire hiérarchiques (grappes de grappes)