6402
.pdf- source - ранг процесса, от которого должен |
|
|
|
|||
быть выполнен прием сообщения, |
|
|
|
|
||
- tag - тег сообщения, которое должно быть |
|
|
|
|||
принято для процесса, |
|
|
|
|
|
|
- comm - коммуникатор, в рамках которого |
|
|
|
|||
выполняется передача данных, |
|
|
|
|
||
- status – указатель на структуру данных с |
|
|
|
|||
информацией |
о |
результате |
выполнения |
|
|
|
операции приема данных |
|
|
|
|
||
int MPI_Bcast(void *buf, int count, MPI_Datatype |
Коллективная операция |
|||||
type, int root, MPI_Comm comm), |
|
передачи |
данных |
от |
||
где |
|
|
|
одного процесса |
всем |
|
- buf, count, type – буфер памяти с отправляемым |
процессам программы |
|||||
сообщением (для процесса с рангом 0), и для |
|
|
|
|||
приема сообщений для всех остальных |
|
|
|
|||
процессов, |
|
|
|
|
|
|
- root - ранг процесса, выполняющего рассылку |
|
|
|
|||
данных, |
|
|
|
|
|
|
- comm - коммуникатор, в рамках которого |
|
|
|
|||
выполняется передача данных |
|
|
|
|
||
int MPI_Reduce(void *sendbuf, void *recvbuf, int |
Коллективная операция |
|||||
count, MPI_Datatype type, MPI_Op op, int root, |
передачи |
данных |
от |
|||
MPI_Comm comm), |
|
|
всех процессов одному |
|||
где |
|
|
|
процессу |
|
|
-sendbuf - буфер памяти с отправляемым сообщением,
-recvbuf – буфер памяти для результирующего сообщения (только для процесса с рангом root),
-count - количество элементов в сообщениях,
-type – тип элементов сообщений,
-op - операция, которая должна быть выполнена над данными,
-root - ранг процесса, на котором должен быть получен результат,
-comm - коммуникатор, в рамках которого выполняется операция
int |
MPI_Sendrecv(void |
*sbuf,int |
scount, |
Коллективная операция |
MPI_Datatype stype, int dest, int stag, void *rbuf, |
одновременного |
|||
int rcount, MPI_Datatype rtype, int source, int rtag, |
выполнение передачи и |
|||
MPI_Comm comm, MPI_Status *status), |
|
приема |
||
где |
|
|
|
|
- sbuf, scount, stype, dest, stag - параметры |
|
|||
передаваемого сообщения, |
|
|
|
|
- rbuf, rcount, rtype, source, rtag - параметры |
|
|||
принимаемого сообщения, |
|
|
|
- comm - коммуникатор, в рамках которого |
|
|
|
||||||
выполняется передача данных, |
|
|
|
|
|
||||
- status – структура данных с информацией о |
|
|
|
||||||
результате выполнения операции |
|
|
|
|
|
||||
int |
MPI_Scatter(void |
*sbuf, |
int |
scount, |
Коллективная операция |
||||
MPI_Datatype |
stype, |
void |
*rbuf, |
int |
rcount, |
обобщенной |
передача |
||
MPI_Datatype rtype, int root, MPI_Comm comm), |
данных |
от |
одного |
||||||
где |
|
|
|
|
|
|
процесса |
|
всем |
- sbuf, scount, stype - параметры передаваемого |
процессам |
|
|
||||||
сообщения (scount определяет количество |
|
|
|
||||||
элементов, передаваемых на каждый процесс), |
|
|
|
||||||
- rbuf, rcount, rtype - параметры сообщения, |
|
|
|
||||||
принимаемого в процессах, |
|
|
|
|
|
|
|||
- root – ранг процесса, выполняющего рассылку |
|
|
|
||||||
данных, |
|
|
|
|
|
|
|
|
|
- comm - коммуникатор, в рамках которого |
|
|
|
||||||
выполняется передача данных |
|
|
|
|
|
||||
int |
MPI_Gather(void |
*sbuf, |
int |
scount, |
Коллективная операция |
||||
MPI_Datatype |
stype, |
void |
*rbuf,int |
rcount, |
обобщенной |
передачи |
|||
MPI_Datatype rtype, int root, MPI_Comm comm), |
данных |
от |
всех |
||||||
где |
|
|
|
|
|
|
процессов |
|
одному |
-sbuf, scount, stype - параметры передаваемого процессу сообщения,
-rbuf, rcount, rtype - параметры принимаемого сообщения,
-root – ранг процесса, выполняющего сбор
данных, |
|
|
|
|
|
- comm - коммуникатор, в рамках которого |
|
|
|
||
выполняется передача данных |
|
|
|
|
|
int MPI_Allgather(void *sbuf, |
int |
scount, |
Коллективная операция |
||
MPI_Datatype stype, void *rbuf, |
int |
rcount, |
обобщенной |
|
передачи |
MPI_Datatype rtype, MPI_Comm comm) |
|
данных |
от |
всех |
|
|
|
|
процессов |
|
одному |
|
|
|
процессу (сбора) и |
||
|
|
|
последующей рассылки |
||
|
|
|
от одного |
|
процесса |
|
|
|
всем процессам |
||
int MPI_Barrier(MPI_Comm comm) |
|
|
Коллективная операции |
||
|
|
|
синхронизации |
Список рекомендованной литературы
1.The Message Passing Interface (MPI) standard [Электронный ресурс]. - Режим доступа: http://www.mcs.anl.gov/mpi.
2.Кластерные установки России и СНГ [Электронный ресурс]. - Режим
доступа: http://parallel.ru/parallel/russia/russian_clusters.html.
3.Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХВПетербург, 2002. - 608 с.
4.Антонов А.С. Параллельное программирование с использованием технологии MPI: Учебное пособие. – М.: Изд-во МГУ, 2004. – 71 с.
5.Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем с использованием MPI. СПб.: БХВПетербург, 2002.
6.Кислицын Д.И. Автоматизированная система управления расчётом сложных строительных объектов на базе метода разделения объекта на проектные единицы // Вестник нижегородского университета им. Н.И. Лобачевского. - Нижний Новгород: Национальный исследовательский Нижегородский государственный университет им. Н.И. Лобачевского, 2013.
Кислицын Дмитрий Игоревич
Учебно-методическое пособие
по выполнению лабораторных работ для обучающихся по дисциплине «Информационные системы в распределенных вычислительных средах»
по направлению подготовки 09.04.02 Информационные системы и технологии, направленность (профиль) Технология разработки информационных систем
Федеральное государственное бюджетное образовательное учреждение высшего образования «Нижегородский государственный архитектурно-строительный университет»
603950, Нижний Новгород, ул. Ильинская, 65. http://www.nngasu.ru, srec@nngasu.ru