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

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

CC BY
315
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / БАЛАНСИРОВКА НАГРУЗКИ / РАСПИСАНИЯ ВЫПОЛНЕНИЯ ЗАДАЧ ДЛЯ КЛАСТЕРОВ С РАЗЛИЧНОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

Аннотация научной статьи по математике, автор научной работы — Жук С. Н.

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

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

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

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

Жук С.Н.,

Princeton University ([email protected])

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

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

1. Введение

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

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

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

процессоров, и высотой, соответствующей требуемому времени. Единственным существенным отличием является то, что в том случае, когда рассматриваются прямоугольники, соответствующая задача должна занимать последовательные процессоры, в то время как в действительности задача может занимать произвольное множество процессоров. Принципиальным для данной работы является тот факт, что кластеры могут иметь различную производительность. Это существенно, поскольку даже для задачи построения расписаний для однопроцессорных машин с различными производительностями результаты далеки от окончательных [1,2].

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

2. Обозначения и полученные результаты

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

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

Особый интерес представляют так называемые онлайновые алгоритмы (on-line algorithms). Такие алгоритмы, получая задачи одну за другой, каждую задачу распределяют сразу, и не меняют в дальнейшем ее распределение. В онлайновых алгоритмах предполагается, что заранее не существует никакой

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

В данной работе получены следующие результаты:

• Показано (Теорема 1), что любой онлайновый алгоритм,

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

• Предложен полиномиальный онлайновый алгоритм с асимптотической точностью близкой к 2е (Теорема 3).

Введем некоторые обозначения. Пусть Т = { Т1,... ,Тп} - конечная

последовательность задач, Ь (Т ) и 'Л/ (Т ) - требуемое нормализованное время и требуемое число процессоров для ^'-й задачи. Требуемое нормализованное время ограничено сверху величиной Итах.

Пусть С= | С1 ,... ,Ст] - множество кластеров, - число процессоров в кластере, а,- - производительность кластера (это означает, что кластер может

Ъ_

обработать задачу с требуемым нормализованным временем Л за ~ ).

сг;

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

константой аШщ .

Задача: Найти распределение для заданных мультипроцессорных задач Г на заданном множестве кластеров С, минимизируя общее время выполнения.

Ниже будем предполагать, что w1>w2>...>wm

Обозначим = и-. • ОС. (/=1 ,...,т) общую производительность некоторого кластера.

Предположим, что существуют две последовательности задач Т1 = \ Т\,... ,Т^| и Т2 = 1 Т\,... ,Т^| . Обозначим через Г1 +Т2 объединенную последовательность:

т1+т2=\ ,Т21У...,Т21

[ 1 ’ ’ п ’ 1 ’ п)

Предположим, К - некоторая многопроцессорная задача. Обозначим:

last (R) — max к ; wk>w(R)

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

образом:

йеМ;о last (R)=i

Предположим, что S(R)=h(r )-w(R) - общий объем вычислений,

требуемый для некоторой задачи R. Если Q - некоторое множество задач, тогда через S(Q) обозначим общий объем вычислений, требуемый для всех задач из множества Q.

Предположим, что Г - последовательность задач, тогда обозначим St{T)=S{\R(=T\R(=M J )

Предположим, что имеется некоторый алгоритм А, который осуществляет распределение задач по кластерам. Обозначим через А(Т) вектор, содержащий m значений У={У1У-Ут) , где - общий объем требуемых вычислений для задач из последовательности Г, которые распределены алгоритмом А на кластер с номером к.

Введем следующие обозначения:

>=і

0;(Г) = ^5,СП

У=1

, , ч 0,(Т)

Ь(Т) = шах-——. і ¿і

Когда добавляется новая задача, -О,- (Т) может только возрасти. Следовательно, Ь(Т) также может только возрасти. Приведем сейчас достаточно простую нижнюю оценку.

Лемма 1. Для любого множества кластеров С и любой последовательности многопроцессорных задач Г

Орі(Т,С)>1ї(Т)

Достаточно простым обобщением нижней оценки из [3] является следующая

Теорема 1. Для любого онлайнового алгоритма А выполняется следующее неравенство

Г»00 ^

RA>e

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

3. Алгоритм с асимптотической точностью 2е.

Для задачи составления расписания внутри одного кластера используем так называемый «шельфовый» алгоритм. Он был подробно представлен в работах по упаковке прямоугольников в полубесконечную полосу.

Предположим, имеется некоторая константа ге(ОД) Шельфом будем называть конкретный интервал времени, в течение которого задача может быть выполнена на данном кластере. Когда приходит новая задача, алгоритм определяет целое число к, такое что г +1 <h(R)<r и далее эта задача помещается в шельф длиной гк (под длиной шельфа понимается длина интервала, соответствующего данному шельфу в терминах нормализованного времени). Задача может быть помещена в один из существующих шельфов (если в нем существует достаточное число свободных процессоров) или может быть создан новый шельф. Внутри каждого шельфа задачи располагаются последовательно горизонтально (каждая новая задача занимает требуемое число процессоров на весь период времени шельфа).

Таким образом распределение многопроцессорных задач, которые попадают в один класс (каждой из этих задач соответствует одно значение к) выполняется при помощи некоторой эвристики, которая представляет собой одномерную упаковку в контейнеры (one-dimensional bin-packing). Будем использовать эвристику первого подходящего (First Fit), которая помещает задачу в первый шельф, который подходит или создает новый шельф, если подходящего шельфа не оказалось.

Описанный выше алгоритм будем называть Shelf(r).

3.1. Алгоритм Аг.

Алгоритм распределяет многопроцессорные задачи в режиме онлайн. Предположим, что последовательность задач Г уже распределена и предположим, что

аг(т )=у=(у1,....ук)

Каждая новая задача І? обрабатывается алгоритмом следующим образом:

1. Вычисляется Л=Л(Т+|І?[).

2. Определяется номер кластера

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

3. Для распределения задач внутри кластеров используется алгоритм

Теорема 2. Для любого множества кластеров С и любой последовательности

Для доказательства данной теоремы необходимо следующее свойство шельфового алгоритма.

Лемма 2. Рассмотрим некоторый кластер. Предположим, 5 - общий объем вычислений требуемый для выполнения всех задач, за исключением последнего, которое помещено в кластер. Пусть - число процессоров, £* -производительность кластера, Итах - наибольшее из возможных нормализованное требуемое время для некоторой задачи. Тогда для времени выполнения на этом кластере, полученном в соответствии с алгоритмом распределения БкеЩг), выполняется следующее неравенство:

Лемма 3. Для любого множества кластеров С и любой последовательности многопроцессорных задач Г выполняется следующее неравенство:

БНеЩг).

многопроцессорных задач Г алгоритм распределяет все задания из Г.

Теорема 3. Для алгоритма Лг выполняется следующее неравенство

о =

Аг<2е/г

Доказательство. Предположим, максимальное время выполнения достигается на кластере с номером ]. Пусть К. - последняя задача, распределенная на этот кластер, и предположим, что общий объем вычислений, требуемых для всех остальных задач - 5. Поскольку задача распределена на данный кластер

^<еЛ(Г) <е ■ Opt(T, С)

W.

Используя лемму 2 для кластера с номером j, получаем:

А ( Т, С )< —•

Г CCjWj

r(l-r)

_+ ]_) -J^<2^.0pt(T'C}+ а, г

r(l-r)

Г+ 1

Лемма 3 доказана. Теорема 3 прямо следует из леммы 3.

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

[1] Bernam P., Charikar М., Karpinski М., On-line load balancing for related machines, Proc. WADS, 1997, LNCS, 1272, Springer-Ferlag, p. 116-125.

[2] Aspens J., Azar Y., Fiat A., Plotkin S., Waarts O., On-line load balancing with applications to machine scheduling and virtual circuit routing, Proc. 25th ACM STOC, 1993, p. 623-631.

[3] Жук C.H., Приближенные онлайновые алгоритмы упаковки прямоугольников в несколько полос, Дискретная математика, 2007, т. 19, N 4.

On-line algorithm for scheduling parallel tasks on a group of related clusters

ZhukS.N.,

Princeton University ([email protected])

Abstract: An on-line algorithm for scheduling parallel tasks on a group of clusters with different speeds of processors is presented. It is shown that for arbitrary set of parallel tasks the obtained schedule is within 2e of optimal.

Keywords: parallel computations, load balancing, scheduling parallel tasks on related clusters.

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