next up previous contents
Next: Конструкторы групп Up: Управление группой Previous: Управление группой   Contents

Средства доступа в группу

Синтаксис функции 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.


next up previous contents
Next: Конструкторы групп Up: Управление группой Previous: Управление группой   Contents
Alex Otwagin 2002-12-10