ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
66
Подпрограмма MPI_Group_incl создает новую группу newgroup из
n
процес-
сов, входящих в группу oldgroup. Ранги этих процессов содержатся в массиве ranks:
int MPI_Group_incl(MPI_Group oldgroup, int n, int *ranks,
MPI_Group *newgroup)
MPI_GROUP_INCL(OLDGROUP, N, RANKS, NEWGROUP, IERR)
В новую группу войдут процессы с рангами ranks [0], ..., ranks [
n
- l], причем
рангу
i
в новой группе соответствует ранг ranks [
i
] в старой группе. При
n
= 0 созда-
ется пустая группа MPI_GROUP_EMPTY. С помощью данной подпрограммы можно
не только создать новую группу, но и изменить порядок процессов в старой группе.
Подпрограмма MPI_Group_excl создает группу 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 новая группа тождественна старой.
Подпрограмма MPI_Group_range_incl создает группу newgroup. Из группы
group, добавляя в нее n процессов, ранг которых указан в массиве ranks:
int MPI_Group_range_incl(MPI_Group oldgroup, int n, int
ranks[][3], MPI_Group *newgroup)
MPI_GROUP_RANGE_INCL(OLDGROUP, N, RANKS, NEWGROUP, IERR)
Массив ranks состоит из целочисленных триплетов вида (первый_1, послед-
ний_1, шаг_1), ..., (первый_n, последний_n, шаг_n). В новую группу войдут процес-
сы с рангами (по первой группе) первый_1, первый_1 + шаг_1, ...
Подпрограмма MPI_Group_range_excl создает группу newgroup из группы
group, исключая из нее
n
процессов, ранг которых указан в массиве ranks:
int MPI_Group_range_excl (MPI_Group group, int n, int ranks[]
[3],MPI_Group *newgroup)
MPI_GROUP_RANGE_EXCL(GROUP, N, RANKS, NEWGROUP, IERR)
Массив ranks устроен так же, как аналогичный массив в подпрограмме
MPI_Group_range_incl.
Подпрограмма MPI_Group_difference создает новую группу newgroup из
разности двух групп groupl и group2:
int MPI_Group_difference(MPI_Group groupl, MPI_Group group2,
MPI_Group *newgroup)
MPI_GROUP_DIFFERENCE(GROUP1, GROUP2, NEWGROUP, IERR)