ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
68
Эта функция используется для определения относительной нумерации одних и
тех же процессов в двух разных группах.
Подпрограмма MPI_Group_compare используется для сравнения групп groupl
и group2:
int MPI_Group_compare(MPI_Group groupl, MPI_Group group2, int
*result)
MPI_GROUP_COMPARE(GROUP1, GROUP2, RESULT, IERR)
Если группы полностью совпадают, возвращается значение MPI_IDENT. Если
члены обеих групп одинаковы, но их ранги отличаются, результатом будет значение
MPI_SIMILAR. Если группы различны, результатом будет MPI_UNEQUAL.
Управление коммуникаторами
Создание коммуникатора — коллективная операция и соответствующая под-
программа должна вызываться всеми процессами коммуникатора. Подпрограмма
MPI_Comm_dup дублирует уже существующий коммуникатор oldcomm:
int MPI_Comm_dup (MPI_Comm oldcomm, MPI_Comm *newcomm)
MPI_COMM_DUP (OLDCOMM, NEWCOMM, IERR)
В результате вызова создается новый коммуникатор (newcomm) с той же
группой процессов, с теми же атрибутами, но с другим контекстом. Подпрограмма
может применяться как к интра-, так и интеркоммуникаторам.
Подпрограмма MPI_Comm_create создает новый коммуникатор (newcomm)
из подмножества процессов (group) другого коммуникатора (oldcomm):
int MPI_Comm_create(MPI_Comm oldcomm, MPI_Group group, MPI_Comm
*newcomm)
MPI_COMM_CREATE(OLDCOMM, GROUP, NEWCOMM, IERR)
Вызов этой подпрограммы должны выполнить все процессы из старого ком-
муникатора, даже если они не входят в группу group, с одинаковыми аргументами.
Данная операция применяется только к интракоммуникаторам. Она позволяет выде-
лять подмножества процессов со своими областями взаимодействия, если, напри-
мер, требуется уменьшить "зернистость" параллельной программы. Побочным эф-
фектом применения подпрограммы MPI_Comm_create является синхронизация про-
цессов. Если, например, одновременно создаются несколько коммуникаторов, они
должны создаваться в одной последовательности всеми процессами. Пример
создания коммуникатора приведен в прил. 3.
1...,60,61,62,63,64,65,66,67,68,69 71,72,73,74,75,76,77,78,79,80,...180