Синтаксис функции MPI_GROUP_SIZE для определения размера группы представлен ниже.
MPI_GROUP_SIZE (group, size)
IN | group | группа (дескриптор) | |
OUT | size | количество процессов в группе (целое) |
int MPI_Group_size(MPI_Group group, int *size)
MPI_GROUP_SIZE(GROUP, SIZE, IERROR)
INTEGER GROUP, SIZE, IERROR
int MPI::Group::Get_size() const
Синтаксис функции MPI_GROUP_RANK для определения номера процесса в группе представлен ниже.
MPI_GROUP_RANK (group, rank)
IN | group | группа (дескриптор) | |
OUT | rank | номер процесса в группе или MPI_UNDEFINED, если процесс не является членом группы (целое) |
int MPI_Group_rank(MPI_Group group, int *rank)
MPI_GROUP_RANK(GROUP, RANK, IERROR)
INTEGER GROUP, RANK, IERROR
int MPI::Group::Get_rank() const
Синтаксис функции MPI_GROUP_TRANSLATE_RANKS представлен ниже.
MPI_GROUP_TRANSLATE_RANKS(group1, n, ranks1, group2, ranks2)
IN | group1 | группа1 (дескриптор) | |
IN | n | число номеров в массивах ranks1 и ranks2 (целое) | |
IN | ranks1 | массив из нуля или более правильных номеров в группе1 | |
IN | group2 | группа2 (дескриптор) | |
OUT | ranks2 | массив соответствующих номеров в группе2, MPI_UNDEFINED, если соответствие отсутствует. |
int MPI_Group_translate_ranks(MPI_Group group1, int n,
int *ranks1, MPI_Group group2, int *ranks2)
MPI_GROUP_TRANSLATE_RANKS(GROUP1, N, RANKS1, GROUP2, RANKS2, IERROR)
INTEGER GROUP1, N, RANKS1(*), GROUP2, RANKS2(*), IERROR
static void MPI::Group::Translate_ranks(const MPI::Group& group1,
int n, const int ranks[], const MPI::Group& group2, int ranks2[])
Эта функция важна для определения относительной нумерации одинаковых процессов в двух различных группах. Например, если известны номера некоторых процессов в группе коммуникатора MPI_COMM_WORLD, то можно узнать их номера в подмножестве этой группы.
Синтаксис функции MPI_GROUP_COMPARE представлен ниже.
MPI_GROUP_COMPARE(group1, group2, result)
IN | group1 | первая группа (дескриптор) | |
IN | group2 | вторая группа (дескриптор) | |
OUT | result | результат (целое) |
int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result)
MPI_GROUP_COMPARE(GROUP1, GROUP2, RESULT, IERROR)
INTEGER GROUP1, GROUP2, RESULT, IERROR
static int MPI::Group::Compare(const MPI::Group& group1,
const MPI::Group& group2)
Если члены группы и их порядок в обеих группах совершенно одинаковы, возвращается результат MPI_IDENT. Это происходит, например, если group1 и group2 имеют тот же самый дескриптор. Если члены группы одинаковы, но порядок различен, то возвращается результат MPI_SIMILAR. В остальных случаях возвращается значение MPI_UNEQUAL.