Message Passing Interface
Материал из Википедии — свободной энциклопедии
Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между компьютерами, выполняющими одну задачу.
MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании, существуют его реализации для большого числа компьютерных платформ. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Стандартизацией MPI занимается MPI Forum. В стандарте MPI описан интерфейс передачи сообщений, который должен поддерживаться как на платформе, так и в приложениях пользователя. В настоящее время существует большое количество бесплатных и коммерческих реализаций MPI. Существуют реализации для языков Фортран 77/90, Си и Си++.
[править] Стандарты MPI
Большинство современных реализаций MPI поддерживают версию 1.1. Стандарт MPI версии 2.0 поддерживается большинством современных реализаций, однако некоторые функции могут быть реализованы не до конца.
В MPI 1.1 (опубликован 12 июня 1995 года) поддерживаются следующие функции:
- передача и получение сообщений между отдельными процессами;
- коллективные взаимодействия процессов;
- взаимодействия в группах процессов;
- реализация топологий процессов;
В MPI 2.0 (опубликован 18 июля 1997 года) дополнительно поддерживаются следующие функции:
- динамическое порождение процессов и управление процессами;
- односторонние коммуникации (Get/Put);
- параллельный ввод и вывод;
- расширенные коллективные операции (процессы могут выполнять коллективные операции не только внутри одного коммуникатора, но и в рамках нескольких коммуникаторов).
[править] Реализации MPI
- MPICH — самая распространённая бесплатная реализация, работает на UNIX-системах и Windows NT
- WMPI — бесплатная реализация MPI для Windows
- LAM/MPI — ещё одна бесплатная реализация MPI
- MPI/PRO for Windows NT — коммерческая реализация для Windows NT
- Intel MPI — коммерческая реализация для Windows / GNU/Linux
- HP-MPI — коммерческая реализация от HP
- SGI MPT — платная библиотека MPI от SGI
- Mvapich — бесплатная реализация MPI для Infiniband
- OpenMPI — бесплатная реализация MPI, наследник LAM/MPI

