Интерфейс передачи сообщений


Интерфейс передачи сообщений ( MPI ) — это стандартизованный и переносимый стандарт передачи сообщений , предназначенный для работы в архитектурах параллельных вычислений . Стандарт MPI определяет синтаксис и семантику библиотечных подпрограмм , полезных для широкого круга пользователей, пишущих переносимые программы передачи сообщений на C , C++ и Fortran . Существует несколько реализаций MPI с открытым исходным кодом , которые способствовали развитию индустрии параллельного программного обеспечения ., а также поощрял разработку переносимых и масштабируемых крупномасштабных параллельных приложений.

Усилия по созданию интерфейса передачи сообщений начались летом 1991 года, когда небольшая группа исследователей начала обсуждения в горном ретрите в Австрии. Результатом этого обсуждения стал семинар по стандартам передачи сообщений в среде с распределенной памятью, состоявшийся 29–30 апреля 1992 года в Вильямсбурге, штат Вирджиния . [1] Участники Вильямсбурга обсудили основные функции, необходимые для стандартного интерфейса передачи сообщений, и создали рабочую группу для продолжения процесса стандартизации. Джек Донгарра , Тони Хей, и Дэвид У. Уокер выдвинул предварительный проект предложения «MPI1» в ноябре 1992 г. В ноябре 1992 г. в Миннеаполисе состоялась встреча рабочей группы MPI, на которой было решено поставить процесс стандартизации на более формальную основу. Рабочая группа MPI собиралась каждые 6 недель в течение первых 9 месяцев 1993 года. Проект стандарта MPI был представлен на конференции Supercomputing '93 в ноябре 1993 года. [2] После периода публичных комментариев, которые привели к некоторым изменениям в MPI, версия 1.0 MPI была выпущена в июне 1994 года. Эти встречи и обсуждение по электронной почте вместе составили форум MPI, членство в котором было открыто для всех членов сообщества высокопроизводительных вычислений .

В работе над MPI приняли участие около 80 человек из 40 организаций, в основном из США и Европы. Большинство основных поставщиков параллельных компьютеров участвовали в разработке MPI, сотрудничая с исследователями из университетов, государственных лабораторий и промышленности .

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

Стремясь создать универсальный стандарт для передачи сообщений, исследователи не основывали его на одной системе, а включали в себя наиболее полезные функции нескольких систем, в том числе разработанных IBM, Intel , nCUBE , PVM, Express, P4 и PARMACS. . Парадигма передачи сообщений привлекательна из-за широкой переносимости и может быть использована при обмене данными для мультипроцессоров с распределенной и общей памятью, сетей рабочих станций и комбинации этих элементов. Эта парадигма может применяться в различных условиях, независимо от скорости сети или архитектуры памяти.

Поддержка совещаний MPI была частично предоставлена DARPA и Национальным научным фондом США (NSF) в рамках гранта ASC-9310330, Соглашением о сотрудничестве научно-технического центра NSF номер CCR-8809615, а также Европейской комиссией в рамках проекта Esprit P6643. Университет Теннесси также внес финансовый вклад в Форум MPI.