Здавалка
Главная | Обратная связь

ОСНОВНЫЕ КОММУНИКАЦИОННЫЕ ОПЕРАЦИИ



Лабораторная работа №1

ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ В MPI.

ОСНОВНЫЕ КОММУНИКАЦИОННЫЕ ОПЕРАЦИИ

Цель работы: знакомство со стандартом MPI и изучение коммуникационных операций парного и коллективного обмена.

Лабораторный комплекс. В состав лабораторного комплекса входят аппаратные средства: ПЭВМ IBM PC, локальная сеть, а также программные средства: Windows 2000/ХР, Visual C++, MPICH for NT.

 

Программа работы

1) изучить возможности использования и параметры функций MPI;

2) написать программу для решения задачи согласно выбранному варианту.

 

Основные теоретические сведения

1. Краткая характеристика MPI

Система программирования MPIимеет следующие особенности:

• MPI − это библиотека. Она определяет имена, вызовы процедур и результаты их работы. Программы, которые пишутся на FORTRAN, C, и C++ компилируются обычными компиляторами и связаны с MPI-библиотекой.

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

• MPI соответствует модели многопроцессорной ЭВМ с передачей сообщений.

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

В модели передачи сообщений процессы, выполняющиеся парал­лельно, имеют раздельные адресные пространства. Связь происходит, когда часть адресного пространства одного процесса скопирована в адресное пространство другого процесса. Эта операция совместная и возможна только когда первый процесс выполняет операцию переда­чи сообщения, а второй процесс − операцию его получения.

Процессы в MPI принадлежат группам. Если группа содержит n процессов, то процессы нумеруются внутри группы номерами, кото­рые являются целыми числами от 0 до n-l. Имеется начальная группа, которой принадлежат все процессы в реализации MPI.

Понятия контекста и группы объединены в едином объекте, назы­ваемом коммуникатором. Таким образом, отправитель или получа­тель, определенные в операции посылки или получения, всегда обращается к номеру процесса в группе, идентифицированной данным коммуникатором.

Если в кластере используются SMP-узлы (симметричная много­процессорная система с множественными процессорами), то для орга­низации вычислений возможны два варианта.

1. Для каждого процессора в SMP-узле порождается отдельный MPI-процесс. MPI-процессы внутри этого узла обмениваются сообщениями через разделяемую память (необходимо настроить MPICH соответствующим образом).

2. На каждой узле запускается только один MPI-процесс. Внутри каждого MPI-процесса производится распараллеливание в модели "общей памяти", например с помощью директив OpenMP.

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

MPI_Init Инициализация MPI
MPI_Comm_size Определение числа процессов
MPI_Comm_rank Определение процессом собственного номера
MPI_Send Посылка сообщения
MPI_Recv Получение сообщения
MPI_Finalize Завершение программы MPI

В МPI базисной операцией посылки является операция:







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.