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

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

CC BY
661
86
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАСПИСАНИЕ / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / ПАРАЛЛЕЛЬНЫЕ ЗАДАНИЯ / РАСПРЕДЕЛЕННАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА / SCHEDULE / GENETIC ALGORITHM / PARALLEL JOBS / DISTRIBUTED COMPUTING SYSTEM

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

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Смагин Сергей Иванович, Шаповалов Тарас Сергеевич

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

Genetic algorithm based parallel jobs scheduling in distributed computing system

In this paper, a genetic algorithm approach for the starting time of scheduling of parallel jobs in a distributed computing system is suggested. Mechanisms for accounting of resource constraints and jobs dependences in the genetic algorithm are presented. A modified backfill algorithm that accounts for resource constraints and adapted for the scheduling of initial population is described. Results of numerical experiments with different sets of jobs have been presented.

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

Вычислительные технологии

Том 15, № 5, 2010

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

__«J» «J» >k

в распределенной вычислительной системе*

С. И. Смагин, Т.С. Шаповалов Вычислительный центр ДВО РАН, Хабаровск, Россия e-mail: smagin@as . khb. ru, taras@as. khb. ru

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

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

Введение

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

Примерами РВС могут служить системы, построенные по технологии Grid [1,2]; Clouds Computing [3,4]; системы, использующие вычислительное время простаивающих рабочих станций [5,6]. С начала 2000 г. были введены в эксплуатацию ряд крупных Grid: EGEE (Enabling Grids for E-sciencE), NorduGrid, Open Science Grid, TeraGrid и др. Выполняются проекты по распределению вычислительной работы между простаивающими рабочими станциями с использованием сети Интернет: Folder@Home, GIMPS (Great Internet Mersenne Prime Search), LHC@Home и др.

Эффективность работы РВС напрямую зависит от методов составления расписаний выполнения заданий. В общем случае задача составления расписания является NP-полной, Ранее в работе [7] рассматривалась задача составления расписания выполнения непараллельных заданий, сделан обзор методов составления расписаний для РВС. Данная работа является продолжением [7]. В ней рассматривается задача ео-

* Работа выполнена в рамках ФЦП "Научные и научно-педагогические кадры инновационной России" (проект № 02.740.11.0626) и поддержана грантами ДВО РАН № 09-1-П1-01 и 10-Ш-В-01И-009.

ставления расписания параллельных заданий для РВС с применением генетического алгоритма (ГА),

Под процессом будем понимать поток инструкций для процессора ЭВМ с единым адресным пространством, значениями регистров процессора, стеком, открытыми файлами, глобальными переменными и т, п. Параллельными будем считать задания с числом процессов Np > 1, которые потенциально могут обмениваться данными между собой, и, таким образом, эти процессы должны быть спланированы на одновременный запуск [8-10], Такой вид планирования называется совместным (синонимы: связанным, комплектным, gang-scheduling). Процессы одного задания должны всегда выполняться в пределах одной группы процессоров, например, многопроцессорной системы с общей памятью или вычислительного кластера [11],

В качестве ресурсов будем рассматривать совокупность программных и аппаратных средств для выполнения процессов. Примеры ресурсов: процессор, среда передачи данных, прикладное программное обеспечение, система хранения данных и т, д. Виртуальный узел (ВУ) — один вычислительный элемент (ядро процессора), рассматриваемый в связке с сопоставленными ему ресурсами. Если несколько процессоров используют одни и те же ресурсы, характеризуемые объемом (оперативная память, постоянная память и т.п.), то будем считать, что объем этих ресурсов равномерно делится на все виртуальные узлы, соответствующие данным процессорам,

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

Разделим отрезок времени T, в течение которого поступают задания пользователей, на (Q + 1) последовательных отрезков (периодов) планирования: T = (J Tq, где q — порядковый номер периода планирования, q = 0,1,... ,Q. В каждый из периодов Tq накапливается некоторое множество параллельных заданий. Каждое параллельное задание включает запрос на выполнение нескольких одновременно выполняемых процессов.

Пусть Uq = {uiq : i = 1, 2,... ,Nq} — множество процессов, принадлежащих заданиям, планируемым в период Tq, Nq — число процессов, принадлежащих всем заданиям, планируемым в период Tq. Для выполнения задания пользователь заказывает количество требуемых ресурсов определенных видов. Данные требования не меняются во время выполнения процессов. Если пользователь не указал для задания требование к ресурсу определенного вида, то для данного вида ресурса заказывается значение по умолчанию, заданное администратором РВС,

Пусть Ф = {фт : m =1, 2,..., M} — неизменяемое в течение всего отрезка времени T множество всех виртуальных узлов в РВС, где M > 1 — число виртуальных узлов в РВС, Тогда расписание Sq выполнения процессов uiq £ Uq, планируемых в период Tq в РВС, определяется как множество отрезков времени (слотов) simq, зарезервированных для выполнения этих процессов па ВУ фт £ Ф:

Sq = {Simq : i £ Iq, m £ Mq} , (l)

где Iq — множество номеров процессов, которые будут выполняться в РВС согласно Sq Mq

пущены.

Обозначим через rfmq величину, характеризующую ресурс с номером e, которую пользователь заказывает для выполнения процесса uiq на некотором ВУ фт. Например, величина rf , относящаяся к оперативной памяти, обозначает требуемый на ВУ фт объем данной памяти, а относящаяся к программному обеспечению, — наличие (rfmq = 1) или отсутствие (rfmq = 0) данного программного обеспечения на ВУ фт.

Величину, характеризующую ресурс с номером e, который доступен ВУ фт е Ф в момент времени t е Т, обозначим через Rm(t). Тогда ресурсы, доступные для ВУ фт в этот момент времени, характеризуются множеством {Rrn(t) : e =1, 2,... ,Nr}, где e — номер ресурса, Nr — число различных видов ресурсов в РВС,

Расписание Sq заданий для РВС является допустимым, если выполняются условия достаточности имеющихся ресурсов для их выполнения:

reimq < Rrn(t), Vt е stmq, Vi е Iq, Vm е Mq, e = 1, 2,..., Nr. (2)

Ф

подмножества Фд = {фт : m е Mg} — группы ВУ:

Ng

Ф^Фд, ФдП Фр = 0, д,Р =1, 2,...,Ng, д = p, (3)

g=i

Ng Mg

группе Ф^ 0 — пустое множество.

Важным свойством расписания является его непротиворечивость. Пусть Upq = {uiq : i е Ipq} — множество процессов, принадлежащих p-му заданию, поступившему в период Tq, где Ipq — множество номеров процессов этого задания. При этом

Pq

\J Upq = Uq, Utqf] Upq = 0, l,p =1, 2,...,Pq, l = p, (4)

р=1

где Pq — количество заданий, поступивших в период планирования Tq. Тогда под непро-

Sq Uq

полнение следующих условий,

Uq

быть сопоставлен один слот в расписании Sq. Пусть N'q — число слотов в расписании Sq, соответствующих планируемым в период Tq ^^^доссам, Nq — число процессов всех заданий, планируемых в период Tq, которые могут выполняться в РВС, Тогда должно быть справедливо равенство Nq = Nq.

2, Никакие два слота simq е Sq и Sjmq е Sq (i = j) не должны быть сопоставлены одному ВУ фт одновременно: Is^ Р| Sjтч | = 0 ВДе | -1 — длина соответствующего отрезка времени,

3, Все процессы параллельного задания должны быть спланированы на выполнение

Mg д

Sq для каждого с лота Sj^, сопоставленн ого с i-м процессом из множества Upq, должно

m е Mg

4, Все процессы параллельного задания должны иметь одинаковый момент времени запуска и завершения. Для всех i,j е Npq в расписании Sq должно выполняться равенство s^,mq = Sjkq, m,q е Mq. Слотам s^ и Sjkq соответствуют процессы одного параллельного задания.

В большинстве случаев для одного множества процессов Uq можно составить множество расписаний Sq = {Saq : a =1, 2,..., Aq}, где Aq — число возможных расписаний.

Введем для расписаний Saq G Sq целевую функцию f : Sq — R+ где R+ — множество действительных положительных чисел. Оптимальным будем считать расписание S* G Sq, удовлетворяющее условию

f (S*) = min ,, f (Saq). a=1,2,..,A'q

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

В связи с тем что задача составления расписания в общем случае является NP-полной, на практике приходится ограничиваться поиском субоптимального решения [12].

Сформулируем задачу составления расписания выполнения параллельных заданий в РВС.

Задача. Найти субоптимальное расписание Sq выполнения процессов uiq G Uq ви-

Sq

виям непротиворечивости 1-4. 2. Генетический алгоритм

На рис. 1 представлена схема генетического алгоритма для решения задачи составления расписаний выполнения параллельных заданий.

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

Назовем хромосомой множество Xa = {sima : i G Ia,m G Ma}, вде a G A, A — множество номеров расписаний, кодируемых хромосомами в популяции генетического алгоритма, Ia — множество номеров процессов, которые будут выполняться в РВС согласно расписанию Sa, Ma — множество всех ВУ, с которыми сопоставлены слоты расписания Sa, Элеме нт sima (слот) хромое омы Xa в терминах ГА является геном. Через X = {Xa : a G А} обозначим множество хромосом, составляющих популяцию генетического алгоритма.

Входными параметрами описываемого ГА являются следующие: pc — вероятность применения оператора скрещивания; pm — вероятность применения оператора мутации; E — количество элитных хромосом в популяции; V — множество заданий; T — отрезок времени, на протяжении которого выполняется генетический алгоритм; Ф — множество ВУ в распределенной вычислительной системе. Предлагаемый алгоритм в общем виде следующий.

1. Создание начальной популяции. С помощью модифицированного алгоритма об-

V

множеетво X = {Xa : a G А}, вде Xa — хромосомы.

2. Вычисление значений функции пригодности fa по формуле (6) (см. ниже) для

X

3. Проверка окончания. Если выделенный для составления расписания отрезок времени T завершен, то работа алгоритма прекращается.

Рис. 1. Схема гснстичссксн'о а;п'оритма составления расписания выполнения параллельных заданий в распределенной вычислительной системе

4. Сохранение элитных хромосом. Из множества X формируется множество У, состоящее из Е хромосом с наименьшими значениями /а,

5. Селекция. Создается подмножество X' С X хромосом, выбранных методом рулетки 1131.

6. Скрещивание. Для каждой хромосомы из подмножества X' случайным образом выбирается число на отрезке [0,1], и если это число меньше или равно рс, то к данной хромосоме применяется оператор скрещивания. Новые хромосомы, полученные в результате действия на них оператора скрещивания, заменяют в X' хромосомы с максимальными значениями /а,

7. Мутация. Для каждой хромосомы из подмножества X' случайным образом выбирается число на отрезке [0,1], и если это число меньше или равно рт, то к данной хромосоме применяется оператор мутации. Каждая хромосома, полученная в результате действия оператора мутации, заменяет в X' исходную хромосому.

8. Уплотнение. К каждой хромосоме из подмножества X' применяется оператор уплотнения. Новые хромосомы, полученные в результате действия оператора уплотнения, заменяют в X' исходные хромосомы. Данный оператор уменьшает отрезки времени простаивания ВУ в расписаниях, соответствующих данным хромосомам.

9, Восстановление элитных хромосом. Хромосомы с максимальными значениями ¡а в подмножестве X' заменяются на хромосомы из множества У.

10, Текущей популяцией становится X': X = XОсуществляется переход на шаг 2, Длина | зта | (продолжительность) слота вта рассчитывается исходя из параметров,

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

где к^ и кт — коэффициенты, характеризующие производительноеть ВУ ф^ и фт. Данные коэффициенты рассчитываются на основании параметров, влияющих на производительность ВУ, например, числа конвейеров, эффективности работы процессора с различными типами памяти, тактовой частоты и т, и,

3. Функция пригодности

Часто в качестве критериев оценки пригодности расписаний при использовании ГА применяются критерии длины расписания и среднего взвешенного времени прохождения заданий. Оба критерия имеют существенные достоинства и недостатки при их применении для поиска расписания выполнения параллельных заданий в РВС, Длина расписания учитывает лишь последнее по времени завершения задание и плохо "справляется" с уплотнением процессов в расписании. Критерий среднего взвешенного времени прохождения заданий "справляется" с уплотнением расписания. Тем не менее значение функции пригодности с данным критерием зависит от порядка следования заданий. Для равнозначных расписаний это ведет (при большом числе сильно различающихся по длительности заданий) к существенному разбросу значений функции пригодности, что мешает работе ГА,

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

где Ma — множество номеров ВУ, которым сопоставлены ело ты из хромосомы Xa, Ima — множество номеров слотов, соответствующих ВУ фт\ NV — число всех виртуальных узлов в РВС; | sima | — длина слота sima £ Xa\ Aima — вес процеcea ui при запуске его на ВУ фт. Вес \ima процесса ui та В У фт необходим для учета его приоритета: Aima = (pia)dima, где pia — приоритет процесса щ, dima — порядковый помер следования слота sima ш В У фт.

4. Учет зависимостей между заданиями

(5)

(6)

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

можно представить в виде направленного ацикличного графа. Будем рассматривать ситуацию, когда каждое задание может зависеть только от одного задания, что в большинстве случаев достаточно. Если г-е задание зависит от ]-го, то должно выполняться условие ита > + 1в^а1, где и Ь^а — моменты времени запуска соответствующих заданий, |в^та| — длительность выполнения процесса ]-го задания на ВУ фт Е Ф, т Е Ма, Ма — множество номеров ВУ, которым соответствуют слоты в расписании, кодируемом хромосомой Xа, г,] Е 1а, 1а — множество номеров слотов в хромосоме Xa.

Для учета зависимостей между заданиями при мутации необходимо соблюдать коридор допустимых значений для отрезка времени выполнения процессов г-го задания в расписании, кодируемом хромосомой Xa: [¿™а, ^тта]- Коридор мутации определяет отрезок времени с минимальным значением момента запуска ^та и максимальным значением момента завершения ¿та« выполнения процессов соответствующего задания, В рамках указанного отрезка времени слоты, соответствующие процессам этого задания, могут быть смещены генетическими операторами.

Пусть г-е задание должно быть завершено до момента начала ]-го задания, а к-е задание должно начать выполняться не ранее момента завершения ]-го задания. Тогда границы коридора мутации для г-го задания задаются как = ита + |^та| и Ь^та = Ькта, ВД6 ^та и Ькта ~ моменты начала выполнения ]-го и к-го заданий, а |^та| — длина

г т Е Ма

начальной популяции,

В алгоритмах генетических операторов также приходится проверять, могут ли слоты Simа и в^па быть заменены друг на друга в расписании без нарушения коридоров мутации, т,п Е Ма, г,] Е 1а- Обозначим через ита и Ьупа — моменты начала слотов ^та и 8]Па-, & ^тХа ъ ^та ~ моменты завершения коридоров мутации этих слотов для

фт фп

хромосоме Xа, если выполняются следующие условия:

я- С [/• Ьтах] я- С [/• Ьтах] (7)

5. Учет ресурсных ограничений

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

Важная задача при применении ГА к составлению расписания для РВС — разработка механизма учета указанных ограничений. Представляемый алгоритм является ресурсно-зависимым — т, е, учитываются ограничения (2) на ресурсы, необходимые заданиям, Его идея заключается в сокращении пространства выбора ВУ перед применением генетических операторов.

Используется дополнительная структура данных — маска ресурсов. Алгоритм создания маски ресурсов для слота $*^та Е Xа приведен ниже, здесь т Е Ма, Ма — множество номеров ВУ, которым соответствуют слоты в расписании, кодируемом хромосомой Xа, г Е 1а, 1а — множество номеров слотов из хромосомы Xа.

1, Обозначим через Б1а = {Цпа : п Е М} булевый вектор, значение компоненты Щпа которого равно 1, если для номера ресурса е, ВУ фп и слота $*^та выполняется неравен-

ство (2), и Цпа = 0 — в противном случае. Элемент Цпа данного вектора устанавливает возможность сопоставить слот 8*та с В У фп без нарушения ресурсного ограничения для ресурса номер е.

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

2. Вычисляется булевый вектор Бга, устанавливающий возможность сопоставить слот з*та с тем или иным ВУ во всей РВС с учетом всех ресурсных ограничений:

где Д — логический оператор коныокции, а N — число всех типов ресурсов в РВС. В результате элемент Ьта £ Б^а определяет следующую возможность:

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

6. Создание начальной популяции

Для создания хромосом начальной популяции применялся модифицированный алгоритм обратного заполнения (Backfill), часто используемый при составлении расписаний как для вычислительных кластеров [14], так и для РВС типа Grid [15] и на сегодня эталонный при составлении расписания параллельных заданий для РВС.

Входными данными алгоритма являются: V = {vp : p =1, 2,..., P} — множество заданий, удовлетворяющих условию (4), P — число заданий, для которых составляется расписание; Ф — объединение групп ВУ вида (3). Результат работы алгоритма — хромосома Xa £ X, где X — множество хромосом создаваемой популяции.

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

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

1. Элементы vp £ V сортируются по убыванию приоритетов заданий, образуя новый отсортированный список V' = {vi : i =1, 2,..., P}.

2. Пусть хромосома Xa па данном шаге не содержит ни одного слота. Тогда для каждого i = 1, 2,..., P последовательно выполняются следующие действия.

2.1. Полагается v* = v^ если для задания v* ранее уже были добавлены слоты в хромосому Xa и i = P, Toi = i + 1 и осуществляется повторное выполнение текущего пункта алгоритма.

2.2. Если i = P, то работа алгоритма завершается.

2.3. Если существует такое задание vj £ V', что задание v* может быть запущено не ранее завершения vj (v* зависит от vj), то имеем следующее.

2.3.1. Устанавливается нижний временной предел t* запуска зада пня v*:

если Ьг

1, то слот s*ma может быть сопоетавлен с ВУ фт, 0, то слот s*ma те может быть сопоставлен с ВУ ф,,

m

m

где tjma и | Sjma | — начато и длина слотов для задания Vj в хромосоме Xw m G M, M — множество номеров всех ВУ в РВС,

2,3,2, Полагается v* = Vj и осуществляется переход на начало шага 2,3,

2.4, Определяется множество окон Wa = {wka : k = 1,2,..., Na}. Здесь wka = {skna : n G M}, оде Na — число окон в расписании, кодируемом хромосомой Xa.

2.5, Создается маска ресурсов B*a для задания v*.

2.6, Пусть W* С Wa — множество окон, для N* слотов skna которых bna = 1, где

bna G Ba k G K, n G M0 K — множество номеров холостых слотов из Xa, M0 —

N*

цессов задания v*. Тогда случайным обр азом из W* выбирается о кно w* с минимальным моментом времени начала.

2.7, К хромосоме Xa добавляются слоты для процессов задания v* с моментом на-

w*

v*

X

t* v*

t*

X

7. Оператор скрещивания

Входными данными алгоритма оператора скрещивания являются хромосомы Xi G X и X2 G X, гДе X — множество хромосом в популяции, В результате работы данного алгоритма создается новая (дочерняя) хромосома X3.

На рис, 2 схематично показан процесс "сборки" дочерней хромосомы из двух родительских (у слотов sima опущен индекс m (номер ВУ)), Точки разрыва оператора скрещивания выбираются строго между множествами слотов, сопоставленных различным группам ВУ,

Точки разрыва

Рис. 2. Схема скрещивания двух хромосом

Алгоритм оператора скрещивания следующий,

1, Множества слотов Х1 и Х2 разбиваются на непересекающиеся подмножества

где Мд — множество номеров ВУ из д-й группы, 1д/з — множество номеров слотов, сопоставленных с ВУ из д-й группы согласно расписанию, кодируемому хромосомой Хр соответственно, Мд — количество групп виртуальных узлов в РВС,

2, Для каждого номера группы д = 1, 2,... ,Хд в хромосому Х3 добавляются слоты из множества (Хд1\Х3), если д — четное, либо из множества (Хд2\Х3), если д — нечетное,

8. Оператор мутации

Ниже описан алгоритм оператора мутации в ГА составления расписания выполнения параллельных заданий в РВС, разбитый на две части, В первой части рассмотрена последовательность действий для выбора слотов двух заданий, во второй — описываются действия по обмену слотов этих заданий.

Часть первая. Алгоритм оператора мутации применяется к хромосоме Ха Е Х.

1, Создается маска ресурсов = {Ъ^па : п Е М} для слота где номер ] Е 1а слота выбирается случайным образом, 1а — множество номеров слотов, которые присутствуют в хромосоме Ха1 М — множество номеров всех виртуальных узлов в

рва

2, Определяется множество Х'а С Ха слотов, принадлежащих ВУ фп, для которых Ъупа = 1, где Ъупа Е Б а п Е М.

3, Если Х'а = 0, то работа алгоритма завершается,

4, Для всех слотов из множества Х'а создаются теки ресурсов Бка = {Ъкьа : Ь Е М}, где к = 1, 2,..., М'а, Х'а — число слотов из множества Х'а.

5, Определяется подмножество Уа С Х'а слотов, чьи маски ресурсов Бка включают элемент Ъкта = 1, где т — номер ВУ первоначально выбранного слота 8^та. Таким образом, Уа — подмножество слотов, на которые выбранный на первом шаге слот в^та может быть заменен без нарушения определяемых неравенством (2) ресурсных ограничений,

6, Если Уа = 0, то работа алгоритма завершается,

7, Пусть У1а С Уа — подмножество слотов заданий, которые должны быть завершены до начала слота У2а С Уа — подмножество слотов заданий, которые должны начинаться те ранее момента завершения слота 8^та. Определяется подмножество

8, Если У'а = 0, то работа алгоритма завершается,

9, Определяется подмножество Zа С У^ состоящее только из таких слотов вгпа, что для и $гпа соблюдаются условия коридора мутации (7),

10, Если — 0, то работа алгоритма завершается,

11, Пусть Х1а С Ха — подмножество слотов, соответствующих процессам того же задания, что и слот Ы1а — число слотов из множества Х1а, а Ы'а — число процессов в задании, которому принадлежит соответствующий слоту вта Е процесс, Mj — число ВУ в группе, соответствующей слоту Sjmа, а М' — число ВУ в группах Ф^ Е Ф,

Хдв = ^тв : т Е Мд, г Е 1дв} , в =1, 2,

Уа = Уа\ (У1«и Ута).

а

соответствующих слотам 8гта Е Определяется подмножество слотов вгПа Е Zа, для которых Мха < Ы' и М'а < Ы^.

12, Если Z' = 0, то работа алгоритма завершается,

13, Выбирается случайным образом слот €

Первая часть алгоритма позволяет выбрать два слота: 8^та Е Ха (далее — слот первого задания) и 8* Е Z' (далее — слот второго задания) для мутации обменом без нарушения ограничений, налагаемых на расписание выполнения параллельных заданий в РВС, Во второй части алгоритма осуществляется такое переупорядочивание слотов Х

другое (слоты второго задания) и наоборот.

Часть вторая. Пусть Х1а и Х2а — множества слотов, соответствующих первому и второму выбранным в первой части описываемого алгоритма заданиям, Б\а и В2а — маски ресурсов для процессов этих заданий, а Ь\а и 12а — моменты времени начала слотов из множеств Хха и Х2а в расписании, кодируемом хромосомой X а.

1, Определяется такое подмножество Х[а С Х а слотов что 8\та С $'та для

всех таких т, что Ь2та = 1,Ь2та Е В2а, т Е Ы, г Е 1'1а, где Ы — множество номеров всех ВУ в РВС, Г1а — множество номеров слотов из подмножества Х[а.

Х2 С Х

алгоритма,

3, Случайным образом выбираются М1а неповторяющихся слотов 82та Е Х'2а, где М\а — число слотов, соответствующих первому заданию. Пусть 1\па и 1'2та — начала слотов в1па Е Х1а и 82та соответственно, а \8\паслота 8\па. Для всех 8\па Е Хха выполняются следующие действия,

3.1, Слот 8\па сопоставляется с ВУ фт, где фт — ВУ, с которым сопоставлен слот

82т

3.2, Вычисляется новое значение начала слота 8\та: 1\та = Ь'2та.

3.3, Вычисляется новое значение начала слота 82та: Ь'2та = tlmа + \8\та \.

3.4, Пусть 8* = 82та, ф* = фт а 1 * — пустое множество. Тогда выполняются следующие действия,

3.4.1, В 1 * добавляются номера слотов, которые соответетвуют ВУ ф* и начинаются

8*

3.4.2, В 1* добавляются

номера слотов 8^па Е Ха1 принадлежащих заданиям, которые соответствуют добавленным на предыдущем шаге слотам, ? Е 1а, п Е Ы.

3.4.3, Для каждого слота 8^па.; номер которого был добавлен в 1* на предыдущем шаге, рекурсивно выполняются шаги 3,4,1-3,4,3 (8* = 8^па, ф* = фп).

3.5, V? Е 1 * вычисляются новые значения начала слотов 8^та Е Х а: 1^та = 1^та +

\81та \ •

4, Производятся аналогичные предыдущему шагу алгоритма вычисления для слотов, принадлежащих подмножеству Х2а.

5, Так как переупорядочивание слотов множеств Х1а и Х2а в хромоеоме Х а может привести к смещению подмножества слотов в расписании, то образованные в результате этого отрезки времени простаивания ВУ кодируются в хромосоме Ха холостыми слотами.

9. Оператор уплотнения

В результате переупорядочивания слотов в хромосоме оператором мутации могут появляться множества холостых слотов. Часть хромосом в популяции после мутации можно сжимать, уменьшая длину холостых слотов или исключая эти слоты, если их длину можно уменьшить до нуля. Входным параметром алгоритма оператора уплотнения является хромосома Ха Е X. Оператор уплотнения описывается в следующем виде,

1, Пусть Хра = [врта : т Е Мра} — множество слотов задания ура из хромосомы Ха, а Мра — множество номеров ВУ, с которыми сопоставлены слоты этого задания из Ха. Определяется множество Уа = [ура : р Е Р}, где Р — множество таких номеров заданий, что для каждого их слота выполняется следующее равенство:

Ърта Ъ0та + ^¿ш«1, т Е М, ^ Е 1а, (9)

гДе и |в°ша| — начало и длина холосто го слота в0та Е Ха, 1рта — момент начала задания ура та В У фт, 1а — множество номеров холостых слотов из хромосомы Ха М

формируют множество Уа.

2, Уура Е К: ее л и ^Щх < ^Щх ~ начало коридора допустимых значений для ьра, создаётся множеетво У'а го слотов 8°ртаЛ\иаче все слоты в0та Е Уа заменяются в хромосоме Ха двумя слотами в ¿рта и 82рта: 1в1рта П в2рта1 = 0 1ртаУ} 82рта = 5рта; и создаётся множество У'а, состоящее из слотов в2рта, которые начинаются раньше соответствующих слотов в1рта.

3, Выбирается случайное целое число ^ 1 < ] < Ха.; где Ха — число элементов из множества Уа. Тогда Mjа С М — подмножество номеров ВУ, с которыми сопоставлены слоты для задания Vjа Е Уа.

4, Определяется подмножество У'а С Уа заданий, слоты которых не сопоставлены с ВУ из Ф,

5, Пусть Zjа = {в,та : ] Е Ра, т Е М,а} — множество слотов для задания Vjа, где ,1а — множество номеров сл отов из Ха, соответствующих этому заданию. Тогда для всех слотов э,та Е Zjа■. слоты э,та ш в0та Е У'а обмениваются моментами времени их начала,

6, Е У^ для всех слотов, соответствующих заданию Viа выполняются действия, аналогичные описанным на предыдущем шаге алгоритма,

7, Осуществляется переход на шаг 1,

10. Результаты численных экспериментов

Решение задачи составления расписания выполнения заданий с использованием ГА считалось найденным, если максимальное значение функции пригодности в популяции отличалось от наилучшего (заранее известного) решения не более чем на 5 %, Генерировалось множество заданий для расписания с известным значением функции пригодности. Длина оптимального расписания — 1000 ч, В качестве описания ресурсов РВС для тестирования были взяты два кластера Вычислительного центра ДВО РАН, Краткие характеристики кластеров приведены в таблице.

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

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

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

Для оценки эффективности реализации ГА по сравнению с алгоритмом обратного заполнения проведен следующий численный эксперимент. Для фиксированной конфигурации РВС рассматривались задания в очереди с различным числом процессов. Изменялось как максимальное число процессов каждого задания (Мр = 10,..., 40), так и число процессов всех заданий (М = 128, 256,..., 1024),

Необходимо отметить, что значение Мр ограничивает лишь верхнюю границу числа

1

1

Мр. Учитывались средние значения по 30 прогонам для каждого сочетания факторов. Все задания имели одинаковый приоритет, равный 1,

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

где 1т] — длина подрасписания для ВУ фт Е Ф в поколении ^ N — число всех ВУ в Ы

На рис, 3 представлена зависимость выигрыша в загруженности 1 — от общего числа процессов N. Здесь 1 — загруженность ресурсов согласно расписанию, полученному алгоритмом обратного заполнения (использовалось лучшее расписание в начальной популяции), 1 — загруженность ресурсов согласно расписанию, оптимизированному ГА (бралось лучшее расписание в последней популяции помер I). По приведенным на рисунке зависимостям видно, что при N > 128 ГА может оптимизировать расписание, увеличивая загруженность рассматриваемых ресурсов. При этом больший выигрыш по загруженности наблюдается при относительно низких значениях общего числа процессов N. Резкое увеличение разницы между эффективностью двух алгоритмов при небольших N объясняется тем, что при большем числе процессов алгоритм обратного заполнения имеет возможность оперировать большим числом окон, что ведет к более плотной загруженности ресурсов.

Среднее время простаивания вычислительных ресурсов Д.,- в поколен ии ? генетического алгоритма есть величина, показывающая среднее время ожидания всех ВУ в РВС

Характеристики вычислительных кластеров ВЦ ДВО РАН

Количество

Число конвейеров Оперативная память на один ВУ на один узел/один ВУ, Гб

№ узлов кластера

ВУ

Тип процессора

1 8

32 Хеоп 5060 3.2 ГГц

4

4/1

2 5

40 Хеоп 5450 3.0 ГГц

4

16/2

после выполнения всех запланированных расписанием процессов до момента времени, соответствующего длине расписания:

^ = Тт X/ ~~ '

где — длина подрасписания на ВУ фт Е Ф в поколении Тогда сэкономленное время простаивания есть разность Д0 — А/, где Д0 — среднее время простаивания ресурсов в лучшем расписании, сгенерированном алгоритмом обратного заполнения для популяции помер 0, А/ — среднее время простаивания ресурсов в лучшем расписании в последнем поколении ГА,

Практический выигрыш наблюдается на зависимости сэкономленного времени простаивания от N и N (рис, 4), По этим зависимостям видно, что в данном случае можно сэкономить порядка 8-12 ч процессорного времени на каждый ВУ, Однако при N < 128 включать оптимизацию расписания, уже полученного с помощью алгоритма обратного заполнения, нецелесообразно.

7

6

5

4

*

3

2

1

0

1 1 1 1

_ Р 15 ----X---- -

20 ---"Ж----

25 ........е........ _

/ \ 30 —ш—

- / р............... ............ 35 —в— _

/ /■-------- / 40

ч\\""*.... -

~ / //;'/ ^ "'-ж....... ___________ ""--С. . Л

/ // ■''' ,.*', ■ ^

- . .........—................'•..13...... " — --- ' /: м

Г 1 | 1 1 1 1

256

384

768

896

1024

Рис. 3. Зависимость выигрыша в загруженности ресурсов ш/ — -—о от числа процессов N и максимального числа процессов одного задания Np

35 30 25 20 15 10 5 0

^=10

15 —-х—■ 20 --*--

25 ........в........

30 --■■—■ 35 --е--40 ---.--

256

........ ■----- -Х-—

-ж.......... .....Ж........ ..........В...........'"•

-■-О---- ■

384 512 640 768 896

1024

N

Рис. 4. Зависимость сэкономленного времени простаивания До — Д/ от числа процессов N и максимального числа процессов одного задания N

Значения длин I расписаний, возникающих при различном значении можно оценить по зависимостям, приведенным па рис, 5, С ростом N возрастает и длина расписания, Это происходит в силу увеличения отрезков времени простаивания ВУ, которые возникают в силу условия одновременности запуска всех процессов параллельного задания.

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

1 М

г=1

где ^ — время начала выполнения г-го процесса в лучшем расписании из всех, полученных на итерации ГА, N — число процессов в расписании.

На рис, 6 показана зависимость д0 — д/ от числа процессов N всех заданий. Здесь д0 ид/ — значения среднего времени ожидания в расписаниях, полученные соответственно алгоритмом обратного заполнения и ГА в последнем поколении. Как и в случае с зависимостью т/ — 10 от N на рис. 6 при небольших N наблюдается увеличение времени ожидания запуска заданий д0 — д/. С ростом N выигрыш от использования ГА уменьшается и затем стабилизируется в некотором коридоре значений.

N=10

у 15 —-х—-

20 --*--

25 ........а........

30 ■

35 --е--

40 ----■•----

-¡К

120 100 80

Л- 60

40 20 0

128 256 384 512 640 768 896 1024

N

Рис. 5. Зависимость длины I расписания от числа процессов N и максимального числа процессов одного задания ^

128 256 384 512 640 768 896 1024 1152 1280 1408

N

Рис. 6. Зависимость разницы значений среднего времени ожидания запуска заданий 50 — 5/ от числа процессов N

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

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

fl] Foster I., Kesselman С., Nick J., Tuecke S. The physiology of the Grid: An open Grid services architecture for distributed dvstems integration // Comput. Networks: The Intern. J. Comput. and Telecommunicat. Networking. 2002. Vol. 40, No. 1. P. 5-17. [2] Foster I., Kesselman C., Tuecke S. The anatomy of the Grid: Enabling scalable virtual organizations // Intern. J. High Performance Comput. Appl. 2001. Vol. 15, No. 3. P. 200-222.

[31 Brian H. Cloud computing // Communicat. ACM. 2008. Vol. 51, No. 7. P. 9-11.

[4] Luis V., Juan C., Maik L. A break in the clouds: towards a cloud definition // ACM SIGCOMM Comput. Communicat. Rev. 2008. Vol. 39, No. 1. P. 50-55.

[5] Филамофитский М.П. Система поддержки метакомпьютерных расчетов X-Com: Архитектура и технология работы // Вычисл. методы и программирование. 2004. Т. 5, № 2. С. 123-137.

[61 Heien Е.М., Anderson P.D., Hagihara К. Computing low latency batches with unreliable workers in volunteer computing environments //J. Grid Comput. 2009. Vol. 7, No. 4. P. 501-518.

[7] Шаповалов Т.е., Пересветов В.В. Генетический алгоритм составления расписаний для распределенных гетерогенных вычислительных систем // Вычисл. методы и программирование. 2009. Т. 10, № 1. С. 159-167.

[8] Feitelson D.G., .Jet i e М.А. Improved utilization and responsiveness with gang scheduling in job scheduling strategies for parallel processing // Lecture Notes Comput. Sci. 1997. Vol. 1291. P. 238-261.

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

[9] YOO А.В., ЛкП К M. An efficient and scalable coscheduling technique for large symmetric multiprocessor clusters // Ibid. 2001. Vol. 2221. P. 21-40.

[10] Zhang Y., Franke H., Moreira J., Sivasubramaniam A. An integrated approach to parallel scheduling using gang-scheduling, backfilling and migration // Ibid. 2001. Vol. 2221. P. 133-158.

[11] Baker M. Cluster Computing White Paper. Portsmouth: Univ. Portsmouth, 2000. 119 p.

[12] Коффман Э.Г. Теория расписаний и вычислительные машины. М.: Наука, 1984. 336 с.

[13] Holland J.H. Adaptation in Natural and Artificial Systems: An Introductory Analysis With Applications to Biology, Control, and Artificial Intelligence. Cambridge: The MIT Press, 1992. 228 p.

[14] Топорков В.В. Модели распределенных вычислений. М.: Физматлит, 2004. 320 с.

[15] Коваленко В.Н., Семячкин Д.А. Использование алгоритма Backfill в Грид // Распределенные вычисления и Грид-технологии в науке и образовании. Дубна: ОИЯИ, 2004. С. 139-144.

Поступила в редакцию 1 июля 2010 г.

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