УДК 004.032.26(06)
ББК 32.818я7
ОБ ЭФФЕКТИВНОСТИ ПОСТРОЕНИЯ ГАМИЛЬТОНОВЫХ ЦИКЛОВ В ГРАФАХ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ РЕКУРРЕНТНЫМИ НЕЙРОННЫМИ СЕТЯМИ
Тарков М. С.1
(Институт физики полупроводников им. А.В. Ржанова СО РАН, Новосибирск)
Рассмотрено построение рекуррентной нейронной сетью гамильтоновых циклов в графе распределенной вычислительной системы с п вершинами. Предложен метод частичных сумм, позволяющий сократить время решения системы дифференциальных уравнений, описывающих нейронную сеть, с O(n3) до O(n2). Показано, что нейросетевой алгоритм, использующий метод частичных сумм, не уступает по времени построения цикла известным перестановочным методам.
Ключевые слова: Распределенные вычислительные системы, рекуррентные нейронные сети, графы, гамильтонов цикл
1. Введение
Распределенная вычислительная система (ВС) [1, 3-5, 7-12, 15-17, 20-22] представляет собой множество элементарных машин (ЭМ), связанных сетью, программно управляемой из этих машин. Каждая ЭМ включает вычислительный модуль (ВМ) и системное устройство (маршрутизатор сообщений). Маршрутизатор функционирует под управлением ВМ и имеет входные и выходные полюса, связанные соответственно с вы-
1 Михаил Сергеевич Тарков, кандидат технических наук, доцент (tarkov@isp. тт. ги).
ходными и входными полюсами соседних ЭМ. Структура ВС описывается графом Gs(Vs, Е;), где V - множество ЭМ и Е; с V х V - множество связей между ЭМ.
Для распределенных ВС граф Gp(Vp, Ер) параллельной программы обычно определяется как множество Кр ветвей программы (виртуальных элементарных машин), которые взаимодействуют друг с другом по принципу «точка-точка» посредством передачи сообщений по логическим (виртуальным) каналам (одно- и двунаправленным) множества Ер с Кр х Ур. Для большинства параллельных прикладных программ характерны упорядоченные во времени и регулярные в пространстве схемы взаимодействий между обрабатывающими модулями («линейка», «кольцо», «решетка» и др.). В силу этого для максимальной эффективности информационных взаимодействий современные высокопроизводительные ВС используют регулярные графы Gs(Vs, Е;) межмашинных соединений (гиперкуб и многомерные торы) [1, 3-5, 7-12, 15-17, 20-22]. Гиперкубическая структура описывается графом, известным как т-мерный булевский куб с числом вершин п = 2т. Тороидальные структуры представляют собой т-мерные евклидовы решетки с замкнутыми границами. Группа автоморфизмов Ет такой структуры есть прямое произ-
т
ведение циклических подгрупп С^ : Ет = ® С^ , где N - порядок подгруппы С^ ® - символ прямого произведения. При
т = 2 получаем двумерный тор (2^-тор) (рис. 1), при т = 3 получаем 3D-тор.
В силу того что элементарные машины и межмашинные соединения не являются абсолютно надежными, регулярность структуры ВС может нарушаться в результате выхода из строя ее элементов. Поэтому возникает необходимость разработки алгоритмов вложения графов программ в произвольные графы ВС.
Кольцевая структура параллельной программы является одной из наиболее фундаментальных структур для параллельных и распределенных вычислений. Такие параллельные приложения, как обработка сигналов и изображений обычно ориен-
тированы на циклическую архитектуру (кольцо) [16]. Предложено много простых и эффективных кольцевых алгоритмов для решения различных алгебраических и графо-теоретических задач [9, 21]. Поэтому важно иметь эффективные вложения циклов в структуру распределенной вычислительной системы.
13
ю
14
И
15
4-^
Рис. 1. Пример 2D-тора
В данной работе рассматриваются нейросетевые алгоритмы вложения кольцевых структур параллельных программ в структуры распределенных ВС при условии V = |^|. Такое вложение сводится к построению гамильтонова цикла в графе ВС и основывается на решении задачи коммивояжера (раздел 2), использующем матрицу расстояний между вершинами графа ВС, причем за единицу принято расстояние между соседними вершинами графа ВС. В разделе 3 предложен метод частичных сумм, позволяющий сократить время решения системы дифференциальных уравнений, описывающих нейронную сеть, с O(n ) до O(n ). В разделе 4 проведено сравнение полученных результатов с результатами построения цикла известными перестановочными методами [3-5, 8, 10-12, 15, 22] и показано, что нейросе-
тевой алгоритм, использующий метод частичных сумм, не уступает им по времени выполнения.
2. О решении задачи коммивояжера рекуррентными нейронными сетями
Решению задач комбинаторной оптимизации нейронными сетями посвящено много работ [2, 13, 14, 18, 19]. Наиболее популярными в этом плане являются сети Хопфилда [2, 13, 18], но их применение ограничивается высокой вычислительной сложностью (n , где n - характерный размер задачи). Ситуацию можно упростить, если применить следующий подход.
Задача коммивояжера может быть сформулирована как задача о назначении [14, 19]:
(1) minX Xj
i=1 j±i при ограничениях
xj el0,1},
(2) i,xp = 1 j = 1,2,..., n
i=1 n
X xj=1 i=i^..^ n
j=1
и условии, что матрица ||xj|| образует гамильтонов цикл. Здесь Cj-(i Ф j) - стоимость назначения элемента i в позицию j, что соответствует перемещению коммивояжера из города i в город j; x j -переменная решения: (если элемент i назначается в позицию j, то xij = 1, иначе xij = 0).
Для решения этой задачи Ваном (J. Wang) [14] предложена рекуррентная нейронная сеть, которая описывается дифференциальным уравнением
дп..(t) ( " " j ( t Л
(3) —д—=-п IX xk(t)+X xv(t) - 2xCv exp j,
где xv = f (ue(t)); f (u) = 1/[1 + exp(-pu)] .
Разностный вариант этого уравнения имеет вид
t
(4) Uj - Uij- At
r| X x<k(t)+X x-(t) - 21- acp exp I —
k=1 1=1 J V т
где Лt - шаг по времени. Параметры At, г), Л, т, (, подбираемые экспериментально, существенно влияют на скорость достижения решения задачи и качество этого решения. Вычислительная сложность выполнения итерации (4) равна 0(п ), если для всех п элементов матрицы и, /',] = 1, ..., п, активаций нейронов
п п
заново рассчитывать сумму I ч ^) + 1 *„ ^).
к=1 ?=1
Решение системы уравнений (3) можно ускорить следующим алгоритмом [7], использующим принцип WTA:
1. Породить матрицу 1Ху(0)|| случайных значений
Ху(0) е [0, 1]. Итерации уравнения (4) продолжать до тех пор, пока для всех /, ] = 1, ., п не выполнится неравенство
X xk(t) + X xv(t) - 2 - 8 ■■
x
k=1 l=1
где 8 — заданная точность выполнения ограничений (2).
2. Выполнить преобразование полученной матрицы реше-
ния x/
j
2.1. i = 1.
2.2. В i-й строке матрицы найти максимальный элемент хч , jmax - номер столбца с максимальным элементом.
2.3. Выполнить преобразование x. ■ = 1. Все остальные
‘, jmax
элементы i-й строки и столбца с номером jmax обнулить. Перейти к строке с номером jmax.
Действия 2.2 и 2.3 повторять, пока не произойдет возврат к первой строке, что будет означать завершение построения цикла.
Если возврат к строке 1 произошел раньше, чем в матрице ||x/|| значение 1 получили n элементов, то это означает, что длина построенного цикла меньше n . В этом случае шаги 1 и 2 повторить.
3. Метод частичных сумм
В [7] показано, что рекуррентная сеть Вана (1)-(3) дает хорошие результаты при решении системы уравнений (4) методом Зейделя. Нетрудно видеть, что решение задачи (1)-(3) связано с многократным вычислением одних и тех же частичных сумм, входящих в суммы
Ех-=1 -=ъ-- п
7=1 п
Е х- = 1 7 = 1,..., п.
-=1
Во избежание избыточных вычислений произведем расчет частичных сумм:
- «вертикальные» частичные суммы
п г_
=Ех-, V=Е ^,7,-=1,...,п;
к=7 к=1
- «горизонтальные» частичные суммы
п -
Ь =Е хй, =Е х, ^-=^..^п,
!=- 1=1
где х- - обновленное по Зейделю значение х-.
Обозначим сумму
=Ехк^)+Ех* (*),
к =1 /=1
где массив х включает элементы хк1, где к = 7, I = -, ..., п и к = 7 + 1, ..., п, I = 1, ..., п, и обновленные по Зейделю элементы хи, где к = 1, ..., 7 - 1, I = 1, ..., п и к = 7, I = 1, ...,- - 1.
Тогда в (4) получаем
(5) 511 = ^ + V
Используя (5), по формуле (4) вычисляем новое значение хц и полагаем
^11 _ ^11 _ х11.
Для остальных элементов первой строки матрицы ||ху|| выполняем следующие вычисления:
1. Вычисляем s1j = h 1 j_1 + Vj + h1;, j = 2, ..., n.
2. Используя s1;, вычисляем x у по (4) и полагаем
Vv - x1j,
h1 j- x1j+ К j -l, j - 2,..., n.
Для остальных строк с номерами i = 2, ..., n при j = 1, ..., n:
1. Вычисляем
si, - v,-1,j + vp + hj,j є{1,...,n},
sj -si, + hi,j-1, j є{2,...,n}.
2. Используя sij, вычисляем x ij и полагаем
VP - xi, + v, -1,j,
h - x1j, j є{l,...,n},
h - h + h1,j-^ j є{2,...,n}.
Предложенный здесь метод частичных сумм позволяет сократить время решения системы (4) при построении гамильтоновых циклов в графах распределенных вычислительных систем c O(n3) до O(n2).
В таблице 1 приведены времена (в секундах) построения гамильтоновых циклов в двумерном торе (см. рис. 1) с n = m х m вершинами, m є {12, 16, 20, 24, 28, 32}; ttrad - время построения цикла традиционным способом (без учета повторяемости сумм); tpart - время построения при использовании метода частичных сумм (процессор Pentium ® Dual-Core CPU E 52000, 2,5 Ггц).
Особенно большой выигрыш метод частичных сумм дает при построении гамильтоновых циклов в трехмерных торах с большим числом (тысячи) вершин. При этом используется разбиение трехмерного тора на двумерные.
В общем виде эта задача решается так [7]:
1. Разбить исходный граф системы на k > 2 связных подграфов.
2. В каждом подграфе построить гамильтонов цикл, используя вышеописанный алгоритм.
3. Объединить гамильтоновы циклы подграфов в один гамильтонов цикл.
Для разбиения исходного графа системы на связные подграфы можно применить алгоритмы, предложенные в работе [5].
Для объединения двух циклов Rl и R2 достаточно наличия в графе ВС цикла ABCD длины 4 такого, что ребро АВ принадлежит циклу Rl, а ребро CD - циклу R2 (см. рис. 2).
Таблица 1. Времена построения гамильтонова цикла в двумерном торе рекуррентной нейронной сетью
п 144 256 400 576 784 1024
їґгасі 0,125 1,062 5,203 15,92 39,8 178,734
їрагі 0,016 0,063 0,188 0,5 1,156 2,047
Объединить циклы R1 и R2 в один цикл можно следующим образом:
1. Найти цикл ABCD, обладающий указанным выше свойством.
2. Исключить из цикла ребро АВ и пронумеровать вершины цикла R1 последовательно так, чтобы вершина А получила номер
0, а вершина В - номер L1 - 1, где L1 - длина цикла R1. Включить в цикл ребро ВС.
3. Исключить ребро CD и пронумеровать вершины цикла R2 последовательно так, чтобы вершина С получила номер L1, а вершина D - номер L1 + L2 - 1, где L2 - длина цикла R2. Включить в цикл ребро DA. Единый цикл длины L1 + L2 построен.
Циклы R1, R2 и результирующий цикл выделены на рис. 2 жирными линиями. Ребра, не входящие в указанные циклы, выделены пунктиром.
Рис. 2. Объединение циклов
Трехмерный тор можно рассматривать как совокупность двумерных торов, связанных ребрами между собой. Поэтому гамильтонов цикл для трехмерного тора можно построить следующим образом:
1. Построить гамильтоновы циклы для всех двумерных торов.
2. Объединить циклы в один алгоритмом, предложенным выше.
Очевидно, что если гамильтоновы циклы для двумерных торов оптимальны, то и результирующий гамильтонов цикл трехмерного тора также оптимален.
В таблице 2 приведены времена (в секундах) построения оптимальных гамильтоновых циклов для трехмерных торов с большим (тысячи) числом вершин: tmseq - время работы алгоритма без использования частичных сумм, tmpart - время работы алгоритма с использованием частичных сумм на процессоре Intel Pentium Dual-Core CPU E 52000, 2,5 Ггц. Из таблицы 2 в частности следует, что время построения цикла в 3^-торе из 32768 вершин удалось сократить с 3354 секунд (около часа) до 84,4 секунд (около 1,5 минут).
Таким образом, результаты проведенных экспериментов показывают, что в совокупности с методом расщепления трехмерного тора на двумерные алгоритм, использующий частичные
суммы позволяет существенно ускорить построение циклов в трехмерных торах с десятками тысяч вершин.
Таблица 2. Построение 3D-тора с использованием метода расщепления
т 16 20 24 28 32
п = т3 4096 8000 13284 21952 32768
їкМяесі 13,19 65,25 243,7 707,5 3354
їкМрагі 2,437 7,656 18,64 41,08 84,47
4. Перестановочный алгоритм вложения графа программы в граф вычислительной системы
Пусть граф ОР(КР, Рр) параллельной программы рассматривается как множество Ур вершин (ветвей программы) и функция
°р V хГр ^ удовлетворяющая
Ор (х, у) = Ор (у, х), Ор (х, х) = 0
для любых х, у е Ур. Равенство Ор(х, у) = 1 означает, что существует ребро между вершинами х и у, т.е. (х, у) е Ер. Аналогично граф О,, = (V*, Е;) определяется как множество вершин (элементарных машин - ЭМ) К; и функция
О* V х V ^ {0,1}.
Здесь Е; - множество ребер (линий связи между ЭМ).
Пусть |Кр| = IV = п. Обозначим вложение ветвей параллельной программы в ЭМ как одно-однозначную функцию /т: Кр ^ V*. Качество вложения можно определить как число ребер графа программы, совпавших с ребрами графа ВС. Назовем это число мощностью |/т| вложения /т и определим его следующим выражением [10] (критерий-максимум качества вложения):
(6) Ш= (1/2) £ Ор (х, у)О; (/т (х), /т (у)).
хеКР, уеКр
В [3, 4, 20] предложен следующий подход (MB-алгоритм) к решению задачи вложения. Пусть некоторым образом задано начальное вложение вершин графа программы в вершины графа ВС. Например, fm(x) = x, т.е. номера ветвей графа совпадают с номерами содержащих эти ветви машин. Пусть ep(x) - окружение (множество соседей) вершины x на графе Gp и es(x) - ее окружение на графе Gs. Для каждой вершины x е Vp протестируем перестановку вершин i и j, удовлетворяющих условию
(7) i е ep (x) & i i es(x) & j е es (x) & state( j) = 0 .
Условие state(j) = 0 означает, что вершина j еще не подвергалась перестановке в окружении es(x), в противном случае state(j) = 1. Если перестановка не ухудшает качество вложения fm, мы ее фиксируем. Такой подход основан на предположении о высокой вероятности ситуации, когда такая перестановка, увеличивающая количество вершин i е ep(x) в окружении es(x), улучшит (или по крайней мере не ухудшит) значение критерия качества fm\. Число тестируемых перестановок при одноразовом обходе всех вершин x е Vp не превышает значения vpvsn, n = \Vp\, где vp и vs - максимальные степени вершин графов Gp и Gs соответственно. При vpvs < n такой подход обеспечит сокращение объема вычислений по сравнению с известными перестановочными алгоритмами [8, 10-12, 15, 22], итерация которых имеет сложность O(n ). Разработана основанная на проверке условия (7) процедура Search поиска локального экстремума функции fm| в MB-алгоритме вложения.
В таблице 3 производится сравнение времен (в секундах) построения гамильтонова цикла двумя алгоритмами -MB-алгоритмом и рекуррентной нейронной сетью с использованием метода частичных сумм. Из этой таблицы следует, что эти алгоритмы сравнимы по эффективности. Следует учитывать, что MB-алгоритм рассчитан на использование процессора с фиксированной запятой, в то время как нейронная сеть использует процессор с плавающей запятой. Этот факт нужно учитывать при выборе алгоритма для конкретной машины в зависимости от скорости выполнения алгоритма.
Таблица 3. Времена построения гамильтонова цикла в двумерном торе МВ-алгоритмом (М) и рекуррентной нейронной сетью с использованием метода частичных сумм (^аг)
п 144 256 400 576 784 1024
ҐМБ 0,047 0,14 0,343 0,719 1,328 2,25
їрагі 0,016 0,063 0,188 0,5 1,156 2,047
5. Выводы
Рассмотрено построение рекуррентной нейронной сетью гамильтоновых циклов в графе распределенной вычислительной системы с п вершинами. Предложен метод частичных сумм, позволяющий сократить время решения системы дифференциальных уравнений, описывающих нейронную сеть, с 0(п ) до 0(п ). Показано, что нейросетевой алгоритм, использующий метод частичных сумм, не уступает по времени построения цикла известным перестановочным методам.
Перестановочные алгоритмы не нуждаются в процессоре с плавающей запятой и подборе параметров, но работают с нерегулярными структурами данных (списковое представление графа), что может усложнить их распараллеливание. Нейросете-вые алгоритмы нуждаются в процессоре с плавающей точкой и подборе параметров, но работают с регулярными структурами данных, а потому имеют более высокий потенциальный параллелизм. Таким образом, выбор алгоритма для построения гамильтоновых циклов в графах распределенных вычислительных систем определяется конфигурацией аппаратуры процессоров, на которых они выполняются. Сравнение параллельных версий рассмотренных алгоритмов является целью дальнейших исследований.
Литература
1. АБРАМОВ С.М., ЗАДНЕПРОВСКИЙ В.Ф., ШМЕЛЕВ А.Б., МОСКОВСКИЙ А.А. СуперЭВМ ряда 4 семейства «СКИФ»: Штурм вершины суперкомпьютерных техноло-
гий // Вестник Нижегородского университета им.
Н.И. Лобачевского. - 2009. - №5. - С. 200-210.
2. МЕЛАМЕД И.И. Нейронные сети и комбинаторная оптимизация // Автоматика и телемеханика. - 1994. - №4. -С. 3-40.
3. ТАРКОВ М.С. Алгоритм отображения структур параллельных программ в структуры распределенных вычислительных систем // Труды Пятого Международного семинара «Распределенная обработка информации (РОИ-95)». -Новосибирск, 1995. - С.124-129.
4. ТАРКОВ М.С. Вложение структур параллельных программ в структуры живучих распределенных вычислительных систем // Автометрия. - 2003. - Том 39, №3. - С. 84-96.
5. ТАРКОВ М.С. Децентрализованное управление ресурсами и заданиями в живучих распределенных вычислительных системах // Автометрия. - 2005. - Том 41, №5. - С. 81-91.
6. ТАРКОВ М.С. Нейрокомпьютерные системы - М.: Интернет-Ун-т информ. технологий: Бином. Лаборатория знаний, 2006. - 142 с.
7. ТАРКОВ М.С. Построение гамильтоновых циклов в графах распределенных вычислительных систем рекуррентными нейронными сетями // Сиб. журнал вычислительной математики. - 2010. - №4. - С. 467-475.
8. AGARWAL T., SHARMA A., KALE L.V. Topology-aware task mapping for reducing communication contention on large parallel machines // Proc. IEEE 20th International Parallel and Distributed Processing Symposium (IPDPS’2006), April 2006. -P. 145.
9. AKL S.G. Parallel Computation: Models and Methods. - Prentice Hall, NJ, 1997. - 608 p.
10. BOKHARI S.H. On the Mapping Problem // IEEE Trans. Comput. - 1981. - Vol. C-30, №3. - P. 207-214.
11. BOLLINGER S.W., MIDKIFF S.F. Heuristic Technique for Processor and Link Assignment in Multicomputers // IEEE
Transactions on Computers. - 1991. - Vol. 40, №3. - P. 325333.
12. HOEFLER T., SNIR M. Generic Topology Mapping Strategies for Large-scale Parallel Architectures // Proc. International conference on Supercomputing (ICS’11), Tuscon, Arizona, USA, May 31 - June 4., New York, 2011. - P. 75-84.
13. HOPFIELD J.J., TANK D.W. «Neural» computation of decisions in optimization problems // Biological Cybernetics. -1985. - Vol.52, №3. - P. 141-152.
14. HUNG D.L., WANG J. Digital hardware realization of a recurrent neural network for solving the assignment problem // Neurocomputing. - 2003. - Vol. 51. - P. 447-461.
15. LEE S.-Y., AGGARVAL J.K. A Mapping Strategy for Parallel Processing // IEEE Trans. Comput. - 1981. - Vol. C-36, №4. -P. 433-442.
16. LI Y., PENG S., CHU W. Fault-tolerant cycle embedding in dual-cube with node faults // Int. J. High Performance Computing and Networking. - 2000. - Vol. 3, №1. - P. 45-53.
17. PALMER J.F. The NCUBE family of parallel supercomputers // SCS Conf. on Multiprocessors and Array Processors, San Diego, CA (USA), 14-16 Jan. 1987. - P. 177-188.
18. SMITH K.A. Neural Networks for Combinatorial Optimization: A Review of More Than a Decade of Research // INFORMS Journal on Computing. - 1999. - Vol.11, №1. - P. 15-34.
19. SIQUEIRA PH., STEINER M.T.A., SCHEER S. A new approach to solve the travelling salesman problem // Neurocomputing. - 2007. - Vol.70. - P. 1013-1021.
20. TARKOV M.S. Mapping Parallel Programs Onto Distributed Robust Computer Systems // Proc. 15th IMACS World Congress on Scientific Computation, Modelling and Applied Mathematics, Berlin, 1997. - P. 365-370.
21. TSAI P.-Y. , FU J.-S. , CHEN G.-H. Embedding Hamiltonian cycles in alternating group graphs under conditional fault model // Information Sciences. - 2009. - Vol. 179. - P. 851-857.
22. YU H., CHUNG I-HSIN, MOREIRA J. Topology Mapping for Blue Gene/L Supercomputer // Proc. ACM/IEEE SC2006 Conf. On High Performance Networking and Computing, November 11-17, 2006, Tampa, FL, USA. ACM Press, 2006. - P. 52-64.
ON EFFICIENT CONSTRUCTION OF HAMILTONIAN CYCLES IN DISTRIBUTED COMPUTER SYSTEMS BY RECURRENT NEURAL NETWORKS
Mikhail Tarkov, Institute of Semiconductor Physics of SB RAS, Novosibirsk, Cand.Sc., associate professor ([email protected]).
Abstract: Construction of Hamiltonian cycles in a graph of distributed computer system with n vertices by a recurrent neural network is considered. The method of partial sums is proposed to reduce time of differential equations solution, which describe the neural network, from O(n3) to O(n2). It is shown that the neural network algorithm which uses partial sums is competitive with known permutation methods.
Keywords: distributed computer systems, recurrent neural networks, graphs, Hamiltonian cycle
Статья рекомендована к публикации программным комитетом
международной конференции «Параллельные вычисления и задачи управления» (PACO), Россия, Москва, 24-26 октября 2012 г. Поступила в редакцию 27.02.2013.
Опубликована 31.05.2013.