ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
73
Топологии
Для упрощения разработки параллельных программ существуют дополни-
тельные возможности MPI. Организация коллективного обмена, основана на свой-
ствах коммуникатора — описателя области взаимодействия. Кроме списка процес-
сов и контекста обмена с коммуникатором может быть связана дополнительная ин-
формация. Говорят, что она
кэшируется
с коммуникатором. Важнейшей разновид-
ностью такой информации является
топология
обменов. В MPI топология представ-
ляет собой механизм сопоставления процессам, принадлежащим группе, альтерна-
тивный по отношению к обычной схеме адресации. Топологии обменов сообщения-
ми в MPI являются виртуальными, они не связаны с физической топологией комму-
никационной сети параллельной вычислительной системы. Использование комму-
никаторов и топологий отличает MPI от большинства других систем передачи со-
общений. Знание топологии задачи можно использовать для эффективного распре-
деления процессов между процессорами параллельной вычислительной системы.
В MPI возможны два типа топологии: декартова топология — прямоугольная
решетка произвольной размерности и топология графа (в этом случае процессы со-
единены между собой ребрами, показывающими направление обмена).
Над топологиями можно выполнять различные операции. Декартовы решетки,
например, можно расщеплять на гиперплоскости, удаляя некоторые измерения.
Данные можно сдвигать вдоль выбранного измерения декартовой решетки.
Сдвигом
будем называть пересылку данных между процессами вдоль определенного измере-
ния. Вдоль избранного измерения можно организовать коллективные обмены.
Для того чтобы связать структуру декартовой решетки с коммуникатором
MPI_COMM_WORLD, необходимо задать следующие параметры:
•
размерность решетки (значение 2, например, соответствует плоской, дву-
мерной решетке);
•
размер решетки вдоль каждого измерения (размеры {10, 5}, например, со-
ответствуют прямоугольной плоской решетке, протяженность которой
вдоль оси
х
составляет 10 узлов-процессов, а вдоль оси
у —
5 узлов);
•
периодичность вдоль каждого измерения (решетка может быть периодиче-
ской, если процессы, находящиеся на противоположных концах ряда,
взаимодействуют между собой).
MPI дает возможность системе оптимизировать отображение виртуальной то-
пологии процессов на физическую с помощью изменения порядка нумерации про-
цессов в группе.