Каково различие между коммуникатором и группой в MPI?

Я прочитал определения этих условий, и моя интерпретация - то, что существует один к одному отношению между группой и коммуникатором. Группа является рядом процессов, которые хотят общаться друг с другом, и коммуникатор является реализацией для группы.

Это корректно? Почему имеют два различных условия, если это так?

16
задан nbro 18 January 2018 в 00:35
поделиться

2 ответа

Группа представляет собой упорядоченный набор идентификаторов процессов (спецификация MPI 2.2, раздел 6.2.1). Упорядочивание задается путем связывания с каждым идентификатором процесса. уникальный ранг от 0 до group.size - 1.

Коммуникатор инкапсулирует все коммуникации между набором процессов. Внутренний коммуникатор связан с группой, а также с контекстами связи как для двухточечной, так и для коллективной связи и, возможно, с другой контекстной информацией, такой как виртуальные топологии (спецификация, 6.1.2). Интеркоммуникатор связан с двумя неперекрывающимися группами.

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

Группа может содержать идентификаторы процессов от нескольких коммуникаторов.

Наконец, создание групп и операции над ними являются локальными для процесса и не связаны с межпроцессным взаимодействием. Для коммуникаторов это, как правило, не так (по самой своей природе).

8
ответ дан 30 November 2019 в 22:55
поделиться

Как я узнал после прочтения спецификации MPI, между коммуникаторами и группами существует много различий.

Изменить: Группы - это объекты, которые представляют группы процессов.

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

Таким образом, это совершенно разные сущности. Их не следует путать друг с другом.

4
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: