MPI: The Message Passing Interface

Новости, Документы, Учебные материалы, История, Реализации, Производительность, Другие ресурсы

Название "интерфейс передачи сообщений", говорит само за себя. Это хорошо стандартизованный механизм для построения параллельных программ в модели обмена сообщениями. Существуют стандартные "привязки" MPI к языкам С/С++, Fortran 77/90. Существуют бесплатные и коммерческие реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и Windows NT. В настоящее время MPI - наиболее широко используемый и динамично развивающийся интерфейс из своего класса.

Стандартизацией MPI занимается MPI Forum. Последняя версия стандарта - 2.0. В этой версии к MPI добавлены такие важные элементы функциональности, как динамическое управление процессами, односторонние коммуникации (Put/Get), параллельный ввод/вывод. Однако ни в одной реализации на настоящее время интерфейс MPI 2.0 полностью не поддерживается.


Новости MPI

  • 15 сентября 2000 г. Реализация MPICH: выпущена версия 1.2.1. Исправлены несколько ошибок версии 1.2.0.
  • 24 марта 2000 г. Реализация LAM/MPI: выпущены версии 6.3.2 и 6.4-a3. LAM 6.4 поддерживает спецификацию IMPI.

Стандарт MPI

Учебные материалы по MPI, доступные в Internet


Краткая история MPI

  • 1992 г. Началась работа над стандартом эффективной и переносимой библиотеки передачи сообщений (Oak Ridge National Laboratory, Rice University). В то время уже использовались несколько различных коммуникационных библиотек и ощущалась острая необходимость в едином стандарте, который собрал бы воедино лучшие черты этих библиотек.
  • 29/30 апреля 1992. Workshop on Standards for Message Passing in a Distributed Memory Environment (Williamsburg, Virginia). Обсуждены необходимые основные черты стандарта MPI, учреждена рабочая группа по стандартизации.
  • Ноябрь 1992 г. Появился рабочий вариант стандарта MPI1, вызвавший большую дискуссию.
  • Февраль 1992 г. Опубликован пересмотренный вариант MPI1 (Dongarra, Hempel, Hey and Walker). Создана организация MPI Forum для дальнейшего развития стандарта. Для обсуждения стандарта и отдельных его глав были созданы несколько открытых списков рассылки. Собрания MPI Forum назначались каждые 6 недель.
  • Ноябрь 1993 г. Рабочий вариант стандарта представлен на конференции Supercomputing'93.
  • 5 мая 1994 г. Окончательный вариант стандарта MPI 1.0.
  • 12 Июня 1995 г. Новая версия стандарта - MPI 1.1. Исправлены некоторые ошибки оригинального стандарта и внесены разъяснения.
  • 18 Июля 1997 г. Опубликован стандарт MPI-2: Extensions to the Message-Passing Interface.

Реализации

Бесплатные реализации MPI

  • MPICH. Переносимая реализация (работает почти на всех UNIX-системах и Windows NT), разработанная в Argonne National Laboratory. Поддерживаются кластеры на базе SMP-узлов. Поддерживается стандарт MPI 1.2 и некоторые элементы стандарта MPI 2.0.
  • LAM. Реализация MPI и среда разработки MPI-программ для гетерогенных кластеров из UNIX-машин, разработана в Ohio Supercomputer Center, теперь эта реализация перешла в ведение Laboratory for Scientific Computing (университет Notre-Damme). Последняя версия - 6.1.
  • BIP-MPI - реализация MPI для кластеров на базе ОС Linux и коммутатора Myrinet, в составе пакета BIP Messages. Основана на MPICH.
  • CHIMP/MPI, одна из первых реализаций MPI; разработана в EPCC. Поддерживаемые платформы: SunOS, Solaris, AIX, IRIX, транспьютеры Meiko. Последняя версия - 2.1.1c (от 13 Ноября 1995 г.)
  • MPI-FM, реализация MPI на базе протокола Fast Messages (адаптированная версия MPICH). Входит в состав пакета HPVM (High Performance Virtual Machines). HPVM работает на Intel-платформах c ОС Linux и Windows NT. Распространяются только двоичные файлы для этих платформ. Поддерживаются сетевые среды Myrinet (основная) и TCP/IP.
  • WMPI - реализация MPI для платформ Win32 (Microsoft Windows 95/98/NT), разработанная и поддерживаемая Jose Meireles Marinho (Университет Coimbra, Португалия). Базируется на на реализации P4 для Win32 (интерфейс к P4 также входит в поставку). Последняя версия - WMPI 1.3; поддерживается стандарт MPI 1.1, включена библиотека ROMIO от ANL, реализующая спецификацию MPI I/O стандарта MPI 2.0. Реализация совместима с MPICH 1.1.2 (т.е. возможна организация гетерогенных кластеров UNIX/Win32). Поставляются только двоичные файлы для Win32 (Intel и Alpha).
    • Загрузить копию WMPI 1.3 для Visual C++ 6.0 (1.58 MB).

  • MP-MPICH - мультиплатформенная реализация MPI на базе MPICH. Включает NT-MPICH (версию MPICH для Windows NT) и SCI-MPICH (версию MPICH для SCI-коммутаторов). Разработка RWTH-Aachen (Аахен, Германия).
  • TOMPI (Threads-Only MPI) - реализация MPI через множественные потоки (POSIX/Solaris threads) для работы на одном компьютере (или однопроцессорном или с SMP-архитектурой). Автор: Erik Demaine. Последняя версия (от 20 марта 1998) поддерживает подмножество стандарта MPI 1.1.
  • LA-MPI - реализация MPI 1.2 в Лос-аламосской лаборатории для больших кластеров. Поддерживается устойчивость к сбоям. Находится в состоянии разработки.

Смотрите также раздел MPI в нашем FTP-архиве. Доступны для загрузки копии последних версий MPICH и WMPI.


Коммерческие реализации MPI

  • MPI/PRO for Windows NT. Реализация, разработанная компанией MPI Software Technology. Работает на кластерах рабочих станций и серверов Windows NT (платформы Intel и Alpha). Поддерживается стандарт MPI 1.2.
  • PaTENT MPI - реализация MPI компании Genias Sotfware для кластеров на базе Windows NT. PowerMPI - реализация MPI для транспьютерных систем Parsytec.

Реализации производителей

Производители параллельных вычислительных систем почти всегда поставляют оптимизированные для этих систем реализации интерфейса MPI в составе сред разработки параллельного ПО. Вот некоторые из таких реализаций.

  • Реализация MPI для IBM SP2. Входит в состав Parallel Environment V2.3.
  • HP MPI - высокопроизводительная реализация MPI для серверов HP Exemplar (HP 9000). Последняя версия - 1.5; полностью отвечает спецификации MPI 1.2 и реализует некоторые элементы функциональности MPI 2.0 (MPI I/O, односторонние коммуникации и др.). Включаются средства профилирования и мониторинга MPI-программ (XMPI, CXperf и др.)
    Более подробно:
    • HP MPI User's Guide (руководство пользователя по HP MPI 1.4, в формате PDF)

  • Sun MPI 3.0 входит в состав пакета Sun HPC 2.0 Software для многопроцессорных серверов Sun HPC. Поддерживается стандарт MPI 1.1, безопасная многопоточность, некоторые элементы MPI I/O.
  • Реализация MPI для суперкомпьютеров SGI/Cray входит в состав пакета MPT (Message-Passing Toolkit).
  • ScaMPI - реализация MPI компании Scali Computer.

Смотрите также:

  • IMPI (Interoperable MPI) - стандарт на совместимость реализаций MPI.

Производительность реализаций и приложений

Повышение эффективности параллельных программ и минимизация накладных расходов на организацию параллелизма - одно из основных требований к MPI вообще, как к коммуникационному интерфейсу, так и к конкретным реализациям MPI.


Другие справочные ресурсы, посвященные MPI


© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ Rambler's Top100