Составители:
Рубрика:
56
•
datatype
тип
данных
во
входном
буфере
;
•
op
операция
;
•
comm
коммуникатор
.
Выходной
параметр
:
•
rcvbuf
стартовый
адрес
буфера
приема
.
Управление коммуникаторами
Стандартный
коммуникатор
MPI_COMM_WORLD
создается
автоматически
при
запуске
параллельной
программы
на
выполнение
.
Напомним
,
что
имеются
также
стандартные
коммуникаторы
:
•
MPI_COMM_SELF
коммуникатор
,
содержащий
только
вызывающий
процесс
;
•
MPI_COMM_NULL
пустой
коммуникатор
.
Получение
доступа
к
группе
group
,
связанной
с
коммуникатором
comm
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group)
MPI_COMM_GROUP(COMM, GROUP, IERR)
Выходной
параметр
группа
.
Для
выполнения
операций
с
группой
к
ней
сначала
необходимо
получить
доступ
.
Создание
новой
группы
newgroup
из
n
процессов
,
входящих
в
группу
oldgroup
int MPI_Group_incl(MPI_Group oldgroup, int n, int *ranks, MPI_Group
*newgroup)
MPI_GROUP_INCL(OLDGROUP, N, RANKS, NEWGROUP, IERR)
Ранги
процессов
содержатся
в
массиве
ranks
.
В
новую
группу
войдут
процессы
с
рангами
ranks[0]
,
…
,
ranks[n — 1]
,
причем
рангу
i
в
новой
группе
соответствует
ранг
ranks[i]
в
старой
группе
.
При
n = 0
создается
пустая
группа
MPI_GROUP_EMPTY
.
С
помощью
данной
подпрограммы
можно
не
только
создать
новую
группу
,
но
и
изменить
порядок
процессов
в
старой
группе
.
Создание
группы
newgroup
исключением
из
исходной
группы
(
group
)
процессы
с
рангами
ranks[0]
, …,
ranks[n — 1]
int MPI_Group_excl(MPI_Group oldgroup, int n, int *ranks, MPI_Group
*newgroup)
MPI_GROUP_EXCL(OLDGROUP, N, RANKS, NEWGROUP, IERR)
При
n
= 0
новая
группа
тождественна
старой
.
Создание
группы
newgroup
из
группы
group
добавлением
в
нее
n
процессов
,
ранг
которых
указан
в
массиве
ranks
int MPI_Group_range_incl(MPI_Group oldgroup, int n, int ranks[][3],
MPI_Group *newgroup)
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »
