Руководство по MPI

2015-08-23СтудИзба

Описание файла

Документ из архива "Руководство по MPI", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "параллельные системы и параллельные вычисления" в общих файлах.

Онлайн просмотр документа "Руководство по MPI"

Текст из документа "Руководство по MPI"

2


АННОТАЦИЯ

Документ содержит сведения, необходимые для программистов, работающих на СК “МВС-1000М” и пользующихся услугами компонентов программного обеспечения. Он состоит из пяти разделов.

В разделе 1 представлены сведения о назначении, функциях и условиях применения среды параллельного программирования, а также всего ОПО СК “МВС-1000М” в целом.

В разделе 2 приведены основные характеристики и общие принципы функционирования среды параллельного программирования MPI.

В разделе 3 содержится описание процедур MPI.

В разделе 4 приведены сведения о подготовке прикладных программ к выполнению на вычислительных блоках СК “МВС-1000М”.

В разделе 5 представлена информация о средствах отладки и профилирования программных модулей.

СОДЕРЖАНИЕ

1. Назначение и условия применения среды параллельного программирования СК “МВС-1000М” 4

1.1. Назначение и состав среды параллельного программирования 4

1.2. Условия эксплуатации 5

1.3. Терминология и обозначения 5

2. Характеристики среды параллельного программирования 6

2.1. Особенности программного интерфейса MPI 6

2.2. Общие принципы функционирования 6

2.3. Директории пользователя 7

3. Обращение к MPI 7

3.1. Основные сведения 7

3.2. Общие процедуры MPI 7

3.3. Процедуры приема/передачи сообщений 8

3.4. Процедуры коллективного взаимодействия процессов 17

3.5. Процедура синхронизации процессов 19

3.6. Процедуры для работы с группами процессов 19

3.7. Предопределенные константы и типы данных 20

3.8. Латентность и пропускная способность 22

4. Входные и выходные данные 23

4.1. Этапы создания программ. 23

4.2. Компиляция модулей. 24

4.3. Запуск программ, использующих MPI. 24

5. Средства отладки и профилирования 25

5.1. Обработчики ошибок 25

5.2. Профилировочные библиотеки…………………………………………….25

5.3. Аргументы командной строки для mpirun 28

5.4. Аргументы MPI для программ пользователя 28

Приложение А. Примеры программ с использованием функций MPI 30

Перечень ссылочных документов 59

1 Назначение и условия применения среды параллельного программирования СК “МВС-1000М”

1.1 Назначение и состав среды параллельного программирования

Компоненты общего программного обеспечения (ОПО) СК “МВС-1000М” поддерживают все этапы разработки параллельных программ пользователей, а также обеспечивают непосредственно выполнение процессов содержательной обработки на решающем поле вычислительных модулей. Они функционируют на вычислительных модулях (ВМ) и управляющей рабочей станции (УРС).

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

Среда параллельного программирования реализована на базе интерфейса передачи сообщений MPI (Message Passing Interface) и включает в себя пакет MPICH for GM.

Информацию об особенностях работы с программным пакетом MPICH можно найти в руководстве пользователя по MPICH [2].

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

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

Стандарты MPI 1.2 и MPI 2.0 доступны на сайте http://www.mpi-forum.org в формате HTML. Более подробную информацию о работе с MPI можно найти в книгах, посвященных MPI [4, 5].

Синтаксис MPI облегчает создание приложений в модели SPMD (single program multiple data) - одна программа работает в разных процессорах со своими данными. Одна и та же функция сможет вызываться на узле-источнике и узлах-приемниках, а тип выполняемой операции (передача или прием) в этом случае определяется с помощью параметра. Такой синтаксис вызовов делает SPMD-программы существенно компактнее, хотя и труднее для понимания.

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

1.2 Условия эксплуатации

Для работы компонентов программного обеспечения СК “МВС-1000М” необходимы:

  • управляющая рабочая станция Alpha 21264 на основе материнской платы UP2000;

  • двухпроцессорные вычислительные модули на базе процессора Alpha21264;

  • коммуникационная среда Myrinet, состоящая из сетевых плат, устанавливаемых в ВМ, и коммутаторов;

  • коммуникационная среда FastEthernet, состоящая из сетевых плат, устанавливаемых в ВМ и УРС, и коммутаторов.

В состав ОПО СК “МВС-1000М” входят:

  • операционные системы ВМ и управляющей рабочей станции;

  • инструментальные программные средства;

  • программные средства высокопроизводительной коммуникационной среды Myrinet;

  • программные средства коммуникационной среды FastEthernet;

  • операционная среда параллельного программирования;

  • подсистема удаленного доступа.

На управляющей рабочей станции СК “МВС-1000М” и ВМ установлена операционная система Linux версии 6.2.

В состав инструментальных программных средств входят:

  • компиляторы GNU, поставляемые в составе ОС Linux: C, C++ и Fortran77 (команды gcc, c++ и f77 соответственно);

  • компиляторы фирмы Compaq для ОС Linux на платформе Alpha: С, С++, Fortran (команды ccc ,схх и fort соответственно);

  • редактор связей;

  • отладчики (gdb, dbx, xxgdb).

Коммуникационная среда Myrinet поддерживается в современных реализациях интерфейса параллельного программирования MPI. В качестве программных средств коммуникационной среды Myrinet используется коммуникационная система GM. В ее состав входят:

  • драйвер;

  • служебные программы;

  • тестовые программы;

  • библиотека функций и заголовочный файл GM API;

  • демонстрационные программы.

    1. Терминология и обозначения

При работе с интерфейсом MPI используются следующие термины и обозначения:

а) процесс – это исполнение программы на одном процессоре, на котором установлен MPI, безотносительно к тому, содержит ли эта программа внутри параллельные ветви или операции ввода/вывода или просто последовательный программный код;

б) группа – представляет собой совокупность процессов, каждый из которых имеет внутри группы уникальное имя, используемое для взаимодействия с другими процессами группы посредством коммуникатора группы;

в) коммуникатор группы – реализует обмены данными между процессами и их синхронизацию. Собственно, коммуникатор выступает для прикладной группы как коммуникационная среда для взаимодействия. Коммуникаторы бывают внутригрупповыми (intra) и межгрупповыми(inter). Коммуникатор определяет контекст передачи сообщений. Сообщения, использующие разные коммуникаторы, не оказывают влияния друг на друга и не взаимодействуют. Каждая группа процессов использует отдельный коммуникатор. Процессы внутри группы имеют номера от 0 до n-1, где n – количество процессов в группе [9].

2 Характеристики среды параллельного программирования

2.1 Особенности программного интерфейса MPI

MPI расшифровывается как Message Passing Interface - Интерфейс передачи сообщений, т.е. конкретному стандарту присвоено название всего представляемого им класса программного инструментария. В пакет, реализующий программный интерфейс на СК “МВС-1000М”, входят два обязательных компонента:

  • библиотека программирования для языков Си, Си++ и Фортран;

  • загрузчик исполняемых файлов.

Характеристиками программного интерфейса MPI являются:

  • обеспечение связи между ветвями параллельной программы;

  • программирование по методу SPMD (Single Program – Multiple Data) с передачей сообщений;

  • реализация в виде библиотеки для языков программирования C и Фортран и загрузчика приложений;

  • поддержка гетерогенных вычислений;

  • мобильность интерфейса и, как следствие, мобильность создаваемых программ.

2.2 Общие принципы функционирования

Среда параллельного программирования, используемая на СК “МВС-1000М”, имеет следующие особенности:

  • параллельная программа содержит код для всех ветвей сразу;

  • загрузчиком запускается указываемое количество экземпляров программы;

  • каждый экземпляр программы определяет свой порядковый номер, и, в зависимости от этого номера и общего размера вычислительного поля, выполняет ту или иную ветвь алгоритма;

  • каждая ветвь имеет собственное пространство данных, полностью изолированное от других ветвей;

  • ветви обмениваются данными только с помощью передачи сообщений операционной среды параллельного программирования;

  • запуск MPI-приложения осуществляется с УРС;

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

2.3 Директории пользователя

Домашние директории пользователей находятся в директории /home. Она монтируется с файлового сервера СК «МВС-1000М».

Директория /store является локальной для каждого вычислительного модуля. В нее замонтирован раздел размером не менее 15 GB. Прикладные программы могут использовать эту директорию для хранения локальных данных. После завершения работы с этими данными их необходимо удалить из директории /store.

3 Обращение к MPI

3.1 Основные сведения

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

Процедуры MPI подразделяются на следующие группы:

  • общие процедуры;

  • процедуры приема / передачи сообщений;

  • процедуры коллективного взаимодействия процессов;

  • процедура синхронизации процессов;

  • процедуры для работы с группами процессов.

При описании процедур MPI будем пользоваться словом OUT для обозначения "выходных" параметров, т.е. таких параметров, через которые процедура возвращает результаты.

В случае успешного выполнения всех нижеописанных процедур возвращается код успешного выполнения – MPI_SUCCESS, в противном случае возвращается код ошибки.

3.2 Общие процедуры MPI

Общие процедуры MPI обеспечивают инициализацию и завершение работы процессов, а также сервисные функции.

Процедура MPI_Init

Формат процедуры:

int MPI_Init (int* argc, char** argv)

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

Процедура MPI_Finalize

Формат процедуры:

int MPI_Finalize(void)

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее