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

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

CC BY
67
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
GRID / мониторинг состояния / мультиагентная система / нефтяное месторождение. / GRID / monitoring / multi-agent system / oil field.

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

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

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

Похожие темы научных работ по математике , автор научной работы — Коровин Яков Сергеевич, Хисамутдинов Максим Владимирович, Каляев Анатолий Игоревич, Иванов Донат Яковлевич

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

ARCHITECTURE OF MULTI-AGENT SYSTEM OF END-TO-END MONITORING OF WELL STOCK STATUS

the task of online monitoring of the state of equipment of an oil producing enterprise requires significant computing resources. At the same time, information security requirements force us to refuse to process existing data arrays on third-party cloud servers. Therefore, to assess the state of equipment, it is necessary to use the enterprise’s corporate computing resources. In order to reduce the cost of organizing the enterprise’s computer network, it is proposed to use available computing resources. The paper discusses the architecture of a multi-agent GRID system designed for end-to-end monitoring of the state of the well stock of an oil producing enterprise. The principles of organization and functioning of a multi-agent well stock system are described. An algorithm for creating a community of agents for solving user tasks, an algorithm for distributing subtasks of a user task in the agent community, and an algorithm for the functioning of the agent are proposed

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

TECHNICAL SCIENCES

ARCHITECTURE OF MULTI-AGENT SYSTEM OF END-TO-END MONITORING OF WELL STOCK STATUS Korovin Ya.S.1, Khisamutdinov M.V.2, Kalyaev A.I.3, Ivanov D.Yа.4 (Russian Federation) Email: Ivanov565@scientifictext.ru

'Korovin Yakov Sergeevich — PhD in Tecnology, Director;

2Khisamutdinov Maxim Vladimirovich — PhD in Tecnology, Senior Researcher; 3Kalyaev Anatoly Igorevich— PhD in Tecnology, Senior Researcher; 4Ivanov Donat Yakovlevich— PhD in Tecnology, Senior Researcher, SCIENTIFIC RESEARCH INSTITUTE OF MULTIPROCESSOR COMPUTER SYSTEMS, SOUTHERN FEDERAL UNIVERSITY, TAGANROG

Abstract: the task of online monitoring of the state of equipment of an oil producing enterprise requires significant computing resources. At the same time, information security requirements force us to refuse to process existing data arrays on third-party cloud servers. Therefore, to assess the state of equipment, it is necessary to use the enterprise's corporate computing resources. In order to reduce the cost of organizing the enterprise's computer network, it is proposed to use available computing resources. The paper discusses the architecture of a multi-agent GRID system designed for end-to-end monitoring of the state of the well stock of an oil producing enterprise. The principles of organization and functioning of a multi-agent well stock system are described. An algorithm for creating a community of agents for solving user tasks, an algorithm for distributing subtasks of a user task in the agent community, and an algorithm for the functioning of the agent are proposed. Keywords: GRID, monitoring, multi-agent system, oil field.

АРХИТЕКТУРА МУЛЬТИАГЕНТНОЙ СИСТЕМЫ СКВОЗНОГО МОНИТОРИНГА СОСТОЯНИЯ ФОНДА СКВАЖИН Коровин Я.С.1, Хисамутдинов М.В.2, Каляев А.И.3, Иванов Д.Я.4 (Российская Федерация)

'Коровин Яков Сергеевич — кандидат технических наук, директор;

2Хисамутдинов Максим Владимирович — кандидат технических наук, старший научный сотрудник;

3Каляев Анатолий Игоревич — кандидат технических наук, старший научный сотрудник;

4Иванов Донат Яковлевич — кандидат технических наук, старший научный сотрудник, Научно-исследовательский институт многопроцессорных вычислительных систем им. академика А.В. Каляева

Южный федеральный университет, г. Таганрог

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

УДК 004.032.26 DOI: '0.244''/2542-0798-20'9-'6502

Введение

При осуществлении мониторинга состояния нефтедобывающего оборудования [1] и проведении анализа нефтепромысловых данных [2, 3] необходимо обрабатывать в реальном времени большие объемы данных, что требует привлечения значительных вычислительных ресурсов. Использование

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

Идея использования персональных компьютеров, объединенных в вычислительную сеть для решения трудоемких задач появилась достаточно давно, однако только в последний десяток лет подобные системы начали активно использоваться и получили название «GRID» (происходит от английского power grid - электросеть). Сегодня актуальность создания подобных GRID возрастает, чему способствует как массовое появление локальных сетей, развитие доступа в интернет, так и повышение скорости общедоступного сетевого обмена информацией.

Краткий анализ современных GRID систем

Проведенный анализ современных GRID систем, таких как Globus Toolkit [4-6], Condor [7,8], AppLeS [9,10], X-COM [11] и т.д., показал, что большинство из них строятся на базе корпоративных вычислительных сетей, основу которых составляет множество вычислительных устройств со схожими параметрами, характеристики которых в процессе работы изменяются достаточно предсказуемым образом. Вычисления в подобной сети контролируются, как правило, одним или несколькими серверами, которые реализуют служебные функции GRID и осуществляют равномерную загрузку исполнительных вычислительных узлов (ИВУ) поступающими задачами. При этом все рассмотренные системы можно логически разделить на три уровня:

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

- служебный уровень, служебные вычислительные узлы;

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

Рис. 1. Обобщенная схема работы современных GRID

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

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

Попытки эффективного использования вычислительных ресурсов подобных ИВУ индивидуальных пользователей предпринимаются в последние годы. В качестве примера можно привести наиболее известный из подобных проектов - SETI@home (setiathome.berkeley.edu), использующую ИВУ-добровольцев для фильтрации сигналов из космоса с целью поиска внеземных цивилизаций. Подобные проекты объединяет то, что в них решаются в основном заранее известные задачи, которые могут быть легко разбиты на отдельные, информационно-независимые части, что позволяет достаточно просто осуществлять равномерную загрузку отдельные ИВУ и обеспечить устойчивость вычислительного процесса при динамическом изменении характеристик отдельных ИВУ.

Проблема создания универсальной GRID на основе ИВУ-«фрилансеров» существенно усложняется в случае необходимости решения на ней связных задач, т.е. задач, состоящих из информационно зависимых частей. Это вызвано в первую очередь тем, что совокупность ИВУ-«фрилансеров» подобных GRID (в

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

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

В основу предложенного подхода положен метод организации работы GRID [12], позволяющий уйти от необходимости использования специально выделенных СВУ-диспетчеров и перейти к децентрализованной организации работы GRID на базе взаимодействия независимых агентов, реализуемых на отдельных ИВУ и представляющих их интересы в процессе работы системы. Для решения проблемы взаимодействия пользователя GRID и агентов предлагается использовать пассивные служебные серверы, реализующие минимум функций. Эти серверы фактически выполняют роль «досок объявлений», в дальнейшем так и будем их называть. Схема работы такой децентрализованной GRID приведена на рис. 2.

Рис. 2. Схема организации децентрализованной GRID

Логически система разделяется на три уровня:

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

- служебный уровень, включающий в себя доски объявлений;

- исполнительный уровень, состоящий из исполнительных вычислительных узлов (ИВУ-«фрилансеров»), управляемых агентами.

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

Под сообществом в дальнейшем будем понимать некоторый сформированный коллектив агентов, объединяющих свои ресурсы для решения одной определенной задачи. Основной целью сообщества является решение своей задачи в указанный пользователем срок, при этом состав сообщества может динамически изменяться в процессе решения пользовательской задачи. Так как в общем случае предполагается, что система строится на базе ИВУ-«фрилансеров», которые принадлежат индивидуальным владельцам, то в ходе работы системы могут наблюдаться различные динамические изменения узлов вычислительной сети GRID, такие как отказы и отключения ИВУ, изменение их производительности, снижение скорости передачи данных, а также другие изменения параметров вычислительной сети, приводящие к увеличению времени решения задачи. Такие изменения параметров системы должны в свою очередь влиять на изменение состава сообщества с тем, чтобы обеспечить выполнение задачи в указанный пользователем срок.

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

17

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

Как видно из приведенного общего описания организации децентрализованной GRID, ее работа логически делится на три основных этапа:

- формирование задачи пользователем и размещение ее на доске объявлений;

- создание сообщества агентов для решения задачи;

- распределение нагрузки между агентами-участниками сообщества в процессе решения задачи;

Следует отметить, что большинство шагов в описанном выше алгоритме формирования

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

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

Как только пользовательская задача попадает на ДО начинается процесс создания сообщества агентов для ее решения.

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

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

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

Как только агент находит нерешенную пользовательскую задачу на ДО или получает приглашение о вступлении в сообщества от «знакомого» агента, он должен оценить целесообразность своего участия в решении данной задачи. Такую оценку агент может осуществить на основе двух параметров задачи - ее общей трудоемкости Y (т.е. суммарной вычислительной сложности всех вершин информационного графа задачи Y = £ f= г Y; , где К - количество вершин графа задачи G(Q,X)), и ее стоимости P (т.е. количества баллов, которые пользователь готов заплатить за ее решение). На основании отношения P/Y стоимости к трудоемкости, агент может оценить относительную выгодность решения данной задачи. Если она выше некоторой заданной величины, определяемой его владельцем, агент принимает решение о вступлении в сообщество для решения данной задачи.

Необходимо отметить, что основной задачей GRID в целом является решение максимального количества поступающих пользовательских задач за ограниченный промежуток времени. Для этого, необходимо чтобы в состав сообщества для решения задач входило минимальное число ИВУ, которые могут решить поставленную задачу за отведенное пользователем время. Иными словами, одним из требований к организуемому агентами сообществу для решения пользовательской задачи является минимизация его состава. Для этой цели предлагается использовать оценку времени решения Треш задачи сообществом агентов. Если эта оценка меньше чем время, оставшееся для решения задачи Тост= Тмах -Т* (где Т* - время, прошедшее с момента поступления задачи на ДО, а Тмах - общее время, отведенное

пользователем для решения задачи), то можно сделать вывод что число агентов в сообществе достаточно для решения пользовательской задачи за требуемое время. Можно предложить несколько вариантов такой оценки, однако в условиях децентрализованности системы и динамически изменяемого параметров и состава ИВУ сообщества целесообразно получать такую оценку максимально быстро и часто, возможно при этом жертвуя её точностью. Поэтому предлагается простейший способ оценки времени Треш, как результат деления суммарной трудоемкости (вычислительной сложности) нерешенных к данному моменту подзадач решаемой задачи Уост = £ \= х У£ , где L - количество нерешенных подзадач задачи, на суммарную производительность всех ИВУ сообщества S = £f_ г S; , где D - количество ИВУ в сообществе.

Если время решения Треш задачи оказывается больше, чем оставшееся для решения Тост, и число агентов в сообществе меньше чем М (степень распараллеливаемости задачи), то агент отправляет приглашения, содержащие актуальные данные о задаче, известным ему «знакомым» агентам с предложением о вступлении в сообщество. Если агенты, которым приходит приглашение, свободны, т.е. не участвуют в решении какой-либо другой задачи, они оценивают полученные данные и, если задача им подходит с точки зрения выгодности, принимают решение об участие в сообществе для ее решения;

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

Если максимальное количество М (где М - степень распараллеливаемости задачи) членов сообщества для решения пользовательской набрано, но время решения задачи все равно больше, чем необходимо пользователю, агент, обладающий самой низкой производительностью исключается из сообщества после завершения им решения очередной подзадачи;

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

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

Алгоритм 1 - Алгоритм создания сообщества агентов

1 Пользователь размещает дескриптор задачи на ДО;

2 ДО помечает полученную задачу как неполную;

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

а) граф задачи;

б) стоимость Р и трудоемкость Y задачи, которая определяется как сумма трудоемкостей отдельных подзадач £ f= г Y; , где К - количество подзадач в задаче;

в) статусы всех подзадач q (i= 1 ,К) («выполнена»/ «выполняется»/ «свободна»);

г) время которое осталось до требуемого пользователем момента решения задачи Тосг=Тмах-Т , где Т -промежуток времени, прошедший от момента размещения задачи на ДО;

д) степень распараллеливаемости задачи М;

4 агент Aj анализирует возможность и целесообразность своего участия в сообществе для решения какой-либо задачи. Для этого:

а) агент Aj ранжирует обнаруженные задачи по соотношению их стоимости к трудоёмкости Р/Y («выгодности» задачи);

б) агент Aj выбирает очередную задачу из списка обнаруженных задач начиная с самых «выгодных». Если список пустой, то агент переходит к пункту 5.

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

г) если N=M, где N - число задействованных в сообществе агентов, М - степень распараллеливаемости задачи, то агент удаляет задачу из своего списка обнаруженных задач и переходит к пункту 4b;

Уд) если Тост < Треш, где Треш = р'~ 1 ' , Y; - вычислительная сложность еще не решенной подзадачи q;, L

Lm=1 sm

- число еще не решенных подзадач, Sj - текущая производительность ИВУ j, D -количество ИВУ в сообществе, то агент удаляет задачу из своего списка обнаруженных задач и переходит к пункту 4b;

е) агент Aj вступает в сообщество и отправляет всем членам сообщества и на ДО данные о параметрах своего ИВУ;

ж) если производительности членов обновленного сообщества хватает для решения задачи (т.е. Тост > Треш), она помечается на ДО как полная;

5 если агент Aj вступил в сообщество, то переход к пункту 7, иначе он переходит в режим ожидания в течении времени Ладишь

6 если во время ожидания агент Aj получает сообщение с приглашением в сообщество от других агентов, он переходит к пункту 4с, иначе переходит к пункту 3;

7 если задача неполная и N<M, агент Aj рассылает приглашения на участие в ее решении известным ему агентам. Переход к пункту 9;

8 если задача неполная и N=M, то агент, обладающей наименьшей производительностью исключается из сообщества. Переход к пункту 7;

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

Приведенный выше алгоритм позволяет формировать сообщества агентов в GRID для решения поступающих в систему задач. При этом состав сообщества для решения пользовательской задачи будет зависеть от текущей производительности ИВУ его членов. Иными словами, состав сообщества будет постоянно адаптироваться к динамически изменяемым параметрам ИВУ-«фрилансеров», входящих в его состав.

Алгоритм 2 - Алгоритм распределения подзадач пользовательской задачи в сообществе агентов

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

а) агент Aj находит «свободную» подзадачу qR имеющую наименьший номер;

б) для выбранной подзадачи qR агент Aj рассчитывает время ее выполнения на своем ИВУ j как

j<Rj _ j4 i yg rpf i rpRj

1 Вып ~ 1 ост " L, f=0 1 пд ' 1р '

где Т,ст - время, которое осталось до момента завершения решения подзадачи qL, которую ИВУ j решает в текущий момент времени, вычисляемое как

где YL - вычислительная сложность решаемой в данный момент подзадачи с^,

Sj - производительность данного ИВУ

Т* - время от момента начала решения подзадачи qL до текущего момента;

Тд - время передачи данных, соответствующих дуге х^, qR) от подзадачи qf к подзадаче qR, вычисляемое как

( Щ

^ I -— , если подзадачи ц ^ и цк решаются разными ИВУ Тпд = ] Ч

(^0 , если подзадачи ц ^ и цк решаются одним и тем же ИВУ,

где Wf - объем передаваемых данных,

С - ширина (пропускная способность) канала передачи данных ИВУ ],

В - число входящих в вершину ся дуг;

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

ТР' =— - время решения подзадачи на ИВУ ],

I

где YR - вычислительная сложность задачи с^

Sj - текущая производительность ИВУ /;

2 полученное агентом значение времени сообщается всем остальным членам сообщества;

3 агенты получают данные о времени решения подзадачи т^ ото всех остальных участников сообщества. Подзадача qR закрепляется за тем агентом, который обеспечивает наименьшее время её выполнения Т^ и помечается как «выполняемая»;

Бьш '

4 агент, за которым закреплена подзадача %, считывает исполняемый модуль данной подзадачи с ДО, а также запрашивает входные данные, необходимые для ее решения от ИВУ, на которых были решены подзадачи подмножества QВ, где QВ - подмножество вершин, соединенных с вершиной % входной дугой;

5 если в сообществе остались свободные агенты, не получившие задание, то переход к пункту 1, иначе ИВУ начинают (продолжают) решение закрепленных за ними подзадач;

6 как только один из ИВУ завершает решение очередной подзадачи, он отправляет сообщение на ДО и всем остальным агентам, в результате чего данная подзадача помечается как «выполненная»;

7 основываясь на вычислительной сложности решенной подзадачи YR и времени Трееш, потраченном на ее решение, агент определяет текущую производительность своего ИВУ Sj, как S j = -Щ-. Полученные

'реш

значения сообщаются всем остальным агентам и на ДО;

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

Ул- У-

Если Тост < Треш, где Треш = D'~ 1 ' , Yi - вычислительная сложность «свободной» (еще не решенной)

подзадачи qi, L - число «свободных» подзадач, Sj - текущая производительность ИВУ j, D -количество ИВУ в сообществе, то задача помечается как «неполная» и переход в режим создания сообщества (см. Алгоритм 1 - Алгоритм создания сообщества агентов, приведенный в предыдущем разделе, пункт 7);

9 если имеются «свободные» подзадачи решаемой сообществом пользовательской задачи, то переход к пункту 1;

10 пользовательская задача решена и результирующие данные передаются на ДО и далее на пользовательский ПК.

Предложенный выше алгоритм является адаптивным, поскольку позволяет учитывать динамические изменения параметров ИВУ-«фрилансеров» в процессе распределения подзадач пользовательской задачи в сообществе агентов, вследствие чего повышается эффективность загрузки ИВУ -«фрилансеров» и эффективность работы GRID в целом.

Алгоритм 3 - Алгоритм функционирования агента

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

2 при обнаружении на ДО задачи Zi агент R считывает ее дескриптор и анализирует граф задачи

i р

G/(Q/.X/)- Если (¡j(oj _xj j=J2J, то переход к п. 1, иначе

3 если TTCK > T¡„ах , где т - текущий момент времени, то переход к п.22, иначе

4 в графе Gl (Q^ , Xj ) выделяется подграф Gjp (Qjp, Xjp ), вершинам которого приписаны подзадачи множества A p , выполняемые ресурсом Rp ;

5 если Gjp (Qjp, Xjp ) = 0, то перейти к п.1, иначе

6 i = 1; G( Qj, Xt) = Gjp( Qjp,Xjp);

7 агент Rp выделяет в графе Gj (Qj , Xj ) наиболее длинную нить Hj =< q'^,q^,...,q'k >, конечной вершине которой приписано требуемое время исполнения Tj +1 (в момент размещения задания

Zj на ДО требуемое время Tj+1 = T^^. приписано только конечной вершине qк графа Gi(Qi,Xi) ). Если таковой нити в графе Gt (Qt , Xt ) нет, то перейти к п.1, иначе

8 агент Rp определяет допустимый момент времени T , когда необходимо начать выполнение нити H^ =< q\,ql2,...qlk >, чтобы успеть завершить ее исполнение к моменту Tj+j, как:

i к Vj D j ^

у Vj | Dk,k+1

^ Sp Y

j =1 Sj p

Г = ти - _1

■ - ^ -р ]

9 если Г/ ^ Ттек , где Ттек - текущий момент времени, то переход к п.13, иначе

10 нить Н; исключается из графа (, X; ), т.е.

^+1( ^+1, Х;+1 ) = а, Х^/Н ;

11 если С^ +1 (1, X; 1) = 0, то перейти к п.1, иначе

12 / — / + 1, перейти к п.7;

13 агент Rp принимает на себя исполнение нити H/ для чего:

- считывает с ДО последовательность подзадач, приписанных вершинам нити , требуемое время ее исполнения Т^+ц и идентификатор ресурса , которому необходимо передать результаты ее решения;

- модифицирует дескриптор задач на ДО: в список участников сообщества R^ записывается его

идентификатор; из графа G/ (Q/, X/ ) исключаются вершины нити H/ , в результате чего формируется новьш граф G/+1, X/+1) — G/ (Q/, X/ )/Нг ;

-вершинам Ц у модифицированного граф Gj+1 (Q/+1, К/*1), инцидентным вершинам ЦЬ нити

Hi —<ц\,ц2,...,цк >приписываются идентификаторы ресурсов Rp , которым необходимо передать

/+1

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

Г ^ тг/ 7Л - Л

7^1 _ гр/

Ь — Тк+1 -

к

к,к+1

ym—ЬSm ^р ]

реходит к испо

Н/ —< д[,д12,...,дк >; d — 1

14 агент Rp переходит к исполнению последовательности подзадач, приписанных вершинам нити

15 если п < Т

( к - / >

d ^ тек , где Т/ — Т/+1 -

пSP ^п

к к+1

требуемое время начала выполнения

^ т—а>~>т 'р у подзадачи А/ , приписанной вершине е Н- , то перейти к п.17, иначе

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

17 агент Rp отправляет результаты решения подзадачи, приписанной вершине Е Н/ , на ДО

и осуществляет модификацию дескриптора задачи Z,: исключает свой идентификатор из списка сообщества Rl; добавляет неисполненные вершины +1 ,...,Цк нити в граф задачи;

приписывает крайней вершине этой нити момент времени Т^+ц , к которому она должна быть исполнена, а также идентификатор ресурса Кс , которому необходимо передать результаты ее решения. Переход к п. 1;

18 агент Кр выполняет операцию А/ , приписанную вершине е Нi с помощью «своего» ресурса;

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

р 1

20 / — / + 1, если / < к, то переход к п. 15, иначе

21 агент Кр сообщает на ДО об успешном завершении решения нити Н- задачи . При этом результаты решения передаются ресурсу Кс , идентификатор которого приписан конечной вершине данной

нити, идентификатор агента исключается из списка членов сообщества R| по решению данной

Р '

22

задачи, а ему начисляются премиальные баллы о = O -Vp /V, где Vp - суммарная вычислительная

трудоемкость подзадач, выполненных агентом R V - суммарная трудоемкость всей задачи Zt. Переход

p' l

к п. 1;

22 Задача Zt не может быть решена к установленному пользователем моменту времени. Дескриптор

задачи Zt удаляется с ДО, пользователю направляется сообщение о невозможности решения его задачи к

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

п. 1.

Выводы

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

Благодарность

Работа выполнена при финансовой поддержке РФФИ проект №17-08-01219.

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

1. Korovin I. et al. Application of hybrid data mining methods to increase profitability of heavy oil production // Informatics, Electronics and Vision (ICIEV), 2016 5th International Conference on, 2016. P. 1149-1152.

2. Коровин Я.С., ХисамутдиновМ.В., Иванов Д.Я. Методы нейросетевого анализа нефтепромысловых данных // Вестник науки и образования, 2019. № 1 (55).

3. Коровин Я.С., Хисамутдинов М.В., Иванов Д.Я. Экспериментальные исследования методов нейросетевого анализа нефтепромысловых данных // Вестник науки и образования, 2019. № 1-1(55).

4. Ferreira L. et al. Globus toolkit 3.0 quick start // IBM RedPaper, 2003. P. 23-63.

5. Morohoshi H., Huang R. A user-friendly platform for developing grid services over globus toolkit 3 // 11th International Conference on Parallel and Distributed Systems (ICPADS'05), 2005. Vol. 1. P. 668-674.

6. Sharma J., Singh M. Web Services Oriented Architecture for DPI based Network Forensics Grid // Int. J. Energy, Inf. Commun, 2015. Vol. 6. № 3. P. 19-28.

7. Thain D., Tannenbaum T., Livny M. Condor and the Grid // Grid Comput. Mak. Glob. Infrastruct. a Real. Wiley Online Library, 2003. P. 299-335.

8. Yassir A.H., Dakhil A.F., Ali W.M. Condor Cloud New Solutions // J. Al-Qadisiyah Comput. Sci. Math. Al-Qadisiyah University, 2018. Vol. 10. № 2. P. 10-16.

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

9. Berman F. et al. Adaptive computing on the grid using AppLeS // IEEE Trans. Parallel Distrib. Syst. IEEE, 2003. Vol. 14. № 4. P. 369-382.

10. Wu M., Sun X.-H. Grid harvest service: a performance system of grid computing // J. Parallel Distrib. Comput. Elsevier, 2006. Vol. 66, № 10. P. 1322-1337.

11. Воеводин В.В. и др. Эволюция системы метакомпьютинга X-Com // Вестник Нижегородского университета им. НИ Лобачевского. Федеральное государственное автономное образовательное учреждение высшего-..., 2009. № 4.

12. Каляев А.И. Децентрализованная организация диспетчера GRID на базе сообществ агентов // Известия Южного федерального университета. Технические науки, 2011. Вып. 121. № 8. С. 230-237.

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