Programmation parallèle et distribuée



Documents pareils
Introduction à la Programmation Parallèle: MPI

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

Algorithmique répartie

Parallélisme et Répartition

Manuel de System Monitor

Alcatel OmniPCX Enterprise

Le modèle client-serveur

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

Rapport d activité. Mathieu Souchaud Juin 2007

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Conception des systèmes répartis

Limitations of the Playstation 3 for High Performance Cluster Computing

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

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

NOTIONS DE RESEAUX INFORMATIQUES

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Systèmes et algorithmes répartis

Réseau Global MIDI Note applicative

Differential Synchronization

Le serveur modulaire d alerte, de recherche de personnes et de communication

Simplifier l intégration des systèmes RH et garantir une version unique des données de l employé. D

Algorithmique des Systèmes Répartis Protocoles de Communications

Administration des ressources informatiques

Concours interne d ingénieur des systèmes d information et de communication. «Session 2010» Meilleure copie "étude de cas architecture et systèmes"

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

Asynchronisme : Cadres continu et discret

ParallelKnoppix. Majid Hameed. Copyright 2005 Majid Hameed. Copyright 2005 Gauthier Savart. Copyright 2005 Joëlle Cornavin

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

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

Windows Internet Name Service (WINS)

CORBA haute performance

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

L3 informatique Réseaux : Configuration d une interface réseau

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

Réseaux grande distance

Université de La Rochelle. Réseaux TD n 6

Gestion des licences électroniques avec Adobe License Manager

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Fax sur IP. Panorama

Pourquoi toutes les entreprises peuvent se priver de centrale téléphonique?

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Traduction des Langages : Le Compilateur Micro Java

CRM PERFORMANCE CONTACT

Les cinq raisons majeures pour déployer SDN (Software-Defined Networks) et NFV (Network Functions Virtualization)

Fiche Technique. Cisco Security Agent

VOS FAX PAR ENVOYEZ ET RECEVEZ. FaxBox Corporate:Go IP!

FAMILLE EMC RECOVERPOINT

Couche application. La couche application est la plus élevée du modèle de référence.

Introduction aux applications réparties

Introduction aux algorithmes répartis

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Fonctions de la couche physique

Date: 22/10/12 Version: 3.2

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Logiciel HP StorageWorks Enterprise Virtual Array (EVA) Fiche technique

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Evolution de l infrastructure transport

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

Etude d Algorithmes Parallèles de Data Mining

OUTILS DE GESTION ET D EVALUATION AU POSTE : Collecte/réparation/vente d électroménager. Assistant(e) secrétaire commercial(e)

Standard téléphonique PABX

VMWare Infrastructure 3

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

VIII- Circuits séquentiels. Mémoires

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

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

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Projet Robot Centaure

QU EST-CE QUE LA VOIX SUR IP?

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Évaluation et implémentation des langages

DUT Informatique Module Système S4 C Département Informatique 2009 / Travaux Pratiques n o 5 : Sockets Stream

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Partie 7 : Gestion de la mémoire

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

Présentation du module Base de données spatio-temporelles

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

CH.3 SYSTÈMES D'EXPLOITATION

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

ht t p: // w w w.m e di al o gis.c om E - Ma i l : m ed i a l og i m e di a l o g i s. c om Envoi des SMS

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

BeSpoon et l homme Connecté

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Initiation au HPC - Généralités

Cours de Génie Logiciel

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Flexible Identity. authentification multi-facteurs. authentification sans token. Version 1.0. Copyright Orange Business Services mai 2014.

Catalogue des formations pour vos collaborateurs, pour vos clients,

Manuel du Desktop Sharing

Les diagrammes de modélisation

Utilisation de la Plateforme Office365 et d Oultlook Web App

Transcription:

ppd/mpassing p. 1/43 Programmation parallèle et distribuée Communications par messages Philippe MARQUET Philippe.Marquet@lifl.fr Laboratoire d informatique fondamentale de Lille Université des sciences et technologies de Lille Master informatique de Lille février 2008

ppd/mpassing p. 2/43 Création février 2008 Cette présentation est basée sur une ancienen version présentée dans un cours de Programmation parallèle donné en maîtrise d informatique. Voirhttp://www.lifl.fr/~marquet/pp/ Ce cours est diffusé sous la licence GNU Free Documentation License, http://www.gnu.org/copyleft/fdl.html La dernière version de ce cours est accessible à partir de http://www.lifl.fr/~marquet/ens/ppd/ $Id: mpass.tex,v 1.3 2012/01/25 10:14:21 marquet Exp $

ppd/mpassing p. 3/43 Table des matières Paradigmes de programmation parallèle Programmation parallèle par passage de messages Fonctionnalités d une bibliothèque de communications Bibliothèques de communications

ppd/mpassing p. 4/43 Références Les bibliothèques de communications Frédéric DESPREZ et Pierre FRAIGNAUD in «Ordinateurs et calcul parallèles», Observatoire français des techniques avancées, série ARAGO, Paris, avril 1997 Initiation au parallélisme Marc GENGLER, Stéphane UBEDA, et Frédéric DESPREZ Manuel Informatique, Masson, Paris, 1996

Paradigmes de programmation parallèle ppd/mpassing p. 5/43

ppd/mpassing p. 6/43 Paradigmes de programmation parallèle Deux paradigmes principaux de programmation parallèle Parallélisme de contrôle : Rechercher des instructions, voire des processus pouvant s exécuter en parallèle Parallélisme de données : Rechercher une répartition des données pour maximiser les opérations (souvent identiques) pouvant être exécutées en parallèle sur ces données

Paradigmes de programmation ppd/mpassing p. 7/43 parallèle (cont d) Trois manières d aborder la parallélisation d une application en vue d une exécution sur une machine MIMD mémoire virtuellement partagée programmation «assez» aisée performances «assez» faibles parallélisation automatique situation «idéale»! compilateur-paralléliseur : travail ardu de recherche passage de messages compromis entre difficulté de programmation qualité des performances

Programmation parallèle par passage de messages ppd/mpassing p. 8/43

ppd/mpassing p. 9/43 Processus communicants Machine parallèle : un ensemble de processeurs «indépendants» communicants via un réseau Application parallèle : un ensemble de processus «indépendants» s échangeant des messages Implantation «naïve» : un processus par processeur transit des messages via le réseau

ppd/mpassing p. 10/43 Primitives de programmation par passage de messages Processus : programme standard échange de messages Environnement de programmation par passage de messages basique : un compilateur (C par exemple) quelques fonctions de bibliothèque : nproc() : nombre de processus alloués à l application myproc() : mon identification au sein de ces processus send(dest, mess) : envoi d un message recv(mess) : réception d un message Environnement de programmation par passage de messages actuel : bibliothèque complète (plus de 100 fonctions!) outils de debogage analyseur de performances etc.

Fonctionnalités d une bibliothèque de communications ppd/mpassing p. 11/43

ppd/mpassing p. 12/43 Fonctionnalités d une bibliothèque de communications Choix lors de la conception d une bibliothèque de communications Évolution des fonctionnalités : maturation des bibliothèques retour des utilisateurs Quelques fonctionnalités : Portabilité, Gestion des processus, Gestion des groupes de processus, Contextes de communication, Communications point-à-point, Communications collectives, Topologies de communication, Types de données «évolués», Liaisons avec les langages, Génération de trace, Comportement face aux processus légers, Traitement de l hétérogénéité, Tolérance aux pannes, etc.

ppd/mpassing p. 13/43 Portabilité Deux tendances : bibliothèque destinée à une machine spécifique et optimisée très finement pour celle-ci bibliothèque portable sur un grand nombre de plates-formes La bibliothèque idéale : portable sur toutes les plates-formes optimisée pour chacune d entre elles

ppd/mpassing p. 14/43 Gestion des processus communicants Possibilité de créer dynamiquement des processus Création dynamique de processus influence sur les performances des communications Fonctions indispensables à la gestion des processus : permettre à chaque processus d identifier son numéro connaître le nombre total de processus de l application

ppd/mpassing p. 15/43 Gestion de groupes de processus Réalisation de communications collectives Appartenance à un groupe : statique ou dynamique Dynamicité coût de maintien d une vision globale du système

ppd/mpassing p. 16/43 Contextes de communication Marquer les messages pour les différencier d autres messages : Étiquettes (ou «tag») Nécessaire pour l écriture de bibliothèques parallèles algèbre linéaire, imagerie... protéger les messages «internes» échangés par la bibliothèques des messages de l application Une étiquette gérée par l utilisateur et insuffisant ; il faut soit que la bibliothèque connaisse les étiquettes utilisées par l application soit que l application connaisse les étiquettes utilisées par la bibliothèque Il faut des étiquettes attribuées par l environnement une garantie d unicité de ces étiquettes possibilité de propager ces étiquettes aux processus du même contexte

ppd/mpassing p. 17/43 Communications point-à-point Communications de base Émission d un message par un processus Réception du message par un autre processus Paramètres habituels pour l émission : taille du message (nombre d éléments d un type donné ou nombre d octets) adresse d un tampon contenant le message étiquette du message adresse du processus destinataire Pour la réception : adresse d un tampon où écrire le message ( étiquette du message) ( origine du message)

ppd/mpassing p. 18/43 Liens fiables, FIFO, et temps global Un lien de communication est un lien logique reliant deux sites Sur les machines parallèles, on considère que les liens sont fiables le lien de communication ne perd pas de messages, ne duplique pas les messages, n altère pas les messages garantissent l ordre premier entré, premier servi (FIFO) les ordres d envoi et de réception sur un lien sont les mêmes

Liens fiables, FIFO, et temps global (cont d) Liens fiables et FIFO deux messages A et B envoyés dans l ordre par un premier processus vers un second arrivent dans le même ordre P1 P2 P1 P2 Send Send A B Recv A B Recv temps global externe temps global externe Rien ne garantit l ordre d arrivée de deux messages A et B envoyés par des processus différents P1 Send A P2 Recv B Send P3 temps global externe ppd/mpassing p. 19/43

Liens fiables, FIFO, et temps ppd/mpassing p. 20/43 global (cont d) Le problème est l absence d un temps global commun à tous les processus On raisonne avec un temps local sur chacun des processeurs La notion d ordre causal : La cause précède l effet l émission d un message précède sa réception i1 ; i2 : l instructioni1 précèdei2 Liens fiables et FIFO respect de l ordre causal P1 Send P2 Recv P3 A Recv B Send temps global externe

ppd/mpassing p. 21/43 Communications synchrones et asynchrones Réalisation d une communication point-à-point : un expéditeur réalise une opération d envoi du message un destinataire réalise l opération de réception Si ces deux opérations ont faites «en même temps» : mode de communication synchrone (ou rendez-vous) analogie avec une communication téléphonique : la communication met en présence les deux interlocuteurs Si ces deux opérations se font à des instants quelconques : mode de communication asynchrone analogie avec le courrier postal : l expéditeur poste une lettre que le récepteur recevra plus tard

Communications synchrones et asynchrones (cont d) Communication par rendez-vous : réalisation quand les deux sites sont prêts à communiquer Le premier site prêt doit attendre l autre Conséquences : temps d attente peuvent être longs l expéditeur est assuré que son message est arrivé au destinataire Commentaire sur le terme synchrone: les différents sites ne disposent pas d un temps global comment parler d opération synchrone dans ce cadre? les opérations ne sont pas instantanées et il existe un instant pendant lequel les deux opérations sont présentes P1 P2 Send Recv RdV temps global ppd/mpassing p. 22/43

Communications synchrones et ppd/mpassing p. 23/43 asynchrones (cont d) Communication asynchrone l émetteur envoie son message dès qu il est prêt la réception se fait plus tard Conséquences : l émetteur n attend jamais le récepteur attend si le message n est pas encore arrivé lors de l appel de la primitive de réception l expéditeur ne sait pas, à un moment donné, si le message a déjà été pris en compte par le récepteur Communication asynchrone : disponible dans toutes les bibliothèques Communication synchrone rarement disponible réalisation à l aide de plusieurs communications asynchrones

Communications synchrones et ppd/mpassing p. 24/43 asynchrones (cont d) Rendez-vous à l aide de communication asynchrones Le destinataire renvoie à l expéditeur un message d acquittement RdV Send Recv P1 message ACK temps global P2 Recv Send RdV procedure rdv_send (destinataire, mess) debut send (destinataire, mess) recv (destinataire, ACK) fin procedure rdv_recv (expediteur, mess) debut recv (expediteur, mess) send (expediteur, ACK) fin Les réceptions doivent indiquer l expéditeur et le type du message

ppd/mpassing p. 25/43 Communications bloquantes et non-bloquantes Les communications asynchrones peuvent être bloquantes ou non-bloquantes Mode bloquant primitivebsend d envoi se termine quand le message a quitté l expéditeur (Le message n est pas nécessairement arrivé au destinataire) primitivebrecv de réception se termine quand le message est arrivé et a été recopié dans le tampon de réception Mode non-bloquant : tente de diminuer le temps d attente des primitives idée : une primitive déclenche la communication mais n attend pas la terminaison de l opération appel à une primitive non-bloquante (nsend,nrecv) = appeler la couche logiciel sous-jacente et continuer aussitôt

Communications bloquantes et non-bloquantes (cont d) Intérêt des communications non-bloquantes : réalisation simultanée de calculs et communications masquer les durées des communications Attention : le tampon de communication ne peut pas être réutilisé sans risque Terminaison d une communication non-bloquante? primitive d attente (msgwait) : bloque l exécution jusqu à terminaison de la communication primitive de test (msgdone) : informe de la terminaison de la communication Plusieurs communications en attente : nsend etnrecv retournent un identificateur de la communication msgwait etmsgdone utilisent cet identificateur { id = nsend (...) bsend (...) msgwait (id) ppd/mpassing p. 26/43

ppd/mpassing p. 27/43 Mode de communication par interruptions Mode défini pour les communications asynchrones L arrivée d un message génère une interruption au niveau de l application irvc (tampon, taille, expéditeur, type, procédure) À l arrivée d un message correspondant le message est placé dans le tampon la procédure est appelée le programme reprend ensuite sont exécution Mode de communication rarement disponible Solution élégante pour des schémas de communications non-statiques : équilibrage de la charge Alternative : vérification à intervalles réguliers de la présence d éventuels messages

ppd/mpassing p. 28/43 Communications collectives Opération mettant en jeu tous les processus de l application Exemple : diffuser des données à tous les autres processeurs Possibilité de les coder à l aide de communication point-à-point source d erreurs efficacité moindre Possibilité de combiner communications et calculs simples (somme, maximum...) Sous-ensemble de processus : les groupes de processus Exécution d une communication collective : l ensemble des processus réalise une série d opérations correspondant à la communication appel de la même primitive de communication globale par tous les processus

ppd/mpassing p. 29/43 Communications classiquement utilisées en algorithmique parallèle Transfert Communication point-à-point Synchronisation (synchronization) Pas d échange d informations Tous les processus sont assurés que tous ont ralliés le point de synchronisation Diffusion (broadcast ou one-to-all) Envoi d un même message Depuis un processeur distingué À tous les autres (y compris lui-même?) Distribution ou diffusion personnalisé (scattering ou personalized one-to-all) Un processus distingué Envoie un message distinct À chacun des autres processus

utilisées en algorithmique ppd/mpassing p. 30/43 parallèle (cont d) Rassemblement (scattering) Inverse de la distribution Un processus distingué reçoit un message distinct de chacun des autres processus Commérage (all-to-all, total-exchange, ou gossiping) «There a n ladies, and each of them knows a scandal which is not known to any of the others. They communicate by telephone, and whenever two ladies make a call, they pass on to each other as much scandals as they know at the time. How many calls are needed before all ladies know all the scandals?» Chacun des n processus possède une information À la fin, tous les processus connaissent les n informations

utilisées en algorithmique ppd/mpassing p. 31/43 parallèle (cont d) Transposition (multi-scattering ou all-to-all personalized) Chaque processus effectue simultanément une distribution Réduction (reduction) Regroupe sur un processus donné Une donnée d À partir de n données d i détenues par chacun des n processus Opérateur de réduction : opération associative (et commutative) d = i d i Réduction diffusion Variante de la réduction Chaque processus connaît la valeur finale d

ppd/mpassing p. 32/43 Topologies de communication Algorithmes facilement programmable sur des machines de géométrie donnée (par exemple les grilles...) Primitive de la bibliothèque pour construire une topologie virtuelle au dessus des processus Exemples : communications point-à-point sur une grille torique communications globales sur des lignes ou colonnes virtuelles de processus

ppd/mpassing p. 33/43 Types de données «évolués» Communications utilisent un tampon Couple (adresse, taille en octets) Primitives de plus haut niveau pour transmettre des valeurs de type évolués structurés : vecteurs, matrices... non-structurés : utilisation de tableaux d indices... définis par l utilisateur :...

ppd/mpassing p. 34/43 Traitement de l hétérogénéité Utilisation de machines hétérogènes NOW (Network of Workstations), COW (Cluster of Workstations) Représentation différentes des données (little-/big-endian...) La bibliothèque de communication peut assurer les conversions nécessaires Il existe des formats de conversion et bibliothèques standard (XDR)

ppd/mpassing p. 35/43 Traitement de l hétérogénéité (cont d) Conversions nécessaires? existe-t-il différents types de processeurs? 1. gestion statique des processus/processeurs on peut répondre Oui ou Non 2. gestion dynamique des processus/processeurs? si Oui ou? il faut réaliser des conversions Quelles conversions? Alternatives : 1. choix d un format standard 2. conversion à l émission si nécessaire 3. format indépendant

Traitement de l hétérogénéité (cont d) 1. Choix d un format standard celui de la majorité par exemple les données qui transitent sur le réseau sont dans ce format un processus «minoritaire» qui utilise une autre représentation réalise localement la conversion Si deux processus «minoritaires» communiquent 2 conversions 2. Conversion à l émission si nécessaire l émetteur convertit au format du destinataire chaque émetteur doit connaître le format de chaque récepteur (et la procédure de conversion) 3. Format indépendant pour éviter la gestion de la connaissance croisée de tous les formats par tous les émetteurs choix d un format indépendant un émetteur convertit systématiquement vers ce format un récepteur convertit systématiquement depuis ce format ppd/mpassing p. 36/43

ppd/mpassing p. 37/43 Liaisons avec les langages Interface possible à la bibliothèque depuis les langages standard C Fortran (calcul scientifique) Problèmes pour certains langages, exemples : C++ : envoi d objets quelconques Fortran 90 : section de tableaux

ppd/mpassing p. 38/43 Génération de traces Problème de la compréhension de l exécution de programmes parallèles Génération de traces d exécutions : liée à la bibliothèque de communications Utilitaire de visualisation de traces d exécutions Coût non négligeable à l exécution Perturbation du déroulement de l exécution Pas de standards pour le format des traces d exécutions

ppd/mpassing p. 39/43 Comportement face aux processus légers Utilisation des processus légers sur les machines parallèles : Passage d une activité à une autre quand le processus est bloqué (par exemple sur une communication) Problèmes : réentrance de la bibliothèque identification des processus légers

ppd/mpassing p. 40/43 Tolérance aux pannes Aspects importants pour les «grosses applications» Au mieux dans la bibliothèque : information de l émetteur que le récepteur ne répond pas détection de la non-réponse d un processus Sur-coût non négligeable

ppd/mpassing p. 41/43 Autres fonctionnalités Pour certaines applications d autres fonctionnalités sont utiles Exemples : Communications unilatérales lire ou écrire dans la mémoire d un processus sans l interrompre proche du modèle de programmation à mémoire partagée utile pour l identification des acteurs présents au début de l application Démarrer un processus sur un autre processeur par un envoi de message messages actifs simplifie la gestion de l asynchronisme dans les programmes

Bibliothèques de communications ppd/mpassing p. 42/43

ppd/mpassing p. 43/43 Bibliothèques de communications existantes PVM : Parallel Virtual Machine http://www.epm.ornl.gov/pvm/ 1989 produit universitaire (ORNL, University of Tennessee Knoxville) portable (réseaux de stations (NOW/COW, Unix), machines parallèles) MPI : Message Passing Interface http://www.mpi-forum.org/ conception en 1993-94 standard efficacité différentes implémentations : MPICH, CHIMP, LAM, constructeurs... Évolution PVM MPI MPI PVM MPI a pris le pas devant PVM