Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Функции работы с группами





Функция определения числа процессов в группе MPI_Group_size.

С:

MPI_Group_size(MPI_Group group, int *size)

FORTRAN:

MPI_GROUP_SIZE(GROUP, SIZE, IERROR)

INTEGER GROUP, SIZE, IERROR

IN group - группа;
OUT size - число процессов в группе.

Функция возвращает число процессов в группе. Если group = MPI_GROUP_EMPTY, тогда size = 0.

Функция определения номера процесса в группе MPI_Group_rank.

С:

MPI_Group_rank(MPI_Group group, int *rank)

FORTRAN:

MPI_GROUP_RANK(GROUP, RANK, IERROR)

INTEGER GROUP, RANK, IERROR

IN group - группа;
OUT rank - номер процесса в группе.

Функция MPI_Group_rank возвращает номер процесса в группе, вызвавшего функцию. Если процесс не является членом группы, то возвращается значение MPI_UNDEFINED.

Функция установки соответствия между номерами процессов в двух группах MPI_Group_translate_ranks.

С:

MPI_Group_translate_ranks (MPI_Group group1, int n, int *ranks1,

MPI_Group group2, int *ranks2)

FORTRAN:

MPI_GROUP_TRANSLATE_RANKS(GROUP1,N, RANKS1, GROUP2,

RANKS2, IERROR)

INTEGER GROUP1, N, RANKS1(*), GROUP2, RANKS2(*), IERROR

IN group1 - группа1;
IN n - число процессов, для которых устанавливается соответствие;
IN ranks1 - массив номеров процессов из 1-й группы;
IN group2 - группа2;
OUT ranks2 - номера тех же процессов во второй группе.

Функция определяет относительные номера одних и тех же процессов в двух разных группах. Если процесс во второй группе отсутствует, то для него устанавливается значениеа MPI_UNDEFINED.

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

Функция создания группы с помощью коммуникатора MPI_Comm_group.

С:

MPI_Comm_group(MPI_Comm comm, MPI_Group *group)

FORTRAN:

MPI_COMM_GROUP(COMM, GROUP, IERROR)

INTEGER COMM, GROUP, IERROR

IN comm - коммуникатор;
OUT group - группа.

Функция создает группу group для множества процессов, входящих в область связи коммуникатора comm.

Следующие три функции имеют одинаковый синтаксис и создают новую группу как результат операции над множествами процессов двух групп.

С:

MPI_Group_union(MPI_Group group1, MPI_Group group2,

MPI_Group *newgroup)

MPI_Group_intersection(MPI_Group group1, MPI_Group group2,

MPI_Group *newgroup)

MPI_Group_difference(MPI_Group group1, MPI_Group group2,

MPI_Group *newgroup)

FORTRAN:

MPI_GROUP_UNION(GROUP1, GROUP2, NEWGROUP, IERROR)

MPI_GROUP_INTERSECTION(GROUP1, GROUP2, NEWGROUP, IERROR)

MPI_GROUP_DIFFERENCE(GROUP1, GROUP2, NEWGROUP, IERROR)

INTEGER GROUP1, GROUP2,NEWGROUP, IERROR

IN group1 - первая группа;
IN group2 - вторая группа;
OUT newgroup - новая группа.

Операции определяются следующим образом:

Union - формирует новую группу из элементов 1-й группы и из элементов 2-й группы, не входящих в 1-ю (объединение множеств).
Intersection - новая группа формируется из элементов 1-й группы, которые входят также и во 2-ю. Упорядочивание как в 1-й группе (пересечение множеств).
Difference - новую группу образуют все элементы 1-й группы, которые не входят во 2-ю. Упорядочивание как в 1-й группе (дополнение множеств).

Созданная группа может быть пустой, что эквивалентно MPI_GROUP_EMPTY.

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

С:

MPI_Group_incl(MPI_Group group, int n, int *ranks,

MPI_Group *newgroup)

MPI_Group_excl(MPI_Group group, int n, int *ranks,

MPI_Group *newgroup)

FORTRAN:

MPI_GROUP_INCL(GROUP, N, RANKS, NEWGROUP, IERROR)

MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERROR)

INTEGER GROUP, N, RANKS(*), NEWGROUP, IERROR

IN group - существующая группа;
IN n - число элементов в массиве ranks;
IN ranks - массив номеров процессов;
OUT newgroup - новая группа.

Функция MPI_Group_incl создает новую группу, которая состоит из процессов существующей группы, перечисленных в массиве ranks. Процесс с номером i в новой группе есть процесс с номером ranks[i] в существующей группе. Каждый элемент в массиве ranks должен иметь корректный номер в группе group, и среди этих элементов не должно быть совпадающих.

Функция MPI_Group_excl создает новую группу из тех процессов group, которые не перечислены в массиве ranks. Процессы упорядочиваются как в группе group. Каждый элемент в массиве ranks должен иметь корректный номер в группе group, и среди них не должно быть совпадающих.

Две следующие функции по смыслу совпадают с предыдущими, но используют более сложное формирование выборки. Массив ranks заменяется двумерным массивом ranges, представляющим собой набор триплетов для задания диапазонов процессов.

С:

MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3],

MPI_Group *newgroup)

MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3],

MPI_Group *newgroup)

FORTRAN:

MPI_GROUP_RANGE_INCL(GROUP, N, RANGES, NEWGROUP, IERROR)

MPI_GROUP_RANGE_EXCL(GROUP, N, RANGES, NEWGROUP, IERROR)

INTEGER GROUP, N, RANGES(3,*), NEWGROUP, IERROR

Каждый триплет имеет вид: нижняя граница, верхняя граница, шаг.

Уничтожение созданных групп выполняется функцией MPI_Group_free.

С:

MPI_Group_free(MPI_Group *group)

FORTRAN:

MPI_GROUP_FREE(GROUP, IERROR)

INTEGER GROUP, IERROR

INOUT group - уничтожаемая группа.







Дата добавления: 2015-09-15; просмотров: 405. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Гальванического элемента При контакте двух любых фаз на границе их раздела возникает двойной электрический слой (ДЭС), состоящий из равных по величине, но противоположных по знаку электрических зарядов...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

Разработка товарной и ценовой стратегии фирмы на российском рынке хлебопродуктов В начале 1994 г. английская фирма МОНО совместно с бельгийской ПЮРАТОС приняла решение о начале совместного проекта на российском рынке. Эти фирмы ведут деятельность в сопредельных сферах производства хлебопродуктов. МОНО – крупнейший в Великобритании...

Studopedia.info - Студопедия - 2014-2026 год . (0.009 сек.) русская версия | украинская версия