Новые информационные технологии и программное обеспечение
  RSS    

20231229 200x300 0d249f2d3676e05c1a28a375dff09c2a



Интерфейс MPI

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

Интерфейс MPI был создан в начале 90-х годов, когда кластеры только появились, а в области высокопроизводительных вычислений доминировали процессоры с высоким уровнем параллелизма (MPP). Каждый производитель MPP использовал собственную систему обозначений для передачи сообщений. Хотя производителей такой подход очень устраивал, поскольку пользователи оказывались привязаны к их линейке продуктов, программистам он совершенно не нравился. Программное обеспечение живет гораздо дольше, чем оборудование. В отсутствие переносимой системы обозначений, каждый раз при покупке нового компьютера программисты были вынуждены прилагать массу усилий, чтобы перевести свои приложения с одной системы обозначений для передачи сообщений на другую.

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

В большинстве MPI-программ используется шаблон "Одна программа, разные данные" (Single Program Multiple Data, или SPMD). В его основе лежит простой принцип: каждый элемент обработки (processing element, PE) выполняет одну и ту же программу. Каждому элементу обработки присваивается уникальный целочисленный идентификатор, который определяет его ранг в наборе элементов обработки. Программа использует этот ранг, чтобы распределить работу и определить, какой элемент PE какую работу выполняет. Иными словами, программа всего одна, но благодаря выбору, сделанному в соответствии с идентификатором, данные для каждого элемента обработки могут быть разными. Это и есть шаблон "Одна программа, разные данные".

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

Впрочем, при желании можно использовать MPI и для обычных двухъядерных процессоров или двухпроцессорных систем - "вотчины" проектов OpenMP. Но, конечно, MPI для таких целей "тяжеловат", - как в плане быстроты исполнения программного кода, которому, в отличие от его OMP-коллег, приходится еще и оплачивать "накладные расходы" на канал связи, так и в плане высокой сложности разработки MPI-приложений. Последние, правда, лишены большинства тех "граблей", которые существуют для обычных систем с распределенной памятью; но зато для написания соответствующего кода от программиста требуется четкое мышление, позволяющее в деталях продумать систему обмена информацией между процессами.

Почитать про MPI:

http://www.parallel.ru/tech/tech_dev/mpi.html

http://www.opennet.ru/docs/RUS/MPI_intro/

http://ru.wikipedia.org/wiki/MPI

 

 

Оставьте свой комментарий!

Добавить комментарий


Похожие статьи:

 

Самое читаемое:

Быстрый поиск

Инструкции к программам

Инструкции к программам

Сайт "Новые Информационные Технологии" содержит лишь справочные данные из открытых источников. Мы НЕ Рекламируем и НЕ Рекомендуем покупать или использовать ВСЕ упомянутые на сайте программы, оборудование и технологии