Une brève introduction à MPI Destinée à l usage des utilisateurs de CIMENT Laurent Desbat juin 2002.

Slides:



Advertisements
Présentations similaires
Communications point à point Communications collectives Optimisations
Advertisements

Introduction au Langage C,C++
Le Cadre Européen Commun de Référence pour les Langues
Programmation Orienté Objet en C++
Rappels de C ECP – Option SA Henri Fallon. Objectifs Théorie + pratique Compréhension générale du langage Repartant « du début » Pour ceux qui savent.
GRES2001 Institut National des Télécommunications Contribution au calcul de disponibilité du service de transfert de paquets IP Auteur : Auteur : Abdallah.
1 HPC et Windows 2003 CCS pour les développeurs Visual Studio 2005.
HPC et Windows 2003 CCS pour les développeurs
Logique approchée Michel de Rougemont Université Paris II VERA: CORRECT:
Data Management for Large-Scale Scientific Computations in High Performance Distributed Systems A. Choudhary, M. Kandemir, J. NoG. Memik, X. Shen, W. Liao,
DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL.
C++ 5ème cours Patrick Reuter maître de conférences
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Plan du cours 5:Threads introduction Définition Création des Threads
Liste générique dans Linux 2.6 Source : Understanding the Linux kernel Chap3 processes p.87.
Rappels de C ECP – Option SA Henri Fallon. Objectifs Théorie + pratique Compréhension générale du langage Repartant « du début » Pour ceux qui savent.
13 – 16 Décembre 2005 Laurence Viry Introduction à MPI MPI_2.
Introduction à MPI 13 – 16 Décembre 2005 Laurence Viry.
Introduction à MPI Types dérivés MPI Décembre 2005
Introduction à RRDTool
Architecture de machines Historique
Windows XP Professionnel
PAPE Objectifs Mettre à disposition linformation sur leau à léchelle de la structure de gestion de sous bassins versants Standardiser.
Loutil de CLASSIFICATION. Loutil de classification Organisation de données en sous ensembles.Collection Regroupement de fiches dune collection en sous-ensembles.
ADIUT Bordeaux - 11 mai Le supplément « langues » au DUT Un objectif pour tous Mireille Hardy et Jean-Michel Tholliez (APLIUT)
ATELIER RÉGIONAL DE CAPITALISATION DES EXPÉRIENCES EN ADAPTATION AU CHANGEMENT CLIMATIQUE Maputo, 7-11 mai 2012.
Nouvelles logiques et nouvelles ambitions. Une présence en Europe depuis la seconde guerre mondiale Larmée la plus puissante au monde 1,4 millions de.
1 Réunion ANR-CIGC GCPMF 15 mars 2006 Architecture de grille générique, multi- paradigmes et tolérante aux pannes, pour le temps contraint. Application.
Systèmes d'exploitations GRARI Mounir ESTO Année 2011.
Aurélie Sgro Chargée de Projet ICMPD Bruxelles
Recherche sur internet pour une pratique fondée sur des données probantes.
Présentation OTeN – e-Forum Casablanca 14 juin 2007 Un observatoire des initiatives numériques sur le territoire français Emmanuel Vandamme, délégué de.
Les eaux souterraines mises sur ordinateur
Chapitre IV Object, interfaces, classes imbriquées.
Parallel Programming in C with MPI and OpenMP
MPI et programmation par passage de messages
Injection de dépendances
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
TM.
Cours VHDL Chap 3: sémantique VHDL
MPI (Message Passing Interface)
La programmation objet Illustration de la POO en Pascal
Présentation rapide de MPI : Message Passing Interface
Approche mémoire partagée Threads – Paradigme de lapproche – Objets exécutés par les processeurs threads vs processus, – un thread possède : Ses registres,
Programmation logique Démonstrateur automatique
Interface CWIPI Thierry Morel Formation OpenPALM avril 2012
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
LA COMMUNICATION INTER-API
Cours N°2 Base de Données & Langage SQL
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
ADOBE FLEX 4. © Logica All rights reservedNo. 2 Introduction Flex en action Autour de Flex Logica Le programme.
CERN IT Department CH-1211 Genève 23 Switzerland t Get the most of Office 2007! Bruno Lenski, IT/OIS.
1 CSI 2532 Lab5 Installation de JDBC Février 13, 2012.
Multi-Thread Jian-Yun Nie
Marketing électronique Cours 5 La personnalisation.
Parallel Programming in C with MPI and OpenMP
Les Objets CORBA parallèles Travaux pratiques Lundi 22 mai 2000 ARC « Couplage » Christophe René (IRISA/IFSIC) Eric Lemoine (INSA Lyon)
DESA ANITSMessage Passing Interface1 Présentation Par : Khalil BADDOU Mohammed Ghaouth BELKASMI Mohammed SABER Mounir GRARI Said BENBOUAZA Encadrant: Dr.
Importance du réseau dans des architectures MIMD Tout échange entre les processeurs nécessite un transfert de données via le réseau.
SCIENTIFIC INSTITUTE OF PUBLIC HEALTH CLINICAL BIOLOGY DEPARTMENTDr. ANNE VAN NEROM Rôle de l’Autorité Compétente en cas d’incidents.
Argc et argv Utilisation des paramètres de la ligne de commande.
Programmation parallèle
PARALLÉLISATION AUTOMATIQUE D’ALGORITHMES
Programmation Système et Réseau
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Exemple d’utilisation de l’outil de profilage prof La commande prof de Unix.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
6GEN720 Réseaux d’ordinateurs
Transcription de la présentation:

Une brève introduction à MPI Destinée à l usage des utilisateurs de CIMENT Laurent Desbat juin 2002

Plan MPI, quest-ce que cest ? MPI, comment lutilise-ton ? Notion de communications globales/collectives Un exemple réel dimagerie médicale SPECT

MPI, quest-ce que cest ? MPI : Message Passing Interface Le modèle de programmation est celui de processus communicants, coopérant à lexécution dune tâche. –Chaque processus a ses propres données –Les processus peuvent communiquer entre eux MPI_Send, MPI_Recv, MPI_Bcast,... –Et se synchroniser MPI_Barrier,...

MPI, quest-ce que cest ? MPI permet de gérer –l environnement d exécution –les communications point à point (Send, Recv) –les communications collectives (Bcast, Scatter, Gather,…) –les groupes de processus et des communicateurs –la topologie dinter-connexion des processus (grilles, tore, arbre,…=> notion de voisinage)

Plan MPI, quest-ce que cest ? MPI, comment lutilise-ton ? Notion de communications globales/collectives Un exemple réel dimagerie médicale SPECT

MPI, comment lutilise-ton ? Initialisation de lenvironnement (début) –C/C++ : MPI_Init(&argc,&argv); –FORTRAN : MPI_INIT(ierr) Et destruction (fin) –MPI_Finalize(); –FORTRAN : MPI_FINALIZE(ierr)

MPI, comment lutilise-ton ? Un processus est identifié par son groupe et son rang (dans le groupe). –int MPI_Comm_rank(MPI_comm comm, int *rank) –int MPI_Comm_size(MPI_comm comm, int *size) –exemple dutilisation : MPI_Comm_rank(MPI_COMM_WORLD, &myrank) –MPI_COMM_WORLD est le communicateur global (tous les processus du programme MPI courant en sont élément). Il est créé par MPI_Init.

MPI, comment lutilise-ton ? MPI permet de gérer les communicateurs –ils sont définis par un groupe et un contexte –Ils définissent la portée des communications [Le contexte d un communicateur détermine certaines propriétés (mais l utilisateur ne peut agir directement dessus)] Exemple : MPI_COMM_WORLD créé à l initalisation comprends tous les processus de votre exécution parallèle

MPI, comment lutilise-ton ? MPI permet de gérer les communications Communication point à point –lenveloppe dun message est constituée de le rang du processus émetteur le rang du processus récepteur une étiquette de message le nom du communicateur –Les données sont typées MPI_CHAR, MPI_SHORT, MPI_INT, MPI_LONG, MPI_UNSIGNED_CHAR, MPI_UNSIGNED_SHORT, MPI_UNSIGNED, MPI_UNSIGNED_LONG, MPI_FLOAT, MPI_DOUBLE, MPI_LONG_DOUBLE

MPI, comment lutilise-ton ? Communication bloquantes –int MPI_Send(void* buf, int count,MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) –int MPI_Recv(void* buf,int count,MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) MPI_ANY_SOURCE et/ou MPI_ANY_TAG peuvent être utilisés, MPI_PROC_NULL (proc. fictif=sans effet) le status est une structure qui contient en sortie la source et le tag du message reçu –status.MPI_SOURCE ; status.MPI_TAG

MPI, comment lutilise-ton ? Mon premier programme en C : mpifileC.c Mon premier programme en FORTRAN mpifileF.fMon premier programme en FORTRAN mpifileF.f

Plan MPI, quest-ce que cest ? MPI, comment lutilise-ton ? Notion de communications globales/collectives Un exemple réel dimagerie médicale SPECT

Communications collectives Elles impliquent un groupe de processeurs Contraintes –la quantité d information envoyée doit être identique à la quantité d info reçue –le même communicateur doit être invoqué par tous les processus participant –pas de TAG

Communications collectives Synchronisation –int MPI_Barrier(MPI_Comm com) Transfert de données : MPI_Bcast, MPI_Scatter, MPI_Gather, MPI_Allgather,MPI_Alltoall –int MPI_Bcast(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm ) Transfert de données et calcul, puis eventuellement transfert du résultat : MPI_Reduce, MPI_Allreduce, MPI_Reduce_Scatter, MPI_Scan –int MPI_Reduce(sendbuf,recvbuf,count,datatype,op,root,comm) –op est un MPI_Op (MPI_MAX, MPI_SUM, MPI_PROD), voir aussi MPI_Op_create pour la création de nouveaux op

Communications collectives A0A0 A0A0 A0A0 A0A0 A0A0 A1A1 A2A2 A0A0 A1A1 A2A2 data processes broadcast scatter gather

Communications collectives data processes A0A0 B0B0 C0C0 A0A0 A0A0 A0A0 allgather alltoall A0A0 B0B0 C0C0 A1A1 A2A2 B0B0 B0B0 B0B0 C0C0 C0C0 C0C0 B1B1 B2B2 C1C1 C2C2 A0A0 A1A1 A2A2 B0B0 C0C0 B1B1 C1C1 B2B2 C2C2

Plan MPI, quest-ce que cest ? MPI, comment lutilise-ton ? Notion de communications globales/collectives Un exemple réel dimagerie médicale SPECT

Lien vers tomo3D.ppt Lien vers TP Lien vers solution Lien vers les sources séquentielles

Conclusion Très peu de connaissances sont nécessaires pour démarrer sous MPI Primitives de base –MPI_Init et MPI_Finalize –MPI_Comm_rank, MPI_Comm_size –MPI_Send et MPI_Recv –MPI_Barrier

Quelques Liens Sur eclair (machine alpha) –/usr/opt/MPI190/mpi_guide.ps Bibliographie –Marc Snir et al. MPI, the complete reference. Second edition, MIT Press, Vol1, The MPI core, Vol2, MPI-2. –William Gropp, Ewing Lusk et Anthony Skjellum. Usining MPI : Portable parallel Programming with the Message Passing Interface. MIT Press, –Peter S. pacheco. Parallel Programming with MPI. Morgan Kaufman Ed., 1997.

Quelques Liens Distributions (domaine public) – – Tutoriaux – pl – –

Perspectives et suites Plan dun cours avancé Notion de communications non-bloquantes Notion de types et types dérivés Notion de communicateurs Notion de topologie