Отображение полугрупповых операций над массивами на вычислительную систему с тороидальной структурой

2011

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА Управление, вычислительная техника и информатика

№ 3

ПРОЕКТИРОВАНИЕ И ДИАГНОСТИКА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

УДК 681.3.06:681.323

М.С. Тарков

ОТОБРАЖЕНИЕ ПОЛУГРУППОВЫХ ОПЕРАЦИЙ НАД МАССИВАМИ НА ВЫЧИСЛИТЕЛЬНУЮ СИСТЕМУ С ТОРОИДАЛЬНОЙ СТРУКТУРОЙ

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

Ключевые слова: распределенные многопроцессорные системы, гиперкуб, тор, полугрупповые операции, отображение.

Распределенная вычислительная система представляет собой совокупность пар процессор - память, называемых процессорными элементами (или просто процессорами) и связанных друг с другом сетью линий связи, где каждая линия соединяет два процессора. Такая сеть межпроцессорных соединений описывается графом. В современных суперкомпьютерных распределенных системах в качестве графа сети связи обычно используется трехмерный тор [1 - 4].

Основу многомерного (k-мерного) тора образует многомерная «решетка» из p1 x p2 x ...x pk вершин, где каждая вершина имеет метку (,a2,...,ak),

ai є{0,1,..., pi -1} , і = 1,2,..., k . Две вершины (, a2,..., ak) и (, b2,..., bk) являются соседними в решетке, если для некоторого і выполнено ai = bi ± 1 и для всех j Ф і выполнено aj = bj. Многомерный тор образуется «зацикливанием» строк и столбцов решетки. Он описывается графом из p1 x p2 x ...x pk вершин, где вершины (,a2,...,ak) и (,b2,...,bk) являются соседними, если для некоторого і выполнено ai = bi ± 1 mod pi и для всех j Ф і выполнено aj = bj.

Полугрупповой операцией называют бинарную ассоциативную операцию  [5]. Примерами таких операций могут служить сумма, произведение, конъюнкция, дизъюнкция, исключающее ИЛИ, а также вычисление максимума или минимума. В [5] предложен параллельный алгоритм выполнения такой операции над массивом данных, распределенных по процессорам матричной сети («решетки»), причем результат операции должен получить каждый процессор. Алгоритм сводится к выполнению последовательности циклических сдвигов в линейной сети («линейке») процессоров с выполнением операции  при каждом сдвиге. Такие сдви-

ги выполняются для всех измерений решетки. Этот алгоритм легко переносится на тороидальную сеть процессоров.

В данной работе предлагается альтернативный подход к отображению полугрупповых операций на вычислительные системы с тороидальной структурой, основанный на использовании в полугрупповых операциях схемы «бабочка» [4, 6], отображении этой схемы на гиперкуб с последующим ХОК-отображением гиперкуба на тор [2, 4]. Показано, что такой подход при использовании отображения [2] дает меньшее время параллельного выполнения полугрупповой операции на торе, чем подход, предложенный в [5].

1. Выполнение полугрупповой операции на решетке и торе с использованием циклических сдвигов данных

Пусть массив х = (х1,...,хп) изначально распределен по одному элементу данных в каждом процессоре двумерной решетки из л/п х л/п процессоров, то есть каждый процессор р изначально содержит соответствующий элемент х.^+ ,

/,у е {1,...,л/п} . Требуется применить полугрупповую операцию  ко всем исходным значениям массива х так, чтобы каждый процессор получил результат применения операции.

В [5] предложен алгоритм выполнения полугрупповых операций на решетке процессоров, состоящий в выполнении последовательности циклических сдвигов с выполнением операции  при каждом сдвиге:

1. Параллельно в каждой строке / выполнить циклический сдвиг данных так,

п1/2

что каждый процессор в строке получает результат г. = =1 х.^щ + .

2. Параллельно в каждом столбце ] выполняется циклический сдвиг данных

п1/2

так, что каждый процессор в столбце получает результат 5' = г”=1 г., равный же-

П1/2 п1/2

лаемому результату 5 = г=1 ;-=1 х.^+ .

Циклический сдвиг в строке (или столбце) решетки процессоров выполняется так: каждый элемент перемещается от процессора к процессору вправо, пока не попадет в самый правый процессор, далее направление его сдвигов меняется на противоположное (гусеничный алгоритм [5]). Сдвиги в торе отличаются от сдвигов в решетке тем, что, благодаря зацикливанию строк и столбцов, направление сдвига не меняется.

2. Выполнение полугрупповой операции на гиперкубе с использованием схемы сдваивания

Приведенные в предыдущем разделе алгоритмы выполнения полугрупповой операции над массивом данных в торе не являются оптимальными. Эту операцию можно выполнить быстрее, если использовать систему параллельных процессов, структура которой называется «бабочкой» (рис. 1). В этой структуре схема сдваивания [6], являющаяся оптимальной для реализации полугрупповых операций, реализует размножение вычислений с максимальным количеством одновременно выполняемых операций над разными парами аргументов.

Бабочка легко отображается в гиперкуб. Для этого достаточно объединить операции тех процессов, которые не могут выполняться одновременно. На рис. 1 объединяемые процессы (операции) лежат на одной вертикальной линии. На рис. 2 показан полученный в результате слияния процессов гиперкуб. Здесь числа в скобках показывают номер шага взаимодействий между узлами структуры.

Рис. 2. Гиперкуб, полученный слиянием процессов двоичного дерева или бабочки

3. Вложение гиперкуба в тор

Полученный слиянием процессов бабочки гиперкуб может быть вложен в тор [2, 4]. Способ отображения гиперкуба в тор (ХОЯ-вложение) предложен в [2]. Вложение графа О в граф Н является инъекцией / вершин О в вершины Н. Если граф О не изоморфен подграфу Н, то неизбежны растяжения ребер графа О. Растяжением ребра (а,Ь) графа О на графе Н называется расстояние (длина кратчайшего пути) между вершинами /(а) и /(Ь).

ХО^-вложение гиперкуба Hd в k -мерный тор Ek ,...,2ёк), ^di = ё реа-

г=1

лизуется следующим образом. Сначала определяются К/.

К1 = 0,

К/ =Х ёг, 1 < / < k +1.

г=1

Если граф О является гиперкубом На , а граф Т - тором, то вершина V графа О отображается в вершину (да1,...,тк) = /ХОК(V) графа Тследующим образом [2]:

т/ (г) = v(i + К/), г е [0, ё/ -1], г Ф ё/ - 2,

т/ (ё/ - 2) = ХЖ (V (.+! - 1), V ( +! - 2).

Здесь х(г) - г-й бит двоичного представления х. Показано [2], что гиперкуб На

к

может быть вложен в тор Ек (1 ,...,2ёк), где ^ёг = ё , со средним растяжением

г=1

3 • 2а-2]-к

В = ^=--------------.

А

В табл. 1 и 2 приведены вычисленные по формуле (1) средние значения растяжения В для нескольких значений числа машин п = 2а при к = 2,3 соответст-

а ё . . к

венно, А =—, г = 1,...,к .

гк

Т аблица 1

Среднее растяжение ребер гиперкуба на двумерном торе

п 16 64 256 1024 4096 16384 65536

Б 1 1,667 2,75 4,6 7,833 13,5714 23,8750

Т аблица 2

Среднее растяжение ребер гиперкуба на трехмерном торе

п 64 512 4096

Б 1 1.667 2.75

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

Например (рис. 3), пусть вершины А и В одновременно посылают сообщения а и Ь в вершины А1 и В1 соответственно. Если вершина С транслирует сообщение а в вершину В как первое сообщение, то сообщение Ь будет задержано в вершине С и наоборот. Это и есть перегрузка дуги (канала) (С, В).

Рис. 3. Конфликт сообщений из вершин A и B на дуге

Утверждение 1. ХОК-вложение гиперкуба в тор не создает перегрузок.

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

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

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

Например, на рис. 4 передача сообщения из вершины В в вершину Б не задерживает передачу сообщения из вершины А в вершину С , так как сообщения из А в В и из В в С передаются одновременно.

0—* •© *©—•©

© "© “©

Рис. 4. Одинаково направленные пути

2. Рассмотрим общий случай ХОК-вложения. Взаимодействия между процессами в структуре «бабочка» на ё-мерном гиперкубе выполняются за ё шагов. На шаге

5 е{1,...,ё}

вершина V взаимодействует с вершиной V', если |у - V '| = 25-1.

Рассмотрим стандартное отображение ё-мерного гиперкуба в к-мерный тор Ек

в виде f(v) = (?!,..., pk ) , где

f г \ г-1

v mod П п;- IdivПпj,г = !,...,k, v j=1 J j=1

где div обозначает деление нацело.

Рг =

г=1

Две различных вершины у и у’ лежат в т-м одномерном торе (кольце), если

I \

/ (у - у") = 0, ...,0, рт ,0,...,0 , рт Ф 0. Покажем, что для 5 е{1,..., Л} существует

V m-1 n-m J

m < к , такое, что

f

f m-1 ^ s- Z dt-l 0,...,0,2 i=1 ,0,...,0

Из (2) и (3) следует, что существует m < к , такое, что

m-1 m

П2di < 2s-1 <П2di .

i=1 i=1

Из (6) следует, что:

i d

1) для всех i e {1,...,m-1} имеем 2s-1 modП2 1 = 0 . Тогда из (4) следует, что

1=1

pt (2s-1 ) = 0, i = 1,...,m -1;

m-1

/ 1 \ 2s-1 s- Z di-l

2) Pm Ps-1 ) = — =2 '

i=1

П 2Л

1=1

3) для всех - е{т +1,...,п} справедливы равенства 25-1 modП2 1 = 25-1 и

1 =1

25 1 div П 2 1 = 0 , поскольку 25 1 < П 2 1 для I > т.

1=1 1=1

Выражение (5) доказано. Из (5) следует, что:

1) для стандартного вложения две любых взаимодействующих вершины гиперкуба принадлежат одномерному тору;

2) две любые пары взаимодействующих вершин либо принадлежат одному и тому же одномерному тору, либо двум непересекающимся одномерным торам. В обоих случаях в соответствии с пунктом 1 доказательства перегрузка каналов отсутствует.

3. Рассмотрим ХОЯ-вложение для общего случая. Из (5) следует, что для любых двух взаимодействующих вершин у и у’ стандартное вложение имеет вид

/(у) ={pl,..., Рт-1, Рт , Рт+и-^ Рк ^

/ т-1

I 5 -Е Л- -1

/ (у ') = 1 Рl,..., Рт-1, Рт ± 2 '=1 , Рm+1,..., Рк

где 5, т,к удовлетворяют соотношениям (2),(3),(6).

ХОЯ-вложение изменяет одни и те же биты в компонентах отображений / (у) и /(у'), поэтому вложения /ХОЯ (у) и /ХОЯ (у') различаются только т-й компонентой. Следовательно, эти две вершины принадлежат одномерному тору, и для ХОЯ-вложения также отсутствуют перегрузки каналов.

Утверждение 1 доказано.

4. Сравнительный анализ времени выполнения полугрупповой операции на тороидальной сети процессоров

Пусть - время передачи элемента данных между соседними процессорами и /0 - время выполнения полугрупповой операции над двумя аргументами. Обозначим Тс - время параллельного выполнения полугрупповой операции на торе с использованием циклических сдвигов данных, а ТНТ - время выполнения той же операции на гиперкубе, вложенном в тор.

Утверждение 2. Тс > тнт .

Доказательство. Для произвольного к и

= й, 4 > 1

'=1

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

Тс = Х(' -1)( + го).

г=1

Время выполнения полугрупповой операции на гиперкубе, вложенном в к -мерный тор,

ТНТ = (+ {о )  й .

Подставив Б из (1), получаем

Тнт = (X 3  2й'-2 - к)^ + йго .

г=1

Тогда с учетом

Т - Т =

1с *НТ

X(2й'- - 1)-£3 2й'-2 + к ^ + X(2й -1)-й

_'=1 '=1 J 1_'=1 .

= К 3 X 2й' + го-X (2й' - й' -1)> 0,

4 '=1 г=1

поскольку 2й' - йi -1 > 0 при йi > 1.

Утверждение 2 доказано.

В частности, время выполнения полной полугрупповой операции на к -мерном

торе из Уя х Уй х...хЧп процессоров с использованием циклических сдвигов

к

данных равно

Тс = к (ЦП -1) ( + ^).

Время выполнения той же операции на гиперкубе, вложенном в к-мерный тор

из Уп хУя х...х ^ процессоров

к

3 к

ТНТ = 1о§2 П  (^о + ) = 1о§2 п  *о +1 к  4 ^П - 2 I К .

Отсюда TC - THT =

(kfc > V n „

k 1 + 2

14

tw +

[k

из

где k (( -1) - log2 n > 0 при n > 2k. Из (8) следует, что для k-мерного тора

Vn x Уя x ...x kfn процессоров при n выполняется асимптотическое соотно-

k

шение

TC - THT = О t^ + to ) .

5. Заключение

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

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

2. При увеличении числа процессоров ВС (и соответственно числа элементов массива данных) выигрыш по времени выполнения полугрупповой операции на торе при использовании предложенного алгоритма возрастает.

ЛИТЕРАТУРА

1. Yu H., Chung I-Hsin, Moreira J. Topology mapping for blue gene/L supercomputer // Proc. of the ACM/IEEE SC2006 Conf. on High Performance Networking and Computing, November

11 - 17, 2006, Tampa, FL, USA: ACM Press, 2006. P. 52-64.

2. Gonzalez A., Valero-Garcia M., Diaz de Cerio L. Executing algorithms with hypercube topology on torus multicomputers // IEEE Trans. on Parallel and Distributed Systems. 1995. V. 6. №. 8. P. 803-814.

3. Абрамов С.М., Заднепровский В.Ф., Шмелев А.Б., Московский А.А. СуперЭВМ ряда 4 семейства «СКИФ»: штурм вершины суперкомпьютерных технологий // Вестник Нижегородского университета им. Н.И. Лобачевского. 2009. № 5. С. 200-210.

4. Тарков М.С. Отображение нейросетевых алгоритмов анализа изображений на регулярные структуры распределенных вычислительных систем // Известия Томского политехнического университета. 2008. Т. 313. № 5. С. 101-105.

5. Миллер Р., Боксер Л. Последовательные и параллельные алгоритмы: Общий подход. М.: БИНОМ. Лаборатория знаний, 2006. 406 с.

6. Foster I. Designing and building parallel programs [Электронный ресурс]. URL: http://www-unix.mcs.anl.gov/dbpp

Тарков Михаил Сергеевич

Института физики полупроводников СО РАН

E-mail: tarkov@isp.nsc.ru

Поступила в редакцию 18 ноября 2011 г.