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-1.1. включает следующие основные группы функций:
- Стандарт MPI-2.0.
Данный документ содержит
уточнения,
привязки к языку C++
и расширения стандарта MPI 1.1, введенные в версиях 1.2 и 2.0.
Стандарт MPI-2: Extensions to the Message-Passing Interface включает следующие основные группы функций:
Учебные материалы по MPI, доступные в Internet
- Лекция об MPI в курсе "Параллельная обработка данных" (Вл.В.Воеводин).
- Вычислительный практикум по технологии MPI (А.С.Антонов).
- А.С.Антонов "Параллельное программирование с использованием технологии MPI".
- Глава об MPI в книге Яна Фостера "Designing and Building Parallel Programs".
- Учебные материалы по MPI на сервере MHPCC.
- MPI: The Complete Reference. Авторы: Marc Snir, Steve Otto, Steve Huss-Lederman, David Walker, Jack Dongarra.
- Tutorial on MPI: The Message Passing Interface. Автор: Bill Gropp.
- Writing Message-Passing Parallel Programs with MPI - учебный курс по MPI, созданный в EPCC (The University of Edinburgh). Авторы: Neil MacDonald, Elspeth Minty, Mario Antonioletti, Joel Malard, Tim Harding, Simon Brown.
Краткая история 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.
- Загрузить копию MPICH c исходными текстами.
- Cправочные страницы (manual pages) из MPICH 1.1 (HTML)
- Руководство пользователя по MPICH (HTML)
- Руководство по установке MPICH (HTML)
- 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.
- PMB (Pallas MPI Benchmarks). Набор тестов оценки производительности реализаций MPI.
- NPB 2.3 - тесты производительности NAS Parallel Benchmarks, написанные в терминах MPI.
- Tuning MPI Applications for Peak Performance. Руководство по оптимизации MPI-приложений в формате Powerpoint. Автор: Bill Gropp.
- Review of Performance Analysis Tools for MPI Parallel Programs - Обзор средств анализа производительности MPI-программ. Авторы: Shirley Browne, Jack Dongarra, Kevin London.
Другие справочные ресурсы, посвященные MPI
- Cтраница MPI на сервере ANL. Авторы: Bill Gropp, Rusty Lusk.
- Technology Watch Report. MPI: A Message-Passing Interface Standard. Интересный обзор стандарта MPI 1 и всего, с ним связанного. Автор: Joel Malard, EPCC. Дата обновления: 15 Февраля 1996 г.
© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ