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

Эффективность параллельной реализации алгоритма перебора при распределении работы в иерархиях Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
180
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИЕРАРХИЧЕСКИЕ СИСТЕМЫ / РАСПРЕДЕЛЕНИЕ РАБОТЫ / ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ / HIERARCHICAL SYSTEMS / JOB DISTRIBUTION / PARALLEL ALGORITHMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сай Вин Мо, Лупин Сергей Андреевич, Олейник Татьяна Анатольевна, Ай Мин Тайк, Сое Мое Аунг

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Сай Вин Мо, Лупин Сергей Андреевич, Олейник Татьяна Анатольевна, Ай Мин Тайк, Сое Мое Аунг

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

EFFICIENCY OF SEARCH PARALLEL ALGORITHM FOR JOB DISTRIBUTION IN HIERARCHICAL SYSTEMS

The efficiency of the parallel implementation of brute force algorithm for solving the problem of the distribution of work in hierarchies is discussed. Paper described a method of load distribution in hierarchy, which oriented for parallel implementation. The example of solving task of load distribution in the three-tier hierarchy, shown in paper, confirms the possibility of implementing the brute force algorithm as a multi-threaded application.

Текст научной работы на тему «Эффективность параллельной реализации алгоритма перебора при распределении работы в иерархиях»

УДК 004.94; 517.977.56

ЭФФЕКТИВНОСТЬ ПАРАЛЛЕЛЬНОЙ РЕАЛИЗАЦИИ АЛГОРИТМА ПЕРЕБОРА ПРИ РАСПРЕДЕЛЕНИИ РАБОТЫ

В ИЕРАРХИЯХ

Сай Вин Мо, С.А. Лупин, Т.А. Олейник, Ай Мин Тайк, Сое Мое Аунг

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

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

Иерархии имеют глубокие исторические корни. Даже в древности они использовались для регулирования различных аспектов жизни людей, в религиозных и военных формированиях. Сегодня на принципах иерархического управления построены политические и общественные организации, концерны в промышленности, армия и силы общественной безопасности [1]. Иерархические цепочки, состоящие из начальников и подчиненных, можно выделить не только в системах взаимоотношений людей. Используются иерархии и в технических системах, например, интернет обладает всеми признаками иерархической структуры. Структура библиотечных элементов ПЛИС также представляется многоуровневой иерархией. Активность исследований в области изучения иерархий с годами не снижается. Сложность проблемы создания оптимальной иерархической структуры определяется как размерностью задачи, так и ее многокритериально-стью. Вычислительные системы, построенные на многоядерных микропроцессорах, позволяют использовать для анализа иерархий ресурсоемкие алгоритмы, что дает толчок для новых исследований.

Рассмотрим некоторые методы анализа иерархий и оценим возможность их параллельной реализации.

В работе [2] описана многопараметрическая модель, предназначенная для выбора альтернативных технологий. В ее основе лежит метод 3-ступенчатого анализа иерархии. На первом шаге формируется набор альтернатив, на втором производится их оценка и иерархический анализ, а на третьем - интеграция множества упорядоченных вариантов в оптимальное решение. Ступенчатый характер метода серьезно препятствует его параллельной реализации. Из всех этапов только второй может быть распараллелен.

Пример использования иерархий в автоматизированном проектировании ПЛИС представлен в работе, где иерархию образует множество библиотечных элементов [3].

В статье [4] описано использование иерархии классов для оптимизации кода в статически и динамически типизированных языках. Исследована применимость анализа иерархии классов в интерактивной среде программирования и для раздельной компиляции. Проведена оценка повышения производительности кода, которую дает анализ иерархий классов как отдельно, так и сочетании с другими методами оптимизации.

Метод классификации децентрализованных, распределенных и иерархических архитектур управления для крупномасштабных систем рассмотрен в [5]. Основное внимание уделено проектным процедурам, основанным на модели интеллектуального управления.

В статье [6] представлена иерархическая модель интеллектуальной системы управления крупномасштабными комплексами, основанная на двойной декомпозиции. Предложенная схема обеспечивает сочетание целостности объекта управления с ограничениями, накладываемыми на подсистемы, генерирует начальное решение за конечное число итераций. Улучшение начального решения выполняется с помощью градиентного метода. Устойчивость итерационной схемы обеспечивается с помощью ограничения на точность или оптимальность решения.

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

Рис. 1. Древовидная схема работы

252

Методика была использована для анализа работы 30 медсестер хирургического отделения больницы [7].

Анализ работы с использованием метода иерархий включает три

этапа:

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

2) разработка плана работы экспертов;

3) детальный анализ содержания работ, подлежащих оптимизации.

В результате работы экспертов были выделены 31 основных задачи,

которые в конечном итоге были разбиты на 161 подзадачу. Анкетирование медсестер позволило определить среднее время, которое требуется для их выполнения. Эти результаты были дополнены показателями частоты выполнения каждой из подзадач, а затем включены в древовидную модель в качестве показателя важности каждого вида деятельности.

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

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

В работах [8] и [9] обоснована возможность использования для распределения работы в иерархических структурах метода перебора. Однако его последовательная реализация не позволяет работать с задачами большой размерности, к которым, в частности, можно отнести и рассмотренный выше пример. Покажем, что алгоритм распределения работы может быть эффективно реализован и на параллельной платформе.

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

Пусть имеется трехуровневая иерархическая система аналогичная той, которая представлена на рис. 1. Не меняя общности условий задачи, построим несколько иную ее модель. В узлах дерева будем отображать исполнителей, тогда ребра покажут их соподчиненность. В отличие от алгоритма [7], мы будем искать оптимальное распределение работы между исполнителями.

В такой постановке задачи на вход системы поступает задание Ж, состоящее из подзадач Jl, J 2, J 3. Необходимо найти распределение подзадач между узлами дерева, обеспечивающее минимальное время его выпол-

нения. Определим условие тестовой задачи. Входное задание: Ж = /1,/2,/з), где /\ = 1, /2 = 2, Jз = 4. Элементы иерархической системы обладают характеристиками, представленными в табл. 1. Значения параметров показывают скорость выполнения подзадач каждым из узлов.

Таблица 1

Характеристики узлов иерархии

Узел Подзадачи

/1 /2 /з

1 1 0.1 0.1

2 0.1 1 0.1

3 0.1 1 0.1

4 0.1 0.1 1

5 0.1 0.1 1

6 0.1 0.1 1

7 0.1 0.1 1

Зададим дискретность изменения объемов подзадач при распределении задачи между узлами Д/ = 1. В простейшем случае при распределении работы не требуется учитывать позиции элементов в узлах иерархии, поскольку их перестановка не повлияет на время выполнения задания.

Работа алгоритма перебора основана на назначении каждому узлу иерархии части общего задания Ж. Перебрав все возможные варианты распределения, мы получим оптимальное решение. При этом можно использовать два подхода к генерации задания узлам. Первый основан на перманентном формировании вариантов в ходе работы алгоритм, а второй использует заранее сформированные варианты. В [8] обоснована предпочтительность второго подхода. Исходя из объема задания Ж и дискретности распределения подзадач, сформируем все возможные варианты загрузки узлов (табл. 2).

Для формирования вариантов используется простой метод, основанный на программных счетчиках. Число возможных вариантов нагрузки составит

N уаг = 2 • 3 • 5 = 30.

Отметим, что формирование вариантов происходит только в последовательной части приложения. Потоки могут совместно использовать уже готовый массив.

Алгоритм перебора предполагает, что каждый из М узлов может быть загружен любым из N уаг вариантов. Для простейшей трехуровневой иерархии М = 7, исполнители образуют множество Н = (Ь^ ..^7}. Число возможных состояний иерархической системы при выполнении задания Ж составит:

N = ^уаг М = 307 » 2,2 • 1010.

Таблица 2

Варианты нагрузки узлов

№ ¡1 .¡2 ¡3

1 0 0 0

2 0 0 1

3 0 0 2

4 0 0 3

5 0 0 4

6 0 1 0

7 0 1 1

8 0 1 2

9 0 1 3

10 0 1 4

№ ¡1 ¡2 ¡3

11 0 2 0

12 0 2 1

13 0 2 2

14 0 2 3

15 0 2 4

16 1 0 0

17 1 0 1

18 1 0 2

19 1 0 3

20 1 0 4

№ ¡1 ¡2 ¡3

21 1 1 0

22 1 1 1

23 1 1 2

24 1 1 3

25 1 1 4

26 1 2 0

27 1 2 1

28 1 2 2

29 1 2 3

30 1 2 4

Отметим, что только небольшая часть этих состояний удовлетворяет условию выполнения задания Ж, но в алгоритме перебора необходимо генерировать их все (табл. 3) и проверять условие полного выполнения задания Ж.

Таблица 3

Генерация вариантов нагрузки узлов

№ Н1 Н2 Н3 н4 Н5 Нб Н7 Корректность

1 0 0 0 0 0 0 0 .Е

2 0 0 0 0 0 0 1 Е.

К 0 1 6 0 0 1 1 5 0 .Т.

Ь 3 0 0 0 0 0 0 0 .Т.

N 3 0 3 0 3 0 3 0 3 0 3 0 3 0 .Е

Воспользовавшись методикой, приведенной в [8], можно определить число вариантов распределения задания между узлами, обеспечивающих условие полного выполнения задания W

8! 7' 10'

Nsaf =-----= 41160.

2!-6! 1!-6! 4!-6!

Число состояний иерархии N, которые необходимо проанализировать, намного больше числа состояний, которые удовлетворяют условию задачи - Nsat, что типично для алгоритма перебора. Если вычислительная сложность процедуры оценки состояния невелика, нет необходимости использовать их предварительную фильтрацию.

Для формирования множества вариантов распределения нагрузки (см. табл. 3) использованы программные счетчики. Это позволяет применять стандартные конструкции типа omp parallel for во внешнем цикле для построения многопоточного приложения.

Нагрузка каждого элемента иерархии {h1, ... h7} определяется одним из вариантов (см. табл. 2). Полученные варианты проверяются на условие выполнения задания W. Корректные варианты отмечены в табл. 3 -T., недопустимые - .F. в столбце «Корректность». Отметим, что в процессе работы приложения не происходит формирования табл. 3. Каждый поток поочередно анализирует только одну строку таблицы, которая предварительно генерируется счетчиками. Процедуру анализа предваряет процедура проверки корректности варианта.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

Многопоточное приложение реализовано в среде Intel Parallel Studio с использованием библиотеки OpenMP.

Результаты исследования эффективности параллельной реализации алгоритма перебора для задачи распределения нагрузки в иерархии представлены в табл. 4. Эксперименты проводились на рабочей станции, имеющей 2 процессора Intel XEON E5335 (2.0 GHz, quad-core), объем оперативной памяти 4x1Gb FBDIMM 5300.

Таблица 4

Масштабируемость алгоритма перебора

Число потоков Время, с Ускорение (теория) Ускорение (практика)

1 203.24 1 1

2 106.20 2 1.91

3 70.27 3 2.89

4 54.92 3.75 3.70

5 43.11 5 4.71

6 35.25 6 5.77

7 34.74 6 5.85

8 27.60 7.5 7.36

Проанализируем представленные результаты. При увеличении числа потоков, время работы приложения снижается обратно пропорционально их числу. Это говорит о хорошей масштабируемости приложения. Особенности создания потоков с помощью функции omp parallel for, позволяют оценить максимально достижимое ускорение.

Если число итераций внешнего цикла (в нашем примере 30) делится нацело на число потоков, то достигается максимально возможное ускорение - 2, 3, 5, и 6 потоков. В противном случае часть ядер будет простаивать на последней стадии - 4, 7 и 8 потоков. Конечно, эти рассуждения справедливы в том случае, если для каждого процесса выделяется свое ядро. В экспериментах это условие выполняется. В графическом виде результаты представлены на рис. 2. Пунктир отображает теоретическое, а сплошная линия практическое ускорение вычислений.

Число потоков

Рис. 2. Ускорение вычислений

257

Найденное решение задачи представлено в табл. 5. Оно удовлетворяет условию задачи. Минимальное время выполнения задания Ж иерархией равно 1.

Таблица 5

Оптимальное распределение подзадач

Узел Вариант нагрузки Подзадачи

J1 J2 J3

1 16 1 0 0

2 6 0 1 0

3 2 0 0 1

4 6 0 1 0

5 2 0 0 1

6 2 0 0 1

7 2 0 0 1

W 1 2 4

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

Статья подготовлена в рамках выполнения научного проекта РФФИ № 16-07-01055/165 «Адаптация ресурсоемких алгоритмов к распределенной вычислительной среде».

Список литературы

1. Hogan J. The leadership lever // Professinal. 2011. Vol. 13. No. 3. P. 10-13.

2. Samudrala Varakumari. Project selection based on knowledge by using 3-step analysis hierarchy process // International Journal of Advanced Engineering Technology. IJAET. Oct.-Dec. 2012. Vol. III. Issue IV. P. 82-85.

258

3. Aminof B., Mogavero F., Murano A. Synthesis of hierarchical systems // Science of Computer Programming. 2014. Vol. 83. P. 56-79.

4. Dean J., Grove D., Chambers C. Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis // Department of Computer Science and Engineering, University of Washington Seattle, USA. 25 p.

5. Architectures for distributed and hierarchical Model Predictive Control / Politecnico di Milano, Via Ponzio 34/5, Milano, Italy. 2013.

6. Doan M.D., Keviczky T., Schutter B. A distributed optimization-based approach for hierarchical model predictive control of large-scale systems with coupled dynamics and constraints // Decision and Control and European Control Conference (CDC-ECC) - 50th IEEE Conference on Sider. 2011. P. 5236-5241.

7. Rohloff K., Ye J., Loyall J., Schantz R. A hierarchical control system for dynamic resource management // In Proc. 2006 IEEE Real-Time and Embedded Technology and Applications Symposium - RTAS 2006, San Jose, CA. 2006. P. 37 - 41.

8. Лупин С.А., Мо С.В., Тайк А.М. Применимость алгоритма полного перебора вариантов при распределении работы в иерархических cистемах // Информационные системы и технологии. 2015. №4 (90). С. 9-27.

9. Maw S.W., Thaik A.M., Lupin S., Kovalenko D., Worden J. Job Distribution in Hierarchic Systems // Proceedings of the Fifth International Conference on Internet Technologies and Applications (ITA 15). Glyndwr University, Wrexham, UK. 2015. P. 102-106.

Сай Вин Мо, асп., saiwinmaw50@gmail. com, Россия, Москва, Национальный исследовательский университет «МИЭТ»,

Сергей Андреевич Лупин, канд. техн. наук, проф., [email protected], Россия, Москва, Национальный исследовательский университет «МИЭТ»

Татьяна Анатольевна Олейник, канд. пед. наук, доц., [email protected], Россия, Москва, Национальный исследовательский университет «МИЭТ»

Ай Мин Тайк, асп., [email protected], Россия, Москва, Национальный исследовательский университет «МИЭТ»

Сое Мое Аунг, асп., [email protected], Россия, Москва, Национальный исследовательский университет «МИЭТ»

EFFICIENCY OF SEARCH PARALLEL ALGORITHM FOR JOB DISTRIBUTION IN

HIERARCHICAL SYSTEMS

Sai Win Maw, S.A. Lupin, T.A. Oleynik, Aye Min Thike, Soe Moe Aung

259

The efficiency of the parallel implementation of brute force algorithm for solving the problem of the distribution of work in hierarchies is discussed. Paper described a method of load distribution in hierarchy, which oriented for parallel implementation. The example of solving task of load distribution in the three-tier hierarchy, shown in paper, confirms the possibility of implementing the brute force algorithm as a multi-threaded application.

Key words: hierarchical systems; job distribution; parallel algorithms.

Sai Win Maw, postgraduete, saiwinmaw50@gmail. com, Russia, Moscow, National Research University of Electronic Technology,

Sergey Andreevich Lupin, candidate of technical science, professor, [email protected], Russia, Moscow, National Research University of Electronic Technology,

Tatiana Anatolievna Oleynik, candidate of pedagogical science, docent, [email protected], Russia, Moscow, National Research University of Electronic Technology,

Aye Min Thike, postgraduete, ayeminthike52@,gmail. com, Russia, Moscow, National Research University of Electronic Technology,

Soe Moe Aung, postgraduete, mavmyotar50@gmail. com, Russia, Moscow, National Research University of Electronic Technology

i Надоели баннеры? Вы всегда можете отключить рекламу.