next up previous contents
Next: Операции в интеркоммуникаторах Up: Интер-коммуникация Previous: Интер-коммуникация   Contents

Доступ в интеркоммуникаторах

Синтаксис функции MPI_COMM_TEST_INTER представлен ниже.

MPI_COMM_TEST_INTER(comm, flag)

IN comm коммуникатор (дескриптор)
OUT flag (логическое значение)

int MPI_Comm_test_inter(MPI_Comm comm, int *flag)

MPI_COMM_TEST_INTER(COMM, FLAG, IERROR)
INTEGER COMM, IERROR LOGICAL FLAG

bool MPI::Comm::Is_inter() const

Эта локальная функция позволяет вызывающему процессу определять, является ли коммуникатор интер-коммуникатором или интра-коммуникатором. Она возвращает true, если это интер-коммуникатор, и false в противном случае.

Когда интер-коммуникатор используется как входной аргумент к средствам доступа коммуникатора, поведение функции описывается следующей таблицей.

MPI_COMM_*
Поведение функции
MPI_COMM_SIZE возвращает размер локальной группы.
MPI_COMM_GROUP возвращает локальную группу.
MPI_COMM_RANK возвращает номер в локальной группе.

Кроме того, операция MPI_COMM_COMPARE применима и для интер-коммуникаторов. Оба коммуникатора должны быть или интра- или интер-коммуникаторами, иначе возвращается значение MPI_UNEQUAL. Локальная и удаленная группы должны соответствовать друг другу, чтобы получить в результате MPI_CONGRUENT и MPI_SIMILAR. В частности, результат MPI_SIMILAR возможен в случае, когда локальная и удаленная группы были похожими, но не идентичными.

Следующие средства обеспечивают непротиворечивый доступ к удаленной группе интеркоммуникатора (операции являются локальными).

Синтаксис функции MPI_COMM_REMOTE_SIZE представлен ниже.

MPI_COMM_REMOTE_SIZE(comm, size)

IN comm интеркоммуникатор (дескриптор)
OUT size количество процессов в удаленной группе comm (целое)

int MPI_Comm_remote_size(MPI_Comm comm, int *size)

MPI_COMM_REMOTE_SIZE(COMM, SIZE, IERROR)
INTEGER COMM, SIZE, IERROR

int MPI::Intercomm::Get_remote_size() const

Синтаксис функции MPI_COMM_REMOTE_GROUP представлен ниже.

MPI_COMM_REMOTE_GROUP(comm, group)

IN comm интеркоммуникатор (дескриптор)
OUT group удаленная группа, соответствующая comm (дескриптор)

int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group)

MPI_COMM_REMOTE_GROUP(COMM, GROUP, IERROR)
INTEGER COMM, GROUP, IERROR

MPI::Group MPI::Intercomm::Get_remote_group() const

Объяснение: Важно, чтобы доступ к локальным и удаленным группам интер-коммуникатора был симметричным, поэтому была введена функция MPI_COMM_REMOTE_GROUP в дополнение к
MPI_COMM_REMOTE_SIZE.[]


next up previous contents
Next: Операции в интеркоммуникаторах Up: Интер-коммуникация Previous: Интер-коммуникация   Contents
Alex Otwagin 2002-12-10