В.Д. Корнеев - Параллельное программирование в MPI (1162616), страница 12
Текст из файла (страница 12)
Виртуальная топология в МР1 может задаваться только в группе процессов, объединенных япсгасояччцпйсасог'ом (внутри- групповым коммуникатором), и не может задаваться в группе процессов, объединенных шсегсоякяцпйсасог'ом (межгрупповым коммуникатором). (В этой главе подмножество процессов, объединенных коммуникатором, для удобства иногда будем именовать группой, но это подмножество нужно различать с группой, понятие которой дано в гл.
3. Виртуальная топология не может быть задана с аргументом Вгоцр.) Как заявлено в гл. 3, группа процесса, в МР1 — это набор из и процессов. Каждому процессу в группе назначен ранг между 0 н и-1. Во многих параллельных приложениях линейная нумерация процессов адекватно не отражает логическую модель связи процессов (которая обычно определяется основной геометрией задачи н определенным используемым алгоритмом). Часто параллельные алгоритмы представляются в топологических моделях типа двумерных или объемных сетках. В более общем случае логическое расположение процессов описывается некоторым произвольным графом.
Нужно различать виртуальную топологию процессов и топологию основного физического оборудования. Механизм виртуальных топологий значительно упрощает и облегчает написание параллельных программ, делает программы легко читаемыми н понятными. Пользователю при этом не нужно программировать схему физических связей процессоров, а только схему виртуальных связей между процессами. Отображение виртуальных связей на физические осуществляет система, что делает параллельные программы машинно-независимыми и легка переносимыми. Функции в этой главе осуществляют только машинно-независимое отображение. Таким образом, механизм виртуальных топологий позволяет оптимально отображать структуру параллельной задачи на архитектуру вычислительной системы. Имеются общеизвестные методы отображения структур сетка/тор на топологии оборудования типа гиперкуб или сетка. С другой стороны, если не имеется никакого способа для пользователя, чтобы определить логическое расположение процессов, то наиболее вероятно осуществится случайное отображение.
На некоторых машинах это будет шагом к ненужной конкуренции в схеме соединений. 4.2. Виртуальная топология Модель связи множества процессов друг с другом может быть представлена графом. Узлы представляют процессы, а грани соепиняют процессы, которые связаны друг с другом. Так как связь наиболее часто симметрична, графы связи приняты симметричными: если ребро нч соединяет узел ц с узлом ч, то ребро чи соединяет узел ч с узлом ц. МР1 обеспечивает передачу сообщений межну любой парой пропессов в группе. Не имеется никакой операции для открытия канала явно.
Следовательно, "отсутствующий канал" в определяемом пользователем графе процессов не препятствует соответствующим процессам обмениваться сообщениями. Это означает, скорее, что данной связью пренебрегают в виртуальной топологии. Эта стратегия подразумевает, что топология не дает никакого удобного способа наименования этой линии связи. Как предварительно заявлено, передача сообщений в программе может быть представлена как направленный граф, где вершина — это процессы и грани — сообщения.
На многих системах, оптимизируя скорости связи, требуется минимизировать конкуренции для физи- 4. Виртуальные топологии ческих каналов в соответствии с сообшениями, встречающимися одновременно. Исполнение этой оптимизации требует знания того, когда сообшения встречаются и их требования ресурсов. Эта информация трудно представима и не может быть доступна во время создания топологии в комплексных программах. Более простая альтернатива должна обеспечить информацию относительно дистрибутивов "пространственной" связи и игнорировать дистрибутивы ивременной" связи.
Хотя "пространственной" метод может быть шагом к большей оптимизации и более фиксированным программам, в МР1 используется "временный" метод, допускающий более простой интерфейс. В результате программист сообшает системе МР1 типичные связи, например, топологию, его программы. Это шаг к компромиссам, когда определенная топология создается под определенную связность процессов, которая используется в любое время в программе, В целом, однако, механизм топологии был выбран как полезный компромисс между функциональными возможностями и ухудшением использования. Определение виртуальной топологии в терминах графа достаточно для всех приложений. Однако во многих приложениях структура графа регулярна, и детальная установка графа была бы неудобна для пользователя и могла бы быть менее эффективна во время выполнения.
Большая часть всех параллельных приложений использует топологию связей процессов, подобную кольпам, двухмерным (или выше) сеткам или торам. Эти структуры полностью определены числом размерности и числом процессов в каждом направлении координаты. Также отображение сеток и торов — обычно более простая задача, чем обшие графы. Таким образом, желательно задавать зти топологии явно. Координаты процессов в декартовой структуре начинают их маркирование с О. Линейная нумерация всегда используется для процессов в декартовой структуре.
Это означает, например, что соотношение между рангом группы и координатами для двенадцати процессов в сетке 3 х 4 такое, как показано на рис. 4.1. Верхний номер в каждой клетке — ранг процесса, а нижнее значение (строка, столбец) — координат. 4.3. Перекрытие топологий В некоторых приложениях желательно использовать различную декартову топологию на различных этапах вычислений. Как заявлено в п. 4.2 и показано на рис. 4.1, имеется ясное соответствие между рангом процесса и его координатами в декартовой топологии.
Эта связь может использоваться, чтобы создать многократную декартову топологию с желательной связью. Рис. 4.2 показывает связь двух 20 декартовых топологий, где вторая 2В топология перемешена двумя строками вниз и двумя столбцами влево. Верхние значения в каждом процессе — ранг/(строка, столбец) в первоначальной 20 топологии, нижние — то же самое для перемещенной 213 топологии.
Заметьте, что строки и столбцы процессов остаются неповрежденными. Рис. 4.1. Связь между рангами и декарте- Рис. 4.2. Связь между двумя перекрываюшимися выми координатами для 3 х 4 2Р топологии топологиями на 3 х 4 торе 4.4, Совместимость Информация о топологии не дается непосредственно ни ро1п$-1о-ро1п$, ни коллективным функциям в качестве параметров. Взамен интерфейс в топологии обеспечивают специаль- ные функции. 4.5. Функции декартовых таналоеий 4.5. Функции декартовых топологий Ниже описываются функции МР1 для создания декартовых топологий. 4.5.1, Функция, конструируюгцая декартову топологию МР1 САНТ СКЕАТЕ используется для описания декартовой структуры произвольного измерения. Лля каждого направления координаты определяется, является ли структура процесса периодической или нет.
Для 11) топологии — зто линейка, если она не периодическая, и кольцо, если она периодическая. Лля 2Р топологии — зто прямоугольник, цилиндр или тор. МР1 САКТ СКЕАТЕ(сокап о1е), пбтав, 41ае, регтое)в, геогдег, сома сагс) 1М соаа о16 входной (старый) коммуникатор 1М пбйав количество измерений в декартовой топологии 1М 41ав целочисленный массив размером прав, определяюший количество пропессов в каждом измерении 15 регтое)в массив размером п41ав логических значений, определявших периодичность (сгпе) или нет (т'а1зе) в каждом измерении ранги могут быть перенумерованы (сгпе) или нет (та1ве) ООТ сома сагп конмуникатор новой (созданной) декартовой топологии 1й геоге)ег 1пс МР1 Сагс сгеасе(МРХ Сома сома о14, Апс пбгав, 1пс в41аз, Тпс врегтобв, Апс геогбег, МР1 Соаа всоаа сагс) МР1 САКТ СКЕАТЕ(СОММ 010, М01МБ, 01МБ, РЕК100Б, КЕОКОЕК, СОИМ САНТ, 1ЕККОК) 1МТЕСЕК СОММ 010, М01МБ, 01МБ(в), СОММ САНТ, 1ЕККОК 1001САЕ РЕК100Б(в), КЕОНОЕК 4.5.2.
Декартова функция задания сетки Нля декартовой топологии функция МР1 01МБ СНЕАТЕ помогает пользователю выбрать сбалансированное распределение процессов по направлению координат, в зависимости от числа процессов в группе н необязательных ограничений, которые могут быть определены пользователем. Одно возможное использование этой функции — это разбиение всех процессов (размер группы МР1 СОММ МОК(,0) в Х-мерную тоцологню.
МР1 01МБ СКЕАТЕ(ппобев, п41ав, бйав) 1М пподев количество узлов в решетке 1М прав мерность декартовой топологии 1МООТ 44шв целочисленный массив, определявший количество узлов в кажлой размерности тпс МР1 01ав сгеасе(тпт ппобев, Тцс по(ав, Тпт ве)1ав) МР1 САНТ СКЕАТЕ возвращает управление новому коммуникатору, к которому присоединена информация декартовой топологии.