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

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

Гусев А.П.

Студент МГТУ им. Н.Э. Баумана, кафедра «Компьютерные системы и сети»

Научный руководитель: Руденко Ю.М., к.т.н., доцент кафедры ««Компьютерные системы и сети»

xitren@ya.ru

Аннотация. Представлен алгоритм распределения вычислительной нагрузки на кластере. Для разработки системы распределения нагрузки предстоит разрешить две основные проблемы. Во-первых, разработать алгоритм для анализа структуры сети и вычислительной мощности узлов. Во-вторых, разработать алгоритм для анализа и разделения программы на блоки вычислений в соответствии с используемыми ресурсами и необходимой вычислительной мощностью. Далее, в Разделе 1 рассматривается структура программы использующей параллельные вычисления. Раздел 2 рассматриваются существующие системы поддержки параллельного программирования. Раздел 3 содержит подробный анализ существующих алгоритмов распределения задач. Раздел 4 представляет описание разработанного алгоритма распределения.

Ключевые слова: вычислительная нагрузка, кластер, дерево нитей, алгоритм распределения.

Оптимизация исполняемой программы

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

• Загрузка исполняемого приложения в оперативную память,

• Определение блока входных данных,

• Чтение входных данных,

• Непосредственно вычисления,

• Формирование и вывод результатов.

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

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

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

Анализ планировщиков задач

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

Именно для этой цели были разработаны такие программные продукты как: Менеджеры Ресурсов (Resource Manager), Кластерные Системы Управления (Cluster Management System) или Системы управления пакетной обработкой (СПО). Известны более двадцати различных СПО. такие как PBS, SGE и Condor, а также коммерческие системы LoadLeveler и LSF.

Все СПО имеют примерно одинаковые наборы функций, но отличаются по отдельным характеристикам. Так, системы PBS и SGE примерно равны по своим возможностям и предполагают полное выделение машин под пакетную обработку. Ими поддерживаются сетевые кластеры с однопроцессорными машинами, а также мультипроцессоры SMP и MPP. Отдельные процессоры могут использоваться в монопольном ре име (только одна задача на процессор) или в ре име разделения времени (несколько заданий могут разделять процессор). В последнем варианте при распределении заданий контролируется уровень процессорной загрузки.

Рассмотрим несколько планировщиков задач более подробно, для выявления их положительных качеств.

Puc.l. Схема алгоритма FCFS и график распределения задач

Бесплатно распространяемая система планировки задач Portable Batch System (PBS), имеет в своей основе технологию First-Come-First-Served (FCFS), схема которого представлена на рисунке 5, и технологию Shortest-Job-First (SJF), пример временной диаграммы выполнения задач этого алгоритма представлен на рисунке 6. Мо ет использоваться совместно с системой управления заданиями Torque и планировщиком задач MAUI. Как и в других СПО планировщик PBS позволяет выравнивать нагрузку узлов, опираясь на текущие, полученные от операционной системы, значения (LoadLeveling). Такой планировщик имеет наклон в сторону распределения ресурсов по текущему состоянию системы и поддер ивает систему приоритезации групп пользователей.

Другим представителем является свободно распространяемая система Sun Grid Engine (SGE). SGE имеет более оптимизированный планировщик чем система OpenPBS и лучше справляется с загрузкой сети большим потоком малых задач используя алгоритм FCFS и дополнительные алгоритмы приоритетов и поддер ку миграции задачи. В отличие от PBS эта система не имеет развитого API для запуска и управления процессами, именно по этой причине она редко применяется с MPI

приложениями. БвБ включает в себя модуль для определения политики разделения ресурсов между независимо работающими пользователями.

Рис. 2. Схема алгоритма SJF и график распределения задач

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

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

Рис. 3. Схема алгоритма Backfilling и график распределения задач

Коммерческая кластерная система LSF (Load Sharing Facility) компании Platform Computing Corporation для управления пакетной обработкой, представляет собой полномасштабную систему, обеспечивающую все существенные требования к СПО: алгоритмы планирования FCFS, fair-share, preemptive (схема представлена на рисунке 7), backfilling, поддержку очередей заданий, сбор информации о наличии и занятости ресурсов в кластере, нахо дение компьютеров с подходящими ресурсами для выполнения заданий, поддер ку ре има контрольных точек (checkpointing), миграцию заданий и др.

Рис. 4. Схема алгоритма EDF и график распределения задач

Рис. 6. Процент задач несоответствующие срокам при использовании различных

алгоритмов планирования

4 6 8

Пауза между задачами

Рис. 7. Время необходимое для планирования каждым методом

Рис.12. Этапы работы предложенного алгоритма распределения

Внешний планировщик MAUI , который может использоваться взамен штатных планировщиков для нескольких СПО: PBS, SGE, Loadleveler, LSF, Wiki. MAUI -открытый продукт, который отличается большим набором ре имов (политик) планирования и наличием механизма предварительного резервирования (Backfilling). MAUI представляет большой интерес в связи с тем, что это единственная из свободно распространяемых СПО, способная обеспечивать автоматический запуск многопроцессорных заданий, избегая при этом неоправданного простоя ресурсов.

Так е ва но отметить, что совершенствование планировщиков задач происходит постоянно, в связи с чем, за последнее время было разработано множество новых методов планирования, таких как: Earliest Deadline First (EDF), Easy Backfilling, Minimum Tardiness Earliest Deadline First, Tabu Search.

Опираясь на данные исследований ERCIM, составим таблицы эффективности рассмотренных методов, характеризующих соответствие срокам выполнение задачи кластера (Рисунок 10) и времени планирования (Рисунок 11).

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

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

Для примера функционирования предло енного алгоритма возьмем неоднородную вычислительную систему, представленную на рисунке 12.Б.

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

Следующим шагом ка дого модуля является минимизация полученного дерева сети, с определением коммутационных групп и реконфигурации сети (Рис. 12.А), оставляя взаимодействие ме ду группами узлам соответствующим условию:

max a*<производительность>i+b*<скорость сетим+^синтервал ping>i, где a,b,c - коэффициенты задаваемые конфигурацией.

При поступлении на вход блока данных (80 блоков) host-модули начинают процедуру согласования распределения задач:

1. Резервирование блоков для самостоятельного вычисления

2. Рассылка запроса на вычисление оставшихся блоков по таблице вычислителей через промежутки времени (Рис 12.В).

3. Пересылка запрошенным вычислительным модулем согласия на вычисление, при наличии свободных мощностей и запроса на вычисление следующим вычислительным узлам (Рис 12.Г).

4. Получение согласия на вычисление и передача входных данных (Рис

12.Д).

5. Вычисление данных починенным узлом.

6. Пересылка вычисленных данных узлу-источнику, либо назначенному узлу (Рис 12.Е).

7. Повторение операций.

ВУ1

ВУ2

ВУЗ

ВУ4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Время работы кластера

Рис. 9. Диаграмма нагрузки

Как видно из приведенной на рисунке 5 диаграммы, падение производительности в данном случае не превышает 11%, которые теряются на задержки перед запуском процесса для передачи информации по сети.

Литература

1. B. Wilkinson and M. Allen. Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers, 2nd ed. Toronto, Canada: Pearson, 2004.

2. F. Gebali. Analysis of Computer and Communication Networks. New York: Springer, 2008.

3. T.G. Lewis and H. El - Rewini. Introduction to Parallel Computing. Englewood Cliffs, NJ: Prentice Hall, 1992.

4. B. Burke. NVIDIA CUDA technology dramatically advances the pace of scientific research. http://www.nvidia.com/object/io_1229516081227.html?_templated=320,

23.09.2012.

5. Cilk Arts. Smooth path to multicores. http://www.cilk.com/, 26.09.2012.

6. OpenMP. OpenMP: The OpenMP API specification for parallel programming. http://openmp.org/wp/, 2009.

7. C.E. Leiserson. The Cilk + + Concurrency Platform. Journal of Supercomputing,

51 (3), 2009.

8. MIP Forum. Message passing interface forum. http://www.mpi - forum.org/,

6.09.2012.

9. R.D. Blumofe and C.E. Leiserson. Scheduling multithreaded computations by work stealing. Journal of theACM (JACM), 46 (5), 1999.

10. OpenMP. Summary of OpenMP 3.0 c/c + + syntax. http://openmp.org/mp -documents/OpenMP3.0 -SummarySpec.pdf, 23.09.2012.

11. Maui Administrator's Guide. http://www.adaptivecomputing.com/resources/docs/maui/pdf/mauiadmin.pdf, 2.10.2012.

12. TORQUE Administrator Manual. http://www.clusterresources.com/torquedocs21/,

3.10.2012.

Конец

выполнения