Составители:
Рубрика:
49
При
синхронизации
с
барьером
выполнение
каждого
процесса
из
данного
коммуникатора
приостанавливается
до
тех
пор
,
пока
все
процессы
не
выполнят
вызов
процедуры
синхронизации
MPI_Barrier
.
Распределение
данных
int MPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *rcvbuf, int rcvcount, MPI_Datatype rcvtype, int root, MPI_Comm
comm)
MPI_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, RCVBUF, RCVCOUNT, RCVTYPE,
ROOT, COMM, IERR)
Входные
параметры
:
•
sendbuf
адрес
буфера
передачи
;
•
sendcount
количество
элементов
,
пересылаемых
каждому
процессу
(
но
не
суммарное
количество
пересылаемых
элементов
);
•
sendtype
тип
передаваемых
данных
;
•
rcvcount
количество
элементов
в
буфере
приема
;
•
rcvtype
тип
принимаемых
данных
;
•
root
ранг
передающего
процесса
;
•
comm
коммуникатор
.
Выходной
параметр
:
•
rcvbuf
адрес
буфера
приема
.
Процесс
с
рангом
root
распределяет
содержимое
буфера
передачи
sendbuf
среди
всех
процессов
(
рис
. 18).
Содержимое
буфера
передачи
разбивается
на
несколько
фрагментов
,
каждый
из
которых
содержит
sendcount
элементов
.
Первый
фрагмент
передается
процессу
0,
второй
процессу
1
и
т
.
д
.
Аргументы
send
имеют
значение
только
на
стороне
процесса
root
.
Рис. 18.
Распределение
данных
при
выполнении
операции
Scatter
Сбор
сообщений
от
остальных
процессов
в
буфер
главной
задачи
int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *rcvbuf, int rcvcount, MPI_Datatype rcvtype, int root, MPI_Comm
comm)
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
