Message Passing Interface
Message Passing Interface (MPI, інтерфейс передачі повідомлень) - програмний інтерфейс (API) для передачі інформації. який дозволяє обмінюватися повідомленнями між процесами, які виконують одну задачу. Розроблено Вільямом Гроуппом. Евін ласки (англ.) І іншими.
MPI є найбільш поширеним стандартом інтерфейсу обміну даними в паралельному програмуванні, існують його реалізації для великого числа комп'ютерних платформ. Використовується при розробці програм для кластерів і суперкомп'ютерів. Основним засобом комунікації між процесами в MPI є передача повідомлень один одному. Стандартизацією MPI займається MPI Forum. У стандарті MPI описаний інтерфейс передачі повідомлень, який повинен підтримуватися як на платформі, так і в додатках користувача. В даний час існує велика кількість безкоштовних і комерційних реалізацій MPI. Існують реалізації для мов Фортран 77/90, Сі і Сі ++.
В першу чергу MPI орієнтований на системи з розподіленою пам'яттю. тобто коли витрати на передачу даних великі, в той час як OpenMP орієнтований на системи із загальною пам'яттю (багатоядерні із загальним кешем). Обидві технології можуть використовуватися спільно, щоб оптимально використовувати в кластері багатоядерні системи.
стандарти MPI
Більшість сучасних реалізацій MPI підтримують версію 1.1. Стандарт MPI версії 2.0 підтримується більшістю сучасних реалізацій, але деякі функції можуть бути реалізовані не до кінця.
- передача і отримання повідомлень між окремими процесами;
- колективні взаємодії процесів;
- взаємодії в групах процесів;
- реалізація топологій процесів;
- динамічне породження процесів і управління процесами;
- односторонні комунікації (Get / Put);
- паралельний введення і виведення;
- розширені колективні операції (процеси можуть виконувати колективні операції не тільки всередині одного комунікатора, а й в рамках декількох комунікаторів).
функціонування інтерфейсу
Базовим механізмом зв'язку між MPI процесами є передача і прийом повідомлень. Повідомлення несе в собі дані, що передаються та інформацію, що дозволяє приймаючій стороні здійснювати їх вибірковий прийом:
- відправник - ранг (номер в групі) відправника повідомлення;
- одержувач - ранг одержувача;
- ознака - може використовуватися для поділу різних видів повідомлень;
- комунікатор - код групи процесів.
Операції прийому і передачі можуть бути блокує і не блокується. Для не блокують операцій визначені функції перевірки готовності і очікування виконання операції.
приклад програми
Нижче наведено приклад програми обчислення числа π на мові C з використанням MPI:
реалізації MPI
Підтримуються різні комунікаційні системи (в тому числі Myrinet).
- WMPI - реалізація MPI для Windows
- MPI / PRO for Windows NT - комерційна реалізація для Windows NT
- Intel MPI - комерційна реалізація для Windows / Linux
- Microsoft MPI входить до складу Compute Cluster Pack SDK. Заснований на MPICH2, але включає додаткові засоби управління завданнями. Підтримується специфікація MPI-2.
- HP-MPI - комерційна реалізація від HP
- SGI MPT - платна бібліотека MPI від SGI
- Mvapich - безкоштовна реалізація MPI для Infiniband
- Open MPI - безкоштовна реалізація MPI, спадкоємець LAM / MPI
- Oracle HPC ClusterTools - безкоштовна реалізація для Solaris SPARC / x86 і Linux на основі Open MPI
- MPJ - MPI for Java
- PETSc - бібліотека паралельних програм для вирішення систем лінійних алгебраїчних рівнянь
- OpenMP (англ. Open Multi-Processing) - технологія мультипроцессорного (мультіпотокового) програмування.
- модель акторів
- mpC - The mpC Parallel Programming Environment (англ.)
Дивитися що таке "Message Passing Interface" в інших словниках:
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 - 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
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