В России, как и за рубежом, ведутся активные исследования, связанные с созданием и использованием Grid-систем различного назначения [9], среди которых важное место отводится вычислительным Grid-системам. Высокая интенсивность потоков вычислений в Grid-системах обуславливает необходимость эффективного управления этими потоками. В процессе управления распределенными вычислениями требуется, во-первых, интенсивное и сложно реализуемое на практике взаимодействие администраторов ресурсов с пользователями, решающими свои задачи с помощью этих ресурсов, и, во-вторых, детальный учет специфики решаемых задач и вычислительных характеристик используемых ресурсов. Как правило, Grid-системы обладают рядом свойств, существенно усложняющих унификацию процесса управления вычислениями [11]. К свойствам такого рода, например, относятся: организационно-функциональная разнородность, динамичность и неполнота описания ресурсов, интегрированных в Grid-системах; широта спектра задач, решаемых с помощью этих ресурсов; наличие различных категорий пользователей, преследующих свои цели и задачи эксплуатации вычислительной системы.
Известные модели, методы, алгоритмы и программные средства [8] не решают перечисленные выше проблемы полностью. Возникает необходимость разработки новых, более гибких средств управления распределенными вычислениями, базирующихся на методах искусственного интеллекта и позволяющих в полной мере учитывать специфику вычислительных ресурсов и решаемых с их помощью задач. Требуется также сформулировать специальные критерии функционирования вычислительной системы, которые бы позволили отразить изменяющиеся во времени интересы различных субъектов системы и осуществить выбор удовлетворительного уровня обслуживания поступающих в систему заданий. С этой точки зрения наиболее целесообразным видится применение модели с различными уровнями обслуживания заданий [15], выбор которых регулируется соотношением спроса и предложения по ресурсам [14]. Использование такой модели сводит задачу управления Grid-системой к определению приемлемых интервалов изменения значений для характеристик назначенного уровня обслуживания задания. Как следствие, возникает необходимость разработки программных средств, которые бы позволили всесторонне описать аспекты прохождения потоков заданий в Grid-системе и обеспечили управление потоками заданий на основе прав и обязанностей, делегированных этим средствам администраторами и пользователями Grid-системы. Для реализации таких программных средств наиболее предпочтительным является агентно-ориентированный подход с использованием инженерных онтологий для концептуализации предметных областей решаемых задач.
Целью представленного в статье исследования является разработка моделей, методов и программных средств управления распределенными вычислениями (представленными широким спектром заданий различной структуры) на основе комплексного использования мультиагентных технологий и экономических механизмов регулирования спроса и предложения вычислительных ресурсов в интегрированных кластерных системах.
Кластер для проведения оптимизационных расчетов объектов теплоэнергетики
В качестве узлов Grid-системы могут выступать как офисные компьютеры, так и суперкомпьютеры, в том числе вычислительные кластеры. Рассмотрим подход к настройке, запуску и тестированию вычислительного кластера на примере решения ресурсоемких задач в теплоэнергетике [1].
Решение современных инженерно-технических задач требует привлечения значительных вычислительных ресурсов. Ресурсоемкость процесса решения задачи обуславливается размерностью задачи, применением оптимизационных или переборных методов решения задачи, необходимостью проведения многовариантных расчетов и другими факторами. К ресурсоемким задачам относятся расчеты технологических схем теплоэнергетических установок, в которых протекают различные физико-химические процессы: сгорание органического топлива, газификация твердого топлива, расширение и сжатие рабочих тел, испарение жидкостей и конденсация пара, радиационный и конвективный теплообмены и другие процессы. Одним из возможных путей ускорения процесса решения перечисленных задач является распараллеливание расчетов и использование для их проведения многопроцессорных рабочих станций и серверов, объединенных в единый вычислительный кластер.
Вычислительный кластер представляет собой сложный программно-аппаратный комплекс, требующий специального программного обеспечения, которое позволяет эффективно распределять нагрузку между его узлами. При создании вычислительного кластера для проведения оптимизационных расчетов объектов теплоэнергетики были решены следующие задачи:
– выбрано, установлено и настроено следующее системное программное обеспечение для управления вычислениями: операционная система Gentoo Linux – для управления ресурсами кластера, библиотека Open Message Passing Interface (Open MPI) – для поддержки выполнения параллельных расчетов, система TORQUE (Terascale Open-Source Resource and QUEue Manager) – для управления вычислительными заданиями;
– разработан набор скриптов на языке Bourne Again SHell (BASH) для автоматизации процессов установки операционной системы Gentoo Linux в узлах кластера: создания/удаления разделов жесткого диска, создания необходимых файловых систем и их монтирования, настройки сетевых подключений, загрузки и установки программных пакетов, конфигурирования необходимых параметров системы;
– обеспечена расширяемость кластера – оперативное добавление, включение в его инфраструктуру новых узлов;
– обеспечена поддержка отказоустойчивости кластера – быстрое восстановление его работоспособности в случае сбоев программно-аппаратных средств;
– произведена оценка производительности кластера при помощи набора эталонных тестов NASA Advanced Supercomputing Parallel Benchmarks (NPB).
Создание вычислительного кластера обеспечило возможность решения ряда сложных задач оперативного управления теплоэнергетическими установками за приемлемые промежутки времени [7].
Интеграция вычислительных кластеров
В Иркутском научном центре был создан целый ряд вычислительных кластеров на базе персональных компьютеров, подобных представленному в статье кластеру. Эти кластеры эффективно использовались самостоятельно или в составе интегрированных распределенных вычислительных сред для решения важных прикладных задач в различных предметных областях [1, 6, 2]. Интеграция вычислительных кластеров позволяет существенно расширить спектр решаемых с их помощью задач и предполагает использование специального промежуточного программного обеспечения (middleware), предназначенного для представления глобально распределенных вычислительных систем в виде единой среды решения задач. Процесс решения задачи специфицируется в виде задания вычислительной среде, содержащего информацию о требуемых вычислительных ресурсах, исполняемых прикладных программах, входных/выходных данных, а также другие необходимые сведения. Однако традиционные системы управления заданиями (например, [13]) промежуточного программного обеспечения недостаточно полно учитывают специфику спроса и предложения ресурсов при распределении этих ресурсов для выполнения заданий. Таким образом, возникает важная и практически значимая проблема эффективного планирования вычислений и распределения ресурсов для их выполнения. Широко используемым на практике подходом к решению этой проблемы является применение мультиагентных систем для управления вычислениями [12].
В рамках представленного в статье исследования управление вычислениями на уровне интегрированной кластерной системы реализуется мультиагентной системой с заданной организационной структурой. Координация действий агентов осуществляется с помощью общих правил группового поведения. Агенты функционируют в соответствии с заданными ролями и для каждой роли определены свои правила поведения в виртуальном сообществе агентов. Мультиагентная система включает агентов распределения ресурсов и управляющего агента. Задачей агентов на уровне интегрированной кластерной системы является получение такого распределения поступающих в систему потоков заданий, которое сохраняет показатели качества функционирования этой системы в заданных ее администратором пределах.
Прототип системы агентов реализуется с помощью инструментария Java Agent DEvelopment framework (JADE) [10]. Алгоритмы функционирования агентов разрабатываются на основе конечно-автоматной модели в соответствии со спецификой действий, выполняемых этими агентами в системе управления вычислениями. Разработка системы агентов осуществляется в рамках реализации мультиагентного подхода к управлению распределенными вычислениями в интегрированной кластерной системе [12].
Выбор узлов вычислительного кластера, в которых будет выполняться задание, осуществляется с помощью логико-вероятностного алгоритма многоуровневого конкретизирующего планирования заданий с заданными критериями качества (показателями надежности, времени и стоимости) их выполнения. Процесс планирования осуществляется в четыре этапа агентами, представляющими узлы вычислительного кластера. Этапы работы алгоритма детально представлены в [3–5]. Процесс планирования включает: формирование всего множества доступных узлов; конкретизацию сформированного множества путем исключения из него перегруженных узлов (относительно текущей средней загрузки узлов с учетом имеющихся очередей заданий); построение поливариантного плана выполнения задания в узлах; извлечение из построенного поливариантного плана специализированного плана, удовлетворяющего заданным критериям качества выполнения задания с учетом текущего состояния вычислительной среды и назначение узлов вычислительного кластера для выполнения этого задания. Построение специализированного плана осуществляется на основе экономического механизма регулирования спроса и предложения вычислительных ресурсов.
Заключение
В статье рассмотрены проблемы управления ресурсами вычислительных систем, в том числе Grid-системами, и предложены методы и средства по решению возникающих трудностей. Научное значение решения задач, поставленных в статье, состоит в повышении эффективности распределенных вычислений в интегрированной кластерной системе с применением агентно-ориентированного подхода с использованием инженерных онтологий для концептуализации предметных областей решаемых задач.
Рецензенты:
Опарин Г.А., д.т.н., профессор, зам. директора по научной работе, Институт динамики систем и теории управления им. В.М. Матросова СО РАН, г. Иркутск;
Петров А.В., д.т.н., профессор кафедры автоматизированных систем института кибернетики им. Е.И. Попова, ФГБОУ ВО «Иркутский национальный исследовательский технический университет», г. Иркутск.