Н., Пескова Е. Е., Шаманаев П. А. Основы параллельного программирования с использованием технологий mpi и openmp учебное пособие саранск издательство свмо 2013 2


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



Pdf көрінісі
бет6/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   2   3   4   5   6   7   8   9   ...   53
ParProg MPI OpenMP

2. 
ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ С 
ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ MPI
 
 
2.1 Основные понятия 
 
Наиболее 
распространенной 
технологией 
программирования 
параллельных компьютеров с распределенной памятью является 
технология 
MPI 
[2,10]. 
Основным 
способом 
взаимодействия 
параллельных процессов в таких системах является передача сообщений 
друг другу. Это и отражено в названии технологии – Message Passing 
Interface. 
Под параллельной программой в рамках MPI понимается множество 
одновременно выполняемых процессов. Процессы могут выполняться на 
разных процессорах, но на одном процессоре могут располагаться и 
несколько процессов (в этом случае их исполнение осуществляется в 
режиме разделения времени). В предельном случае для выполнения 
параллельной программы может использоваться один процессор – как 
правило, такой способ применяется для начальной проверки правильности 
параллельной программы. 
Каждый процесс параллельной программы порождается на основе 
копии одного и того же программного кода. Данный программный код, 
представленный в виде исполняемой программы, должен быть доступен в 
момент запуска параллельной программы на всех используемых 
процессорах. 
Исходный 
программный 
код 
для 
исполняемой 
программы 
разрабатывается на алгоритмических языках C или Fortran с применением 
той или иной реализации библиотеки MPI. 
Количество 
процессов и число 
используемых 
процессоров 
определяется в момент запуска параллельной программы средствами 
среды исполнения MPI программ и в ходе вычислений не может меняться 
без применения специальных, но редко задействуемых средств 
динамического порождения процессов и управления ими, появившихся в 
стандарте MPI версии 2.0. Все процессы программы последовательно 
перенумерованы от 0 до p1, где p есть общее количество процессов. 
Номер процесса именуется рангом процесса. 
Основу MPI составляют операции передачи сообщений. Среди 
предусмотренных в составе MPI функций различаются парные 
(pointtopoint) операции между двумя процессами и коллективные 
(collective) 
коммуникационные 
действия 
для 
одновременного 
взаимодействия нескольких процессов. 


10 
Для выполнения парных операций могут использоваться разные 
режимы передачи, среди которых синхронный, блокирующий и др. 
Процессы параллельной программы объединяются в группы. Другим 
важным понятием MPI, описывающим набор процессов, является понятие 
коммуникатора. Под коммуникатором в MPI понимается специально 
создаваемый служебный объект, который объединяет в своем составе 
группу процессов и ряд дополнительных параметров (контекст), 
используемых при выполнении операций передачи данных. 
Парные операции передачи данных выполняются только для 
процессов, принадлежащих одному и тому же коммуникатору. 
Коллективные операции применяются одновременно для всех процессов 
одного 
коммуникатора. 
Как 
результат, 
указание 
используемого 
коммуникатора является обязательным для операций передачи данных в 
MPI. 
В ходе вычислений могут создаваться новые и удаляться 
существующие группы процессов и коммуникаторы. Один и тот же 
процесс может принадлежать разным группам и коммуникаторам. Все 
имеющиеся в параллельной программе процессы входят в состав 
конструируемого по умолчанию коммуникатора с идентификатором 
MPI_COMM_WORLD. 
При выполнении операций передачи сообщений для указания 
передаваемых или получаемых данных в функциях MPI необходимо 
указывать тип пересылаемых данных. MPI содержит большой набор 
базовых типов данных, во многом совпадающих с типами данных в 
алгоритмических языках C и Fortran. Кроме того, в MPI имеются 
возможности создания новых производных типов данных для более 
точного и краткого описания содержимого пересылаемых сообщений. 
Итак, если сформулировать коротко, MPI – это библиотека функций, 
обеспечивающая взаимодействие параллельных процессов с помощью 
механизма передачи сообщений. Это библиотека, состоящая примерно из 
130 функций, в число которых входят: 
 
Функции инициализации и закрытия MPI-процессов; 
 
Функции, реализующие парные операции; 
 
Функции, реализующие коллективные операции; 
 
Функции 
для 
работы 
с 
группами 
процессов 
и 
коммуникаторами; 
 
Функции для работы со структурами данных; 
 
Функции формирования топологии процессов. 
Изучение MPI начнем с рассмотрения базового набора функций, 
образующих минимально полный набор, достаточный для написания 
простейших программ. 


11 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   53




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет