Научная статья на тему 'Алгоритм мультиагентного диспетчирования ресурсов в гетерогенной облачной среде'

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

CC BY
78
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЛАЧНАЯ ВЫЧИСЛИТЕЛЬНАЯ СРЕДА / CLOUD COMPUTING ENVIRONMENT / ГЕТЕРОГЕННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ РЕСУРСЫ / HETEROGENEOUS COMPUTING RESOURCES / ПОТОК КРУПНОМАСШТАБНЫХ ЗАДАЧ / FLOW OF LARGE-SCALE TASKS / МУЛЬТИАГЕНТНОЕ ДИСПЕТЧИРОВАНИЕ / MULTI-AGENT DISPATCHING / ПРОГРАММНЫЙ АГЕНТ / АДАПТИВНОЕ РАСПРЕДЕЛЕНИЕ РЕСУРСОВ / ADAPTIVE RESOURCE ALLOCATION / DECENTRALIZED CONTROLLER

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

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

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

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

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

Algorithm of multi-agent dispatching resources in heterogeneous cloud environments

The work is devoted to a solution for the problem of adaptive scheduling (allocation) of resources in a cloud computing environment (CCE), which includes heterogeneous computing resources in its set. The environment is designed for solving large-scale scientific problems on a flow entering at random times, and consisting of a set of interconnected information subtasks. In the present work, the previously proposed by authors method of multi-agent scheduling CCE is extended to general case when all resources of the CCE have different performance for solution of various problems, and various bandwidth communication channel with the cloud infrastructure. Under these conditions, the formal staging for problem scheduling in CCE is given and the authors suggest principles to solve it using a variety of software agents, which are physically implemented in the individual computing resources and representing their “interests” in the process of scheduling. We also propose the algorithm for multi-agent software agent manager, which provides adaptive distribution of all available at the current time computer resources for solution of the problems related to their actual performance and bandwidth of communication channels. The results of experimental studies using this heterogeneous programming model have shown the efficiency of proposed approaches.

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

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

Том 21, № 5, 2016

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

И.А. Каляев1'2, А.И. Каляев2'*, Я.С. Коровин2

1 Южный федеральный университет, Ростов-на-Дону, Россия

2 НИИ многопроцессорных вычислительных систем ЮФУ, Таганрог, Россия *Контактный e-mail: anatoly@kalyaev.net

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

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

Введение

В настоящее время уровень развития телекоммуникационных технологий открывает новые возможности организации распределенных вычислений на основе множества пространственно удаленных вычислительных ресурсов с помощью сервис-ориентированной инфраструктуры, обеспечивающей "вычисления по требованию". Эти возможности породили новую парадигму облачных вычислений, т. е. крупномасштабных распределенных вычислений на основе пула абстрактных, виртуализованных, динамически перераспределяемых вычислительных ресурсов, предоставляемых по запросу внешним пользователям через Интернет [1]. Облачные вычислительные среды (ОВС) находят все

© ИВТ СО РАН, 2016

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

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

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

1. Постановка задачи

Проблему диспетчирования ОВС можно формализовать в следующем виде. Предположим, что ОВС должна решать некоторое множество (поток) различных крупномасштабных задач Z =< Z1,Z2,...,Zм >, которые могут поступать от пользователей в случайные моменты времени. При этом под крупномасштабной задачей будем понимать задачу, состоящую из некоторого множества информационно зависимых (взаимосвязанных) подзадач, каждая из которых имеет значительную вычислительную трудоемкость. Формально каждая такая крупномасштабная задача Z[ Е Z может быть представлена в виде некоторого графа Ог^I, Х^) (рис. 1), вершины qj Е QI которого соответствуют некоторым подзадачам А^, принадлежащим множеству подзадач А =< А1,А2,...,Ас >, а дуги ,qj+l) Е Х{ определяют информационные взаимосвязи между подзадачами (т. е. если две вершины qj и соединены дугой х^, qj+1),

то это означает, что данные, полученные в результате решения подзадачи А г, приписанной вершине ^, необходимы для выполнения подзадачи А^+1, приписанной вершине qj+1). Будем считать, что каждой вершине ^ Е Q1 приписан тип решаемой подзадачи А г Е А, а также определена ее вычислительная трудоемкость У^, оцениваемая числом элементарных вычислительных операций, выполняемых при ее решении, а дуге х(Чз,Чг+1) Е Хг приписан объем данных ^, передаваемых от подзадачи А^, приписанной вершине ^, подзадаче Аг-+1, приписанной вершине qj+1 (рис. 1). Кроме того, положим, что пользователь устанавливает и приписывает конечной вершине ^ графа Х1) момент времени Т1Шах, к которому он желает получить результат решения своей задачи Zl, а также определяет количество премиальных баллов (бонусов) О, которое он готов заплатить за это.

Пусть в состав ОВС входит множество вычислительных ресурсов И. =< К1, К2,..., К^ >. При этом под вычислительным ресурсом будем понимать некоторое вычислительное устройство (сервер, многопроцессорную вычислительную систему и т.п.), подключенное к облачной инфраструктуре. Будем считать, что каждый ресурс К» Е И может решать некоторый набор (подмножество) подзадач А» =< А\,А\,... Агь >С А (г = 1, 2,..., N), причем реальная производительность ресурса К» при решении подзадачи Aгj Е А» составляет ^ = Р (Аг) (7 = 1, 2,... ,Ь) операций в секунду. Кроме того, пропускная способность канала связи ресурса К» Е И с облачной инфраструктурой составляет У» байт/с.

Целью работы диспетчера ОВС является такое распределение подзадач потока задач Z по вычислительным ресурсам К1,К2,... , К^, при котором все задачи Zl Е Z будут выполнены к установленным пользователями моментам времени Т.'1Шах.

До недавнего времени проблема диспетчирования ОВС решалась, как правило, посредством специально выделенных серверных узлов, функции которых заключались в приеме пользовательских задач и их распределении по вычислительным ресурсам ОВС [6,7] (в качестве примера можно привести проект "Корпоративное облако СО РАН" [8]). Однако такая централизованная организация диспетчера имеет ряд недостатков. Во-первых, при большом числе разнородных ресурсов в ОВС, отличающихся производительностью и пропускной способностью каналов связи, их оперативное распределение по задачам (а тем более по отдельным информационно связанным подзадачам) с помощью одного центрального диспетчера (или дерева диспетчеров) проблематично. Данная проблема многократно усложняется в случае, если ОВС должна решать не одиночную

Пользователи

'овс

ГТ п

1 2

Канал связи

Канал связи

п

м

1 1

до, Д°с

1

А А

V V 1

Агент Агент Я2 Агент

...

Вычислительные ресурсы

Рис. 2. Структура ОВС с мультиагентным диспетчером

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

Указанные недостатки устраняются при использовании принципов мультиагентного диспетчирования ресурсов в гетерогенных ОВС [9-12]. В качестве основных активных элементов ОВС предлагается использовать программные агенты, физически реализуемые на каждом вычислительном ресурсе £ И (г = 1,^), входящем в состав ОВС, и представляющие его "интересы" в процессе диспетчирования. Взаимодействие пользователей и агентов осуществляется посредством некоторого множества специально выделенных пассивных узлов, составляющих служебный уровень облачной инфраструктуры и выполняющих функции досок объявлений (ДО) (рис. 2).

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

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

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

Прежде чем приступить к разработке нового алгоритма мультиагентного диспетчирования ОВС, лишенного указанных выше недостатков, расширим понятие "нити", введенное в [5]. Как и раньше, под нитью будем понимать некоторую последовательность вершин И/ =< д{, ^- ,Чк > графа О^Ц^ Х^) задачи £ 2, в которой вершины ^ и (] = 1, 2,...,к — 1) соединены дугой ,(/■+1) (рис. 3). Иными словами, нить определяет некоторую последовательность подзадач задачи 2\, в которой каждая последующая подзадача использует в качестве исходных данных результат выполнения предыдущей подзадачи. Очевидно, что подзадачи, приписанные вершинам нити И/, могут выполняться только последовательно. При этом под длиной нити И/ будем понимать суммарное время, затрачиваемое на ее решение, определяемое как

^ + ✓ \

к (У11 /

г=1

где VI — вычислительная трудоемкость подзадачи А^, приписанной вершине д/ (г = 1, 2,..., к) нити И/; — производительность ресурса Кр, решающего подзадачу А^ ¿/-+1 — время передачи данных, полученных в результате выполнения подзадачи А^, приписанной вершине щ , подзадаче А^+1, приписанной смежной вершине щ+1. Будем считать, что

0, если подзадачи А^ и А^+1 решаются одним и тем же ресурсом Кр £ Н-,

^ = I П7

Ч , г+1 ^ иг,г+1 Л Л Г> Г>

——, если подзадачи А^ и А^+1 решаются различными ресурсами Кр и Кс,

Ур

где 1 — объем данных, передаваемых от подзадачи А^ подзадаче А^; Ур — пропускная способность канала связи ресурса Нр.

^^ - вершины нити Н^ =<д{,д{> Рис. 3. Выделение нити Иf в графе Сг^г, Хг) задачи

Тогда, очевидно, если вся нить Hf выполняется одним ресурсом Я^, то ее длина будет составлять

к П1

5 = Е ^ + , (1)

где ^{к+1 — объем данных, приписанный исходящей (конечной) дуге нити И/ (рис. 3).

При этом, если известен требуемый момент времени Т[+1 исполнения всей нити И/, то допустимые моменты времени Т^ начала выполнения всех подзадач А^, приписанных ее вершинам ^ Е И/ (Л = 1, 2,... ,к), при которых ресурс Кр успевает выполнить всю нить Иf к требуемому моменту времени Т/+1, можно определить как

Лт + ^ ^ % + п

П = ТЬ-(£ | + ^ I. 1 =1- 1.

Исходя из этих соображений, можно предложить следующую процедуру мультиагентного диспетчирования ресурсов К1,К2,...,Км, входящих в состав гетерогенной ОВС, с учетом их вычислительных и коммуникационных возможностей при решении потока задач Z.

Пользователь формирует свою задачу Z^ Е Z в виде графа О1 , Хг) и определяет требуемый момент времени Т1тах., к которому ее решение должно быть получено, а также величину бонусов (премиальных баллов) О, которую он готов заплатить за ее решение. Представленный таким образом дескриптор задачи Е Z размещается на одной из досок объявлений (см. рис. 2).

Агенты, ресурсы которых не задействованы в решении каких-либо задач, обращаются к ДО в поисках работы. Если агент свободного ресурса Кр Е И обнаруживает на ДО дескриптор задачи , то он предпринимает попытку войти в сообщество (подмножество) ресурсов Иг С И, задействованных в ее решении.

Поскольку, как мы приняли выше, каждый ресурс ОВС имеет некоторую специализацию (т.е. решает ограниченный набор подзадач), может оказаться, что ресурс Кр способен выполнять далеко не все подзадачи, приписанные вершинам графа О^(Q^, Х^) задачи Zl. Поэтому в графе О1^1, X/) необходимо предварительно выделить подграф О^ ^^, Х^), вершинам которого приписаны подзадачи множества Ар, выполняемые ресурсом Кр (рис. 4). После этого необходимо проанализировать, есть ли в графе О^^^, Х^) вершины, которым приписано требуемое время их исполнения. Отметим, что изначально, в момент размещения дескриптора задачи на ДО, требуемое время исполнения Т1тах приписано только конечной вершине qк графа О^ , Х^) (см. рис. 3). Если таковых вершин нет, то агент Кр пока что не может вступить в сообщество Иг по выполнению задачи Zl и поэтому он вновь переходит к режиму опроса ДО с целью поиска других задач.

В противном случае агент Кр выделяет в графе О1^1, Х^), хранящемся в дескрипторе задачи Zl на ДО, наиболее длинную нить И1 =< ^,01,...,(^к > согласно выражению (1), конечной вершине которой приписан момент времени ее исполнения Т^+1 (см. рис. 4). Последнее может быть осуществлено с помощью одного из известных алгоритмов поиска экстремальных путей на графах [11, 12].

Рис. 4. Выделение подграфа С^О^, Х^) в графе С(О/, X/) задачи

Далее агент Кр определяет согласно (2) момент времени Т/2, когда ему необходимо приступить к выполнению первой подзадачи нити Н2, т.е. подзадачи А}, приписанной вершине д\ Е Н2, чтобы успеть завершить исполнение всей нити Н2 к заданному моменту времени Т+.

Если при этом оказывается, что Т/ < Ттек, где Ттек — текущий момент времени, то это означает, что ресурс Кр не может обеспечить выполнение всей последовательности подзадач нити Н2 =< д\, . . . , д1 > к заданному моменту времени Т^+1. Однако, поскольку мы приняли, что все ресурсы ОВС имеют различную производительность при решении идентичных подзадач, это вовсе не означает, что вся задача Zl невыполнима. Действительно, через какое-то время может появиться другой свободный ресурс Кс Е И, который сможет выполнить данную нить к требуемому моменту времени.

Поэтому в случае, если Т/ < Ттек, агент Кр должен выделить в графе заданий следующую по длине нить, конечной вершине которой также приписано требуемое время ее исполнения, и проанализировать возможность ее исполнения к данному моменту времени и т. д., до тех пор, пока он не найдет нить, которую "его" ресурс может выполнить за отведенное время, либо безуспешно переберет все нити графа (Щ, Х[) в порядке убывания их длины.

Отметим, поскольку в момент размещения задачи Zl на ДО требуемый момент времени исполнения Т^ах приписан только конечной вершине д^ графа О/ (Цг, X/) (см. рис. 3), процесс распределения подзадач этой задачи между ресурсами ОВС не "сдвинется с места" до тех пор, пока не появится свободный ресурс, способный выполнить нить Н1 = < д/, д\,..., д^ >, заканчивающуюся на конечной вершине ди графа С/(Цг, X/), к моменту времени Т?1+1 = Т^ах.

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

Если же условие Т/ > Ттек выполняется для некоторой нити Н2, то в этом случае агент Кр принимает на себя исполнение последовательности подзадач, приписанных

ее вершинам. При этом агент Кр осуществляет модификацию дескриптора задачи Zl на ДО, а именно:

1) его идентификатор записывается в список членов сообщества К по решению задачи

2) вершины, входящие в нить И/, исключаются из графа С/, X/) задачи Zl, в результате чего формируется новый граф С/^/, X/) = X/)/И/ (рис. 5);

3) всем вершинам графа С/^/, X/), инцидентным вершинам нити И/, приписываются требуемые моменты времени их исполнения, которые определяются исходя из следующих соображений.

Допустим, что некоторая вершина графа С/^/, X/) инцидентна вершине ql, принадлежащей нити И/ (рис. 5). Это означает, что для выполнения подзадачи, приписанной вершине ql, необходимы результаты выполнения подзадачи, приписанной вершине q'j графа С/^/, X/). Поэтому очевидно, что результаты выполнения подзадачи, приписанной вершине q2, должны быть получены и переданы агенту Ир, выполняющему подзадачи нити И/, не позже, чем к требуемому моменту времени начала выполнения агентом Кр подзадачи А/, приписанной вершине д/, определяемому согласно выражению (2) как

ТЧ _ гр /

Ь — 1к+/ —

VI + Д(к+Л

(3)

В противном случае ресурс Яр не успеет закончить исполнение взятой на себя нити И/ к требуемому моменту времени Гк+/. Поэтому вершине графа С/^/, X/) приписывается требуемое время ее исполнения — Т^, а также идентификатор агента Кр, которому результаты исполнения подзадачи, приписанной вершине q'j, должны быть переданы (рис. 5).

Аналогичным образом определяются требуемые моменты ТД+ исполнения всех остальных вершин графа С/^/, X/), инцидентных вершинам нити И/. Если после модификации новый граф С/^/, X/) задачи еще не пустой, т.е. С/^/, X/) — 0, то процесс создания сообщества К / для выполнения задачи Zl продолжается.

Рис. 5. Граф С^Рр Х/) задачи Zl, модифицированный агентом Кр

Допустим, что через какое-то время другой свободный агент Нс обнаруживает на ДО дескриптор задачи и предпринимает попытку войти в состав сообщества Н,г по ее решению. Для этого агент Кс выделяет в графе С|(01, ) подграф С|с(0|с, Х1с), вершинам которого приписаны подзадачи, входящие в исполняемое им множество Ад (рис. 6). Далее в графе С|с(0|с, Хг1с) агент Кс выделяет наиболее длинную нить Н2 =< >, конечной вершине д2 которой приписано требуемое время исполнения Т?+1, и анализирует возможность ее исполнения к данному моменту времени. Для этого он с помощью выражения (2) определяет время Т° начала исполнения подзадачи А2, приписанной первой вершине данной нити Но, и сравнивает его с текущим временем Ттек. Если Ттек > Т°, то это означает, что ресурс Кс не может выполнить данную нить к требуемому моменту времени Т/+1. Поэтому агент Кс продолжает анализировать следующие по убыванию длины нити графа Сг1с(0г1с, Хг1с) (для которых определено требуемое время исполнения) до тех пор, пока он не найдет нить, которую он может выполнить к требуемому моменту времени, либо не переберет все возможные нити графа Сг1с(0г1с,Х}с), после чего он снова переходит в режим опроса досок объявлений в поисках работы для "своего" ресурса.

В случае же, если агент Кс обнаруживает нить Но, для которой выполняется условие Т° > Ттек, то он принимает на себя исполнение подзадач, приписанных вершинам данной нити, и осуществляет очередную модификацию дескриптора задания 21 на ДО:

• идентификатор агента Кс записывается в список членов сообщества Н,1 по решению задачи

• вершины, входящие в нить Но, исключаются из графа С| (01, Х|), в результате чего образуется новый граф С2(02,Хо) (рис. 7);

• вершинам графа С2(02,Хо), инцидентным вершинам нити Но, приписывается идентификатор агента Кс, которому результаты исполнения этих подзадач должны быть направлены, а также требуемое время их исполнения (рис. 7), определяемое как

грз _ гро (, +1 ^

= Г'+- ЧЬ * +

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

С)СЮ)С,Х)С)

вершины графа вершины нити Н2

Рис. 6. Выделение подграфа Х[с) в графе Сг1(Рг1, Х[)

о о-

Рис. 7. Граф С/,X/), модифицированный агентом Яс

что после очередной модификации граф О^ (0,1, Х^) стал пустым. Это означает, что все подзадачи задачи Zl разобраны агентами, вошедшими в сообщество И по его выполнению.

-.—г / /

После того как некоторый агент Яр выбрал для исполнения нить И/ = < q[, , ...,д/ >, он приступает к реализации подзадач, приписанных ее вершинам. Перед началом выполнения очередной подзадачи А/, приписанной вершине q/ Е И / (й = 1, 2,..., к), агент Яр должен проверить, во-первых, наличие всех исходных данных, необходимых для ее выполнения, а во-вторых, соблюдение временного графика выполнения всей нити И / в целом.

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

Поскольку для выполнения подзадачи А/ могут требоваться исходные данные, получаемые в результате выполнения смежной нити другим агентом Яс, к моменту начала выполнения агентом Яр подзадачи А^ может оказаться, что эти данные еще не поступили. В этом случае агент Яр должен перейти в режим ожидания поступления необходимых исходных данных. Это ожидание может продолжаться до тех пор, пока > Ттек, где — требуемое время начала решения подзадачи А/, приписанной

вершине qj1 Е И/ и определяемое согласно выражению (2).

Если Т/ < Ттек, это означает, что ресурс Яр уже не успевает выполнить оставшиеся подзадачи нити И/ к требуемому моменту времени Т/+1. Однако, поскольку мы приняли, что производительность всех ресурсов при решении идентичных подзадач

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

/

выполнить оставшуюся часть нити И/ к требуемому моменту времени Т/+1. Поэтому агент Яр должен известить ДО о том, что произошло отставание от графика вычислительного процесса и он не может обеспечить решение принятой на себя нити И/ к заданному моменту времени. При этом данные, полученные ресурсом Яр в результате решения подзадачи А/-1, приписанной предыдущей вершине q/d_ 1 нити И/, отправляются агентом Яр на ДО, а дескриптор задачи модифицируется следующим образом: идентификатор агента Яр исключается из списка членов сообщества И, а оставшиеся

нереализованными вершины < д/+, д/+1,... > нити И/ возвращаются в граф задачи,

/

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

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

Если ресурс Кр успешно выполнил всю принятую на себя нить Н$ задачи к установленному моменту времени, то агент Кр информирует об этом доску объявлений. При этом идентификатор агента Кр ресурса исключается из списка участников сообщества Иг и ему начисляются премиальные баллы за выполненную работу, величина которых определяется как Ор = ОУр/У. Здесь О — премиальные баллы (бонусы), гарантируемые пользователем за решение его задачи Zl к требуемому моменту времени; Ур — суммарная трудоемкость подзадач, выполненных агентом Кр;У — суммарная трудоемкость всей задачи Zl.

Процесс решения задачи Zl в облачной вычислительной среде продолжается до тех пор, пока не окажется, что список агентов — участников сообщества Иг по ее решению пуст, а также пуст граф Сг^г, Хг), хранимый в дескрипторе задачи Zl на ДО. Это означает, что все нити задачи успешно выполнены. После этого задача снимается с ДО, а пользователю отправляется сообщение об успешном завершении процесса решения его задачи, затем пользователь переводит оплату (премиальные баллы) всем агентам, принявшим участие в решении данной задачи, в зависимости от объема выполненной ими работы (суммарной трудоемкости решенных подзадач).

Описанному выше процессу отвечает следующий укрупненный алгоритм функционирования агента, представляющего ресурс Кр в ОВС.

Алгоритм

1. Агент свободного ресурса Кр опрашивает ДО.

2. При обнаружении на ДО задачи Zl агент Кр считывает ее дескриптор и анализирует граф задачи С] ^^, Х]). Если С] ^^, Х]) = 0, то переход к п. 1.

3. Если Ттек > Т^ах, где Ттек — текущий момент времени, то переход к п. 22.

4. В графе С] ^^, Х]) выделяется подграф С31р(0:>1^, Х]р), вершинам которого приписаны подзадачи множества Ар, выполняемые ресурсом Кр.

5. Если С/р(д/р, Х]р) = 0, то перейти к п. 1.

6. г = 1; Сг(Цг, Х) = ОЧО* Х/р).

7. Агент Кр выделяет в графе О, Х^) наиболее длинную нить Н =< , 02,... , дгк >, конечной вершине которой приписано требуемое время исполнения Т^+1 (в момент размещения задания Zi на ДО требуемое время Т^+1 = Т1тах приписано только конечной вершине ^ графа Сг^г, Хг)). Если таковой нити в графе Сi (^г, Х^) нет, то перейти к п. 1.

8. Агент Кр определяет допустимый момент времени Т1, когда необходимо начать выполнение нити Hi =< , ,..., Ок >, чтобы успеть завершить ее исполнение к моменту Тк+1, как

/г Гг

грг _ грг I \ ' I к,к+1

Т1 = Тк+1 \ ор +

й О+¥)

9. Если Т1 > Ттек, где Ттек — текущий момент времени, то переход к п. 13. 10. Нить Н исключается из графа Сг(^г, Х^), т.е.

Сг+1 , Хг+1 ) = с, (дг, Хг)/Нг.

11. Если Сг+1(0г+1, Х^+1) = 0, то перейти к п. 1.

12. г = г + 1, перейти к п. 7.

13. Агент Кр принимает на себя исполнение нити Hi для чего:

• считывает с ДО последовательность подзадач, приписанных вершинам нити Нг, требуемое время ее исполнения Т'г+1 и идентификатор ресурса Кс, которому необходимо передать результаты ее решения;

• модифицирует дескриптор задач Zl на ДО. В список участников сообщества И.1 записывается его идентификатор; из графа С1 (0,1, Х{) исключаются вершины нити Нг, в результате чего формируется новый граф С^+1(0|+1, Х^1) = С , Х^ )/Hi; вершинам д1+1 модифицированного графа С^+1(0|+1, Х^1), инцидентным вершинам дгь нити Hi =< д\,дго,... ,д\ >, приписываются идентификаторы ресурсов Кр, которым необходимо передать результаты исполнения подзадачи, соответствующей вершине 5/+1, а также требуемое время их исполнения, определяемое как

-ТС _ гтп _ \ ^ У™ I ^М+М

6 = 1к+1 & + Ур .

\т=Ь ' /

14. Агент Кр переходит к исполнению последовательности подзадач, приписанных вершинам нити Нг =< д\,дго,... ,дгк >, d =1.

А ут Огк,к+1

)

15. Если Т' < Ттек, где Т' = Т^+1 — I ^ —т +--77— ) — требуемое время начала

,т=' ^т Ур

выполнения подзадачи А', приписанной вершине д' Е Нг, то перейти к п. 17.

16. Агент Кр проверяет наличие исходных данных, необходимых для выполнения подзадачи АЕсли исходные данные еще не поступили, то перейти к п. 15, иначе перейти к п. 18.

17. Агент Яр отправляет результаты решения подзадачи, приписанной вершине д'_ 1Е Нг, на ДО и осуществляет модификацию дескриптора задачи Zl: исключает свой идентификатор из списка сообщества И^; добавляет неисполненные вершины д', д'+1,... ,дгк нити Нг в граф задачи; приписывает крайней вершине этой нити момент времени Т^, к которому она должна быть исполнена, а также идентификатор ресурса Кс, которому необходимо передать результаты ее решения. Переход к п. 1.

18. Агент Кр выполняет подзадачу А', приписанную вершине д' Е Нг, с помощью "своего" ресурса.

19. Если агенту Кр поступило сообщение о прекращении выполнения задачи Zl, то переход к п. 1.

20. d = d +1, если d < к, то переход к п. 15.

21. Агент Кр сообщает на ДО об успешном завершении решения нити Нг задачи Zl. При этом результаты решения передаются ресурсу Кс, идентификатор которого приписан конечной вершине данной нити, идентификатор агента Кр исключается из списка членов сообщества И.1 по решению данной задачи, а ему начисляются премиальные баллы Ор = ОУр /V, где Ур — суммарная вычислительная трудоемкость подзадач, выполненных агентом Кр; V — суммарная трудоемкость всей задачи Zl. Переход к п. 1.

22. Задача Zl не может быть решена к установленному пользователем моменту времени. Дескриптор задачи Zl удаляется с ДО, пользователю направляется сообщение о невозможности решения его задачи к требуемому моменту времени, а всем агентам, идентификаторы которых записаны в списке участников сообщества Иг по выполнению задачи Zг, передается сообщение о прекращении ее исполнения. Переход к п. 1.

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

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

• количество ресурсов в ОВС (до 1000 шт.);

• количество различных подзадач, выполняемых отдельным ресурсом, входящим в ОВС (до 20);

• производительность ресурсов при решении подзадач различных типов и пропускная способность их каналов связи с облачной инфраструктурой;

• граф пользовательской задачи (количество вершин; вычислительная трудоемкость подзадач, приписанных отдельным вершинам; объем передаваемых данных между подзадачами, приписанный дугам графа);

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

!_ Программная модель -1 ^ н^

25000

42000

4000

37000

12000

40000

50000

43000

16000

14000

39000

4000

46000

26000

28000

36000

15000

42000

Рис. 8. Интерфейс программной модели

В качестве критериев эффективности работы ОВС при выполнении потока заданий были приняты:

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

• коэффициент гарантированности выполнения (КГВ) пользовательской задачи — отношение количества пользовательских задач, выполненных к требуемому моменту времени, к общему количеству задач, направленных пользователями на ДО.

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

Результаты серии экспериментов, проведенных при различных значениях исходных параметров программной модели, показывают, что значение КПД не опускается ниже 70 %, а значение КГВ — ниже 90 %.

Заключение

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

• квазиоптимальное адаптивное распределение ресурсов ОВС с учетом их реальной производительности на той или иной подзадаче и пропускной способности каналов связи;

• высокую полезную загрузку ресурсов ОВС;

• возможность неограниченного наращивания (масштабируемости) числа гетерогенных вычислительных ресурсов в ОВС;

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

Благодарности. Работа выполнена при поддержке РФФИ (грант № 15-29-07928). Список литературы / References

[1] Kepes, B. Understanding the Cloud Computing Stack: SaaS, PaaS, IaaS. Available at: https://support.rackspace.com/white-paper/understanding-the-cloud-computing-stack-saas-paas-iaas/

[2] Информационно-аналитический журнал Rational Enterprise Management/Рациональное управление предприятием. Круглый стол: Применение облачных технологий при организации ИТ-поддержки бизнеса промышленных компаний. Адрес доступа: http://www.remmag.ru/admin/upload_data/remmag/11-2/RoundTable.pdf Information-Analytical Rational Enterprise Management magazine / Rational Enterprise Management. Round table: The use of cloud computing in the organization of IT support business for industrial companies. Available at:

http://www.remmag.ru/admin/upload_data/remmag/11-2/RoundTable.pdf (In Russ.)

[3] Журнал "Мир Телекома". Обзор внедрения технологии облачных вычислений в регионах мира. Адрес доступа: http://mirtelecoma.ru/magazine/elektronnaya-versiya/29/

World Telecom Magazine. Review of the introduction of cloud computing technology in the regions of the world. Available at: http://mirtelecoma.ru/magazine/elektronnaya-versiya/29/ (In Russ.)

[4] "Наука и технологии России — strf.ru". Облачные технологии накроют мир. Адрес доступа: http://www.strf.ru/material.aspx?CatalogId=223&d_no=31856#.VsMVlDN72UE/ "The science and technology of Russia — strf.ru". Cloud technologies will cover the world. Available at: http://www.strf.ru/material.aspx?CatalogId=223&d_no=31856#. VsMVlDN72UE/ (In Russ.)

[5] Каляев А.И., Каляев И.А., Коровин Я.С. Метод мультиагентного диспетчирования ресурсов в гетерогенной облачной среде при выполнении потока задач // Вест. компьют. и информ. технологий. 2015. № 11. C. 31-40.

Kalyaev, A.I., Kalyaev, I.A., Korovin, Ya.S. Method of multiagent dispatching resources in heterogeneous cloud environments while performing flow of incoming tasks // Vestnik Komp'uternykh i Informatsionnykh Tekhnologii. 2015. No. 11. P. 31-40. (In Russ.)

[6] Коннов А.Л. Моделирование облачных технологий в вычислительных системах. Адрес доступа: http://conference.osu.ru/assets/files/conf_reports/conf9/436.doc Konnov, A.L. Modelling of cloud computing systems.

Available at: http://conference.osu.ru/assets/files/conf_reports/conf9/436.doc (In Russ.)

[7] IBM developerWorks. Основы облачных вычислений.

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

Адрес доступа: https://www.ibm.com/developerworks/ru/library/cl-cloudintro/ IBM developerWorks. Fundamentals of cloud computing. Available at: https://www.ibm.com/developerworks/ru/library/cl-cloudintro/ (In Russ.)

[8] Облако СО РАН. Адрес доступа: http://cloud.sbras.ru/ru/about

About "Corporate cloud SB RAS". Available at: http://cloud.sbras.ru/ru/about (In Russ.)

[9] Kalyaev, A.I. Multiagent approach for building distributed adaptive computing system // Procedia Comput. Sci. 2013. Vol. 18. P. 2193-2202.

Available at: http://dx.doi.org/10.1016/j.procs.2013.05.390

[10] Каляев А.И. Децентрализованная организация диспетчера GRID на базе сообществ агентов // Изв. ЮФУ. Технические науки. 2011. Т. 121, № 8. С. 230-238. Адрес доступа: http://elibrary.ru/item.asp?id=16562793

Kalyaev, A.I. Decentralised organization of dispatcher of grid based on agents comunities // Izvestiya SFedU. Engineering sciences. 2011. Vol. 121, No. 8. P. 230-238. Available at: http://elibrary.ru/item.asp?id=16562793 (In Russ.)

[11] Каляев А.И. Метод и алгоритмы адаптивной организации распределенных вычислений в децентрализованной GRID // Вест. компьют. и информ. технологий. 2012. № 4. С. 28-33. Адрес доступа: http://elibrary.ru/item.asp?id=17681405

Kalyaev, A.I. Method and algorithms of the adaptive organization for distributed calculations in decentralized GRID // Vestnik Komp'uternykh i Informatsionnykh Tekhnologii. 2012. No. 4. P. 28-33. Available at: http://elibrary.ru/item.asp?id=17681405 (In Russ.)

[12] Kalyaev, A.I., Korovin, Ya.S. Adaptive multiagent organization of the distributed computations // AASRI Procedia. 2014. Vol. 6. P. 49-58.

Available at: http://dx.doi.org/10.1016/j.aasri.2014.05.008

[13] Cormen, T.H., Leiserson, Ch.E., Rivest, R.L., Stein, C. Introduction to algorithms. Second Edition. The MIT Press, 2009. 1312 p.

[14] Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. М.: Мир, 1980. 476 с.

Reyngold, E., Nivergelt, Yu., Deo, N. Combinatorial algorithms. Theory and practice. Moscow: Mir, 1980. 476 p. (In Russ.)

Поступила в 'редакцию 25 декабря 2015 г., с доработки — 23 марта 2015 г.

Algorithm of multi-agent dispatching resources in heterogeneous cloud environments

Kalyaev, Igor A.1,2, Kalyaev, Anatoly I.2'*, Korovin, Yakov S.2 1 Southern Federal University, Rostov-on-Don, 344006, Russia

2Scientific Research Institute of Multiprocessing Computing and Control Systems SFU, Taganrog, 347900, Russia * Corresponding author: Kalyaev, Anatoly I., e-mail: anatoly@kalyaev.net

The work is devoted to a solution for the problem of adaptive scheduling (allocation) of resources in a cloud computing environment (CCE), which includes heterogeneous computing resources in its set. The environment is designed for solving large-scale scientific problems on a flow entering at random times, and consisting of a set of interconnected information subtasks. In the present work, the previously proposed by authors method of multi-agent scheduling CCE is extended to general case when all resources of the CCE have different performance for solution of various problems, and various bandwidth communication channel with the cloud infrastructure. Under these conditions, the formal staging for problem scheduling in CCE is given and the authors suggest principles to solve it using a variety of software agents, which are physically implemented in the individual computing resources and representing their "interests" in the process of scheduling. We also propose the algorithm for multi-agent software agent manager, which provides adaptive distribution of all available at the current time computer resources for solution of the problems related to their actual performance and bandwidth of communication channels. The results of experimental studies using this heterogeneous programming model have shown the efficiency of proposed approaches.

Keywords : cloud computing environment, heterogeneous computing resources, a decentralized controller, multi-agent dispatching, flow of large-scale tasks, adaptive resource allocation.

Acknowledgements. This work was supported by RFBR grant No. 15-29-07928.

Received 25 December 2015 Received in revised form 23 March 2016

© ICT SB RAS, 2016

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