Résumé
Message Passing Interface (MPI) est un outil pour le calcul scientifique à haute performance qui permet d'utiliser plusieurs ordinateurs. C'est une norme conçue en 1993-94 pour le passage de messages entre ordinateurs distants ou dans un ordinateur multiprocesseur. 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. Elle définit une bibliothèque de fonctions, utilisable avec les langages C, C++ et Fortran. 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é implémentée sur presque toutes les architectures de mémoires) et rapide (car chaque implémentation 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. Depuis 2015, une nouvelle version de MPI est disponible, MPI-3, qui apporte des écritures parallèles dans les fichiers. Depuis 2020, une nouvelle version de MPI est disponible, MPI-4, qui apporte le RDMA et la prévision de détection automatique en cas de panne. (MPI Forum) 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.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Publications associées (37)
Concepts associés (46)
Concurrency (computer science)
In computer science, concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the outcome. This allows for parallel execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor and multi-core systems. In more technical terms, concurrency refers to the decomposability of a program, algorithm, or problem into order-independent or partially-ordered components or units of computation.
Microprocesseur multi-cœur
vignette|Un processeur quad-core AMD Opteron. vignette|L’Intel Core 2 Duo E6300 est un processeur double cœur. Un microprocesseur multi-cœur (multi-core en anglais) est un microprocesseur possédant plusieurs cœurs physiques fonctionnant simultanément. Il se distingue d'architectures plus anciennes (360/91) où un processeur unique commandait plusieurs circuits de calcul simultanés. Un cœur (en anglais, core) est un ensemble de circuits capables d’exécuter des programmes de façon autonome.
Message Passing Interface
Message Passing Interface (MPI) est un outil pour le calcul scientifique à haute performance qui permet d'utiliser plusieurs ordinateurs. C'est une norme conçue en 1993-94 pour le passage de messages entre ordinateurs distants ou dans un ordinateur multiprocesseur. 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. Elle définit une bibliothèque de fonctions, utilisable avec les langages C, C++ et Fortran.
Afficher plus
Cours associés (11)
CS-472: Design technologies for integrated systems
Hardware compilation is the process of transforming specialized hardware description languages into circuit descriptions, which are iteratively refined, detailed and optimized. The course presents a
PHYS-743: Parallel programming
Learn the concepts, tools and API's that are needed to debug, test, optimize and parallelize a scientific application on a cluster from an existing code or from scratch. Both OpenMP (shared memory) an
MATH-454: Parallel and high-performance computing
This course provides insight into a broad variety of High Performance Computing (HPC) concepts and the majority of modern HPC architectures. Moreover, the student will learn to have a feeling about wh
Afficher plus
Séances de cours associées (75)
Propagation de la croyance : méthodes clés et analyse
Couvre la propagation de la croyance, une méthode clé pour l'analyse et l'algorithme.
MPI Advanced : Datatypes, communicateurs et E/S
Couvre les fonctions MPI avancées, y compris les types de données, les communicateurs et les E / S, en soulignant l'importance d'utiliser les collectifs pour de meilleures performances.
MPI Basics : Point-to-Point et communications collectives
Couvre les bases du MPI, y compris les communications point à point et collectives, les synchronisations et l'évitement des conditions de course.
Afficher plus
MOOCs associés (12)
Parallelism and Concurrency
(merge of parprog1, scala-reactive, scala-spark-big-data)
Functional Programming
In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for rea
Functional Programming Principles in Scala [retired]
This advanced undergraduate programming course covers the principles of functional programming using Scala, including the use of functions as values, recursion, immutability, pattern matching, higher-
Afficher plus