Матем атика
Вестник Нижегородского университета им. Н,И. Лобачевского, 2 013, № 5 (1), с. 204-209
УДК 519.687.1
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ ОТОБРАЖЕНИЯ ГРАФА © 2013 г. Н.В. Старостин, М.А. Панкратова
Нижегородский госуниверситет им. Н.И. Лобачевского
рапках>уа_та^агіїа@таі1. т
Поитупила в редакцию 14.05.2013
Рассматривается задача отображения графа на граф, которая имеет место в процессе планирования выполнения параллельной задачи на многопроцессорной вычислительной системе. В общем случае задача является ^У-трудной. Предложен гибридный генетический алгоритм решения.
Ключевые илова: параллельная вычислительная система, отображение графа на граф, генетический алгоритм.
Введение
Процесс назначения параллельной программы на узлы многопроцессорной вычислительной системы сопряжен с задачей отображения графа на граф, в которой требуется минимизировать временные затраты на обмен информацией между параллельными частями задачи. Данная задача известна в литературе [1-4] как задача оптимального отображения виртуальной топологии параллельной задачи на физическую топологию вычислительной системы. К алгоритмам решения данной задачи предъявляются особые требования, связанные со временем поиска решения (задачи имеют большую размерность и являются ресурсоемкими, а время их решения должно быть намного меньше, чем время выполнения задачи, назначаемой на вычислительную систему). В работе рассматривается эвристический алгоритм, который осуществляет направленный перебор решений генетическим методом совместно с известными конструктивными и итерационными схемами решения.
Математическая постановка задачи
Физическая топология вычислительной системы моделируется неориентированным графом Н (V, Р, Е), где V - множество всех сетевых устройств вычислительной системы;
Р Чр^^Рп}е V - вычислители (ядра, процессоры, узлы); Е с V(2> - непосредственные двунаправленные связи между элементами вычислительной системы. Неориентированный граф G(Q, с) определяет структуру виртуальной топологии, где Q = ^,.., qn} - множество вершин; С с Q<'2) - множество связей виртуальной топо-
логии. Требуется назначить элементы Q виртуальной топологии О по вычислителям Р системы Н .
Введем симметричную матрицу коммуникаций (расстояний, трудоемкости) (^. )пхп, где - расстояние (трудоемкость коммуникаций) между вычислителями р i и pJ в графе Н.
Обозначим через (а у )пхп матрицу смежности
графа топологии О.
Варьируемым параметром является матрица назначения X = (ху )пхп, где х^ =1, если элемент
qi е Q виртуальной топологии приведен в соответствие с вычислителем р 1 е Р ; х ^ = 0 в
противном случае.
Ограничения
х,.,. = 1, і = 1, п:
хи ^ {0,1}, i, у =1, п .
(1)
(2)
(3)
Критерии
В задаче отображения требуется минимизировать издержки на коммуникации. Если исходить из суммарных затрат на коммуникацию, то критерий примет вид:
^Биы (Х) = Ц ау 'I II ХіІХуАк
Л
1=1 ]=1 V 1=1 к=1
Можно минимизировать самые «дорогие» коммуникации, тогда критерий можно записать в виде
( п п Л
Рылх (Х) = тах ау-| II ^ min. (5)
V 1=1 к=1 у
і,У=1,п
Критерии (4) и (5) в общем случае являются противоречивыми. Задачу (1)-(4) будем называть задачей отображения с аддитивным критерием. Задачу (1)-(3), (5) будем называть задачей отображения с минимаксным критерием.
Сложность задачи
В общем случае задачи отображения с критериями (4) и (5) являются #Р-трудными в сильном смысле [5]. Можно привести частные случаи, когда задача сводится к задаче равномерного разбиения графа на два подграфа с минимизацией внешних связей или к задаче поиска гамильтонова цикла минимальной длины. Данные задачи являются NP -трудными в сильном смысле [6].
Таким образом, число допустимых решений для задач отображения равно п!, где п - размер графа виртуальной топологии О . На практике размеры задачи определяются числом функциональных устройств (ядер процессоров) вычислительных сетей. Так, например, один из самых производительных суперкомпьютеров в мире Tianhe-1A (Китай) содержит 186 368 ядер. Один из самых производительных суперкомпьютеров в России «Ломоносов» (МГУ) содержит 35 776 ядер. Это говорит о том, что порядки прикладных задач - сотни тысяч. Использование точных методов для решения прикладных задач не представляется возможным.
Известные подходы
Задача (1)-(3) с критериями (4) и (5) в силу #Р-трудности и больших порядков входных данных не позволяет использовать точные методы решения (полный перебор, метод ветвей и границ). На практике часто бывает важно найти не оптимальное решение, а быстро получить достаточно «хорошее» решение (за счет оптимизации межпроцессорных коммуникаций время выполнения параллельной программы должно сокращаться на величину большую, чем время решения задачи отображения). В основе конструктивных алгоритмов лежит стратегия поиска и назначения структурно похожих фрагментов графов, например, клик [2]. Решения, полученные при помощи конструктивных эвристик можно улучшать итерационными методами, которые основаны на анализе окрестностей решений и последовательном переходе в локальный оптимум. Главный минус обозначенных подходов в том, что они не позволяют преодолевать локальные экстремумы сложных ландшафтов. Имеется множество различных подходов, позволяющих устранить эти недостатки.
Примером может служить метод Simulated Annealing [7]. В данной работе предлагается гибридный алгоритм, который основан на генетической оптимизации [6].
Структура генетического алгоритма
В качестве символьной модели выбрано представление решения в виде перестановки. Элемент
перестановки xt, i = 1, n, означает, что вершина i
графа G назначается на вершину xt графа H.
Предлагаемый генетический алгоритм стартует с начальной популяции Р0 (совокупности кодировок (Xj0,..,XП)) и итеративно выполняет следующий цикл операций:
1. Генерация начальной популяции (формирование с помощью конструктивных алгоритмов множества начальных решений).
2. Выбор родительских пар. Происходит случайным образом с равными вероятностями.
3. Кроссовер. Конструирование новых кодировок путем комбинации фрагментов родительских решений.
4. Мутация. Имеет место на кодировках потомков, основана на случайных обменах в перестановках.
5. Локальная оптимизация. Специальный оператор (не свойственен классическому генетическому алгоритму), предназначен для улучшения качества найденных решений.
6. Оценивание. Построение по кодировке решения задачи, вычисление критерия для решений, полученных в процессе текущего поколения.
7. Переход к следующему поколению. Происходит путем отбора необходимого количества лучших решений с точки зрения функции цели (4).
Генерация начальной популяции
Конструктивные алгоритмы являются детерминированными, что не позволяет сгенерировать необходимое количество различных решений для построения начальной популяции. Выход из данной проблемы заключается во введении элементов рандомизации в алгоритмы. В предлагаемом алгоритме генерация начальных решений осуществляется согласно процедуре построения корневой структуры смежности графов [8] (нужное разнообразие решений достигается за счет случайного выбора корневых вершин исходных графов) и с помощью модификации алгоритма, предложенного в [2].
Конструктивный алгоритм 1
На входе: графы физической и виртуальной топологий Н и О . Результат: перестановка.
1. Рекурсивное выделение клик в графах Н и О [2].
2. Переупорядочивание графов согласно выделенным кликам.
3. Назначение вершин графов согласно произведенному упорядочиванию.
4. Генерация перестановки назначения.
Конструктивный алгоритм 2
На входе: графы физической и виртуальной топологий Н и О . Параметры алгоритма: необходимое количество решений п. Результат: заданное количество перестановок.
1. Формирование списков из п вершин с минимальной степенью для графов Н и О .
2. Цикл 3-7 по числу решений п.
3. Выбор текущих вершин из построенных списков в качестве корневых.
4. Упорядочивание графов Н и О с помощью профильной схемы [8].
5. Назначение вершин графов согласно произведенному упорядочиванию.
6. Генерация перестановки назначения.
7. Переход к следующим вершинам в списках.
Кроссовер
Целью кроссовера является генерация новых решений, которые получаются комбинацией фрагментов родительских перестановок. В качестве оператора кроссовера можно выбрать любую классическую схему порядкового кроссовера [6], которая гарантированно из перестановок получает новые перестановки. Проблема классических схем в том, что они не учитывают специфику задачи, что в итоге приводит к низкой вероятности получения потомков, по качеству лучших или сравнимых с родительскими решениями. Важно, чтобы кроссовер сохранял в потомках лучшие «фрагменты» родительских решений. Предлагается такая модификация позиционного кроссовера, которая в отличие от классической схемы активно эксплуатирует информацию о структуре графов физической и виртуальной топологий.
Алгоритм модифицированного позиционного кроссовера
На входе: графы физической и виртуальной топологий Н и О , родительские решения
ХРаГеп, и Хр,аГеп,. Параметры алгоритма к - объем копируемой информации из первого родителя. Результат: новые решения Х1Ш и х]ыи.
1. В перестановке родителя Х1рагеп1 (х1, х2,..., хп) выбираются пары элементов (х1, ху), для которых существует ребро (г, у) в графе О.
2. Для всех таких пар рассчитывается расстояние между вершинами х1 и ху в системном графе Н.
3. Пары сортируются в порядке возрастания рассчитанных расстояний.
4. Из полученного списка выбирается к связей с наименьшими расстояниями.
5. Элементы каждой выбранной пары (х, ху) копируются в перестановку потомка
Х\иы на свои места.
6. Позиции, оставшиеся незаполненными
в перестановке потомка Х1сШ, заполняются согласно порядку значений в перестановке Х^агеп1.
7. Алгоритм модифицированного позиционного кроссовера генерирует генотип второго потомка для тех же родителей, меняя их роли местами.
Локальная оптимизация
Локальная оптимизация призвана улучшать решения, сгенерированные в результате работы оператора кроссовера и мутации. Суть предлагаемого оператора заключается в исследовании окрестности относительного обмена для заданной перестановки - решения из окрестности получаются посредством парных обменов в перестановке текущего решения. Т.к. обмен каждого элемента перестановки с каждым занимает достаточно много времени и не является разумным, то предлагается алгоритм локальной оптимизации, который оперирует не только информацией о перестановке, представляющей решение, но и информацией о структуре графов, описывающих физическую топологию вычислительной сети и виртуальную топологию задачи. Алгоритм выделяет элементы перестановки, соответствующие самым длинным связям между задачами, и пытается их уменьшить путем парных обменов с остальными элементами перестановки.
Алгоритм локальной оптимизации
На входе: графы физической и виртуальной топологий Н и О, решение Х. Параметры алгоритма: к - часть связей виртуальной топологии, с которой будет оперировать алгоритм. Результат: улучшенное решение R .
Таблица 1
Сравнение результатов алгоритма с оптимальным решением задач
Количество вершин в графах Оптимальное решение Результат работы алгоритма
1 12 17 17
2 1б 24 24
3 20 28 30
4 200 370 б54
5 500 940 1б27
Таблица 2
Характеристики тестовых графов физической топологии
Ыомер Ыазвание Количество вершин Количество ребер
1 LF10 18 32
2 can24 24 68
3 lap 25 25 72
4 mesh1em148 48 129
5 bcsstk0148 48 176
б GD06 theory 100 180
7 can 144 138 544
8 can 161 161 608
9 grid1 dual224 224 420
10 grid1 252 476
1. В перестановке решения Х(х1,х2,...,хп) выбираются пары элементов (х1, ху), для которых существует ребро (', у) в графе О.
2. Для всех таких пар рассчитывается расстояние между вершинами х1 и ху в системном графе Н.
3. Пары сортируются в порядке убывания рассчитанных расстояний.
4. Из полученного списка выбирается часть к связей с наибольшими расстояниями.
5. Для каждой выбранной пары (х, ху) рас-
сматриваются перестановки, полученные методом парных обменов х1 с х1, х1 с х2, ..., х1 с
хп, х, с х,, х, с х2, ., х, с хп. Каждая из этих
п у и 1 у и 2 у ''и п
перестановок оценивается, и выбирается наилучший вариант обмена.
Вычислительный эксперимент
Предложенный алгоритм решения поставленной задачи является эвристическим, поэтому дать объективные оценки решений, получаемых этим методом, достаточно проблематично. Для подтверждения работоспособности разработанного алгоритма будем сравнивать решение, сгенерированное алгоритмом, с оптимальным решением
задачи (на искусственно сгенерированных задачах с известным оптимальным решением). Также будем сравнивать результаты работы алгоритма с результатами работы ряда известных алгоритмов на общедоступных тестовых задачах.
Для первой части эксперимента было разработано 5 искусственных примеров с известным оптимальным решением. Характеристики тестовых задач и результаты работы алгоритма представлены в табл. 1.
Тестовые задачи для второй части эксперимента были выбраны с ресурса [9]. Характеристики графов топологии вычислительной системы представлены в табл. 2.
Характеристики графов виртуальной топологии задачи представлены в табл. 3.
В табл. 4 представлено сравнение результатов разработанного гибридного генетического алгоритма с результатами ряда известных алгоритмов.
Из полученных результатов видно, что предлагаемый гибридный генетический алгоритм решения задачи отображения показывает лучшие результаты на тестовых задачах по сравнению с известными алгоритмами.
Заключение
В работе рассмотрена актуальная задача отображения графа на граф. Описан ряд практически
Таблица 3
Ыомер Ыазвание Количество вершин Количество ребер
1 can 24 18 39
2 Trefethen 20b 18 59
3 karate24 24 Зб
4 ex5 25 111
5 bcspwr0248 48 55
б bfwb6248 48 107
7 nos4 100 247
8 bcsstk22 138 279
9 dwt 161 161 468
10 dwt 245224 224 555
11 lshp_265 252 696
Таблица 4
Сравнение результатов алгоритма с известными конструктивными методами
Граф системы Граф задач Конструктивный алгоритм 1 Конструктивный алгоритм 2 Гибридный генетический алгоритм
Результат Время (мс) Результат Время (мс) Результат Время (мс)
1 1 64 46 58 22 54 631
1 2 125 28 148 31 125 1399
2 3 68 30 54 40 47 1032
3 4 199 32 222 41 167 3668
4 5 121 54 157 57 76 4928
5 б 218 82 226 83 158 8710
б 7 658 86 674 63 493 52493
7 8 617 98 1039 38 409 130555
8 9 961 61 1875 64 680 258202
9 10 2685 192 3790 89 1446 478133
10 11 3590 108 4263 64 1793 729622
применимых алгоритмов для большеразмерных задач. Предложена схема интеграции конструктивных и улучшающих стратегий в рамках базового генетического алгоритма. Выбрано кодирование решений в виде перестановок, предложена модификация классического оператора кроссовера, разработан оригинальный итерационный алгоритм локальной оптимизации найденных решений. Предложенный алгоритм был программно реализован, показана его работоспособность и сделаны выводы.
Спииок литературы
1. El-Rewini H., Lewis T.G., Ali H.H. Task Scheduling in Parallel and Distributed Systems. Prentice Hall, 1994.
2. Chen S., Eshaghian M.M. A fast recursive mapping algorithm. Department of computer and information science New Jersey institute of technology Newarc, NJ 07102.
3. Bokhari S.H. On the Mapping Problem// IEEE Transactions on computers. 1981. V. C-30. №. 3.
4. Walshaw C., Cross M., Everett M.G., Johnson S., et. al. Partitioning & Mapping of Unstructured Mashes to Parallel Machine Topologies. Parallel Processing Group, Centre for Numerical Modelling & Process Analysis. University of Greenwich, London, SE18 6PF.
5. Hoefler T., Snir M. Generic Topology Mapping Strategies for Large-scale Parallel Architectures. University of Illinois at Urbana-Champaign Urbana, IL, USA. 2011. Р. 75-85.
6. Батищев Д.И., Костюков В.Е., Неймарк Е.А., Старостин Н.В. Решение дискретных задач с помощью эволюционно-генетических алгоритмов. Н. Новгород: Изд-во ННГУ, 2011.
7. Аладышев О.С., Киселёв Е.А. Алгоритм эффективного размещения программ на ресурсах многопроцессорных вычислительных систем // Междунар. журн. Программные продукты и системы. 2012. № 4. С. 18-25.
8. Pissanetzki S. Sparse Matrix Technology. Centro Atomico Bariloche. Bariloche, Argentina, 1984.
9. Коллекция разреженных матриц Университета Флориды. URL: http://www.cise.ufl.edu/research/spar-se/matrices/.
GENETIC ALGORITHM TO SOLVE GRAPH MAPPING PROBLEM
N. V. Starostin, M.A. Pankratova
The article considers a graph mapping problem (in general an NP-hard one) which occurs in the process of running a parallel task on a multiprocessor computing system. We propose a hybrid genetic algorithm to solve the problem.
Keywords: parallel computing system, graph mapping, genetic algorithm.