Message Passing Interface


Message Passing Interface

MPI (The Message Passing Interface, voir [1]), conçue en 1993-94, est une norme définissant une bibliothèque de fonctions, utilisable avec les langages C et Fortran. Elle permet d'exploiter des ordinateurs distants ou multiprocesseur par passage de messages.

Elle est devenue de facto un standard de communication pour des nœuds exécutant des programmes parallèles sur des systèmes à mémoire distribuée.

MPI a été écrite pour obtenir de bonnes performances aussi bien sur des machines massivement parallèles à mémoire partagée que sur des clusters d'ordinateurs hétérogènes à mémoire distribuée. Elle est disponible sur de très nombreux matériels et systèmes d'exploitation. Ainsi, MPI possède l'avantage par rapport aux plus vieilles bibliothèques de passage de messages d'être grandement portable (car MPI a été implantée sur presque toutes les architectures de mémoires) et rapide (car chaque implantation a été optimisée pour le matériel sur lequel il s'exécute).

Depuis 1997, une nouvelle version de MPI est disponible, MPI-2, qui apporte quelques puissantes fonctionnalités supplémentaires.

Sommaire

Concepts

Communicateurs

Un communicateur désigne un ensemble de processus pouvant communiquer ensemble, et deux processus ne pourront communiquer que s'ils sont dans un même communicateur. Un communicateur initial englobe tous les processus (MPI_COMM_WORLD), qu'il est possible de subdiviser en communicateurs plus petits correspondants à des entités logiques. Il existe deux types de communicateurs : les intracommunicateurs et les intercommunicateurs. Les intracommunicateurs sont les communicateurs standards, alors que les intercommunicateurs servent à créer un pont entre deux intracommunicateurs. MPI-2 améliore grandement l'usage des intercommunicateurs en leur permettant de réaliser des communications collectives.

Communications point-à-point

Les communications point-à-point permettent à deux processus à l'intérieur d'un même communicateur d'échanger une donnée (scalaire, tableau ou type dérivé). Les fonctions correspondantes sont MPI_Send, MPI_Recv et MPI_Sendrecv.

Communications collectives

Les communications collectives impliquent tous les processus d'un communicateur. Il est possible d'envoyer une même donnée à tous les processus (MPI_Bcast), de découper un tableau entre tous les processus (MPI_Scatter), ou d'effectuer une opération (par exemple addition) où chaque processus contribuera.

Types dérivés

Les types de base (entier, flottant simple ou double précision, caractère) sont nativement pris en charge. Il est ensuite possible de créer des types dérivés, qui s'écartent plus ou moins de ces types de base : les types contiguë (pour des données homogènes et contiguëes en mémoire), vecteur (pour des données homogènes et espacées d'un pas constant en mémoire), indexé (pour des données homogènes et espacées d'un pas variable en mémoire) et structure (pour des données hétérogènes).

MPI I/O (MPI-2)

MPI I/O autorise les entrées-sorties parallèles.

Implémentations

Les implémentations classiques sont en C/C++ et FORTRAN, mais il existe aussi des implémentations en Python, OCaml et Java. L'implémentation initiale du standard MPI 1.x était MPICH, aujourd'hui devenue MPICH 2 en supportant le standard MPI-2 ; c'est un logiciel libre. On trouve aussi sous licence libre OpenMPI. À côté de ces implémentations généralistes, des implémentations optimisées ont été faites par certains constructeurs.

Voir aussi

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Message Passing Interface de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Message Passing Interface — MPI, the Message Passing Interface, is standardized and portable message passing system designed by a group of researchers from academia and industry to function on a wide variety of parallel computers. The standard defines the syntax and… …   Wikipedia

  • Message Passing Interface — MPI MPI Logo Basisdaten Entwickler Argonne National Laboratory Aktuelle Version …   Deutsch Wikipedia

  • Message Passing Interface — Сюда перенаправляется запрос «OpenMPI». На эту тему нужна отдельная статья. Message Passing Interface (MPI, интерфейс передачи сообщений) программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между… …   Википедия

  • Message passing — This article is about the computer science concept. For other uses, see Message passing (disambiguation). Message passing in computer science is a form of communication used in parallel computing, object oriented programming, and interprocess… …   Wikipedia

  • Message passing — In der Informatik ist der Nachrichtenaustausch (engl. Message Passing) eine Kommunikationsform, die in der Nebenläufigkeits Programmierung (Concurrent programming), der parallelen Programmierung (Parallel programming), der objektorientierten… …   Deutsch Wikipedia

  • Microsoft Messaging Passing Interface — Microsoft Message Passing Interface (MS MPI) is an implementation of the MPI 2 specification by Microsoft for use in Windows HPC Server 2008 to interconnect and communicate (via messages) between High performance computing nodes. It is mostly… …   Wikipedia

  • Message Parsing Interpreter — The Message Parsing Interpreter (MPI for short, not to be confused with the Message Passing Interface) is a Lisp like programming language based on text replacement that is used on Fuzzball MUCK servers, starting with version 2.2fb5.00. It is… …   Wikipedia

  • Message-oriented middleware — (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing… …   Wikipedia

  • Message queue — In computer science, message queues and mailboxes are software engineering components used for interprocess communication, or for inter thread communication within the same process. They use a queue for messaging – the passing of control or of… …   Wikipedia

  • Message transfer agent — Within Internet message handling services (MHS), a message transfer agent[1] or mail transfer agent[2] (MTA) or mail relay is software that transfers electronic mail messages from one computer to another using a client–server application… …   Wikipedia