Интеграция вычислительных ресурсов в высокопроизводительные распределенные вычислительные среды (РВС) для сложных ресурсоемких расчетов в тех или иных предметных областях требует организации системы метамониторинга – программной надстройки над локальными средствами мониторинга отдельных ресурсов РВС, позволяющей обеспечить надежное и эффективное функционирование распределенной среды [1].
При создании системы метамониторинга РВС необходимо учитывать ряд факторов, в том числе разнородный характер РВС: входящие в состав среды вычислительные ресурсы отличаются разнообразием архитектуры и конфигурации программного и аппаратного обеспечения. В качестве узлов РВС, как правило, используются высокопроизводительные кластеры, работа которых контролируется локальными средствами мониторинга. Основная функция таких средств состоит в сборе и графическом отображении информации о состоянии узлов кластера (загрузке процессоров, ускорителей, оперативной и виртуальной памяти, коммуникационной среды и т.д.) за определенный временной интервал.
Предлагаемый к созданию системы метамониторинга РВС подход отличается от известных уникальным сочетанием свойств, к числу которых относятся автоматический контроль программно-аппаратных ресурсов с использованием мульти- агентных технологий, децентрализованное хранение данных метамониторинга, принятие решений с использованием экспертных систем.
Предполагалось, что система метамониторинга РВС должна удовлетворять следующим исходным требованиям:
- обеспечивать интеграцию с локальными средствами мониторинга вычислительных ресурсов, предоставлять средства разработки модулей сбора данных на различных языках системного программирования (С, Perl, Bash и др.);
- предоставлять прикладные программные интерфейсы на основе открытых стандартов для встраивания в другие программные комплексы;
- включать средства унификации данных, получаемых из различных источников;
- предоставлять средства сбора и анализа данных о функционировании оборудования вспомогательной (инженерной) инфраструктуры, обеспечивающей бесперебойную работу больших вычислительных установок;
- предоставлять средства сбора и анализа данных пользовательских приложений, а также средства автоматизированного экспертного анализа данных мониторинга и генерации управляющих воздействий.
С целью создания системы метамониторинга, удовлетворяющей приведенным требованиям, была спроектирована и реализована архитектура (см. рис.), включающая следующие основные компоненты:
- средства доступа пользователей, позволяющие взаимодействовать с системой метамониторинга как в пакетном, так и в интерактивном режимах;
- подсистемы уровня доступа, осуществляющие контроль прав доступа к запрашиваемым данным и реализующие серверную часть графического интерфейса пользователя;
- агент верхнего уровня, функционирующий в центральном узле РВС и выполняющий основную задачу по управлению системой метамониторинга;
- агенты промежуточного уровня, функционирующие в промежуточных узлах и решающие задачу снижения нагрузки на агентов верхних уровней;
- агенты нижнего уровня, функционирующие в узлах РВС и осуществляющие сбор и первичную обработку данных о состоянии узлов;
- подсистема децентрализованного хранения данных, предоставляющая функции для работы с данными для агентов разных уровней.
Иерархическая структура разработанной системы метамониторинга достигается путем организации многоуровневой мультиагентной среды, возглавляемой агентом верхнего уровня, которому подчинены агенты промежуточного и нижнего уровней. Агенты промежуточного уровня могут осуществлять управление как группой агентов нижнего уровня, так и группой агентов дополнительных промежуточных уровней, которых в системе может быть несколько. Такая иерархия позволяет обеспечить высокую масштабируемость системы метамониторинга для РВС, состоящей из большого числа узлов.
Каждый агент мультиагентной системы метамониторинга реализован в виде программы, функционирующей в фоновом режиме, и обладает свойствами, характерными для автономных программных агентов [2], а именно: реактивностью, автономностью, целенаправленностью и коммуникативностью.
В составе агента системы метамониторинга реализованы
- подсистема сбора данных, осуществляющая считывание показаний программных и аппаратных сенсоров различных устройств, прием данных от локальных систем мониторинга и агентов разных уровней, унификацию полученных данных и их трансляцию в промежуточный формат подсистемы взаимодействия с СУБД;
- подсистема взаимодействия с СУБД, выполняющая функции агрегации и контроля целостности данных;
- экспертная подсистема, реализующая функции анализа данных, полученных за определенный интервал времени, и генерации управляющих воздействий на основе проведенного анализа;
- управляющая подсистема, обеспечивающая функции исполнения управляющих воздействий и взаимодействия с агентами верхних уровней.
Разработанная система метамониторинга РВС была успешно апробирована в суперкомпьютерном центре ИДСТУ СО РАН (http://hpc.icc.ru) при решении ресурсоемких задач в области биоинформатики, квантовой химии, логического поиска и других.
В частности, были проведены эксперименты на базе РВС, включающей следующие программно-аппаратные ресурсы: вычислительный кластер из 10 вычислительных узлов с процессорами AMD Opteron 6276 с общим числом ядер 320; вычислительный кластер из 20 вычислительных узлов с процессорами Intel Xeon 5345 с общим числом ядер 160; 2 вычислительных узла с графическими ускорителями Nvidia Tesla C1060 с общим числом ядер 1920.
Анализ сведений о состоянии программно-аппаратных ресурсов РВС, собранных системой метамониторинга, позволил выявить неэффективную работу отдельных пользовательских приложений, произвести оптимизацию загрузки некоторых вычислительных ресурсов и в целом повысить эффективность работы РВС.
Например, при обработке экспериментальных данных для аннотации генома байкальской диатомовой водоросли Synedra acus с использованием программного пакета MAKER [3] было выявлено преобладание операций чтения/записи в сетевую директорию по отношению к вычислительным операциям. Установка значений конфигурационных параметров пакета, указывающих на необходимость записи результатов вычислений в локальные директории узлов, позволила повысить эффективность работы пакета более чем на 30 %.
Новизна предложенного и реализованного подхода к организации системы метамониторинга РВС заключается прежде всего в создании универсальных программных агентов, способных вести сбор данных о состоянии узлов РВС, анализировать эти данные и принимать решения без участия оператора РВС. Мультиагентный подход позволил, во-первых, снизить общую нагрузку, создаваемую компонентами системы метамониторинга, во-вторых, повысить надежность РВС за счет децентрализованной генерации и исполнения управляющих воздействий. Универсальность архитектуры программных агентов делает возможным их использование на различных уровнях иерархии системы метамониторинга, что, в свою очередь, обеспечивает высокую масштабируемость системы при использовании в РВС, состоящих из большого количества узлов.
Литература
1. Опарин Г.А., Новопашин А.П., Феоктистов А.Г. Интегрированная инструментальная среда организации проблемно-ориентированных распределенных вычислений // Программные продукты и системы. 2013. № 1. С. 3–6.
2. Wooldridge M. An Introduction to MultiAgent Systems, 2nd edn. John Wiley & Sons Publ., 2009, 461 p.
3. MAKER – genome annotation pipeline. URL: http://gmod.org/wiki/MAKER (дата обращения: 10.01.2014).
References
1. Oparin G.A., Novopashin A.P, Feoktistov A.G. Integrated toolkit for organization of the problem-oriented distributed computing. Programmnye produkty i sistemy [Software & Systems]. 2013, no. 1, pp. 3–6 (in Russ.).
2. Wooldridge M. An Introduction to MultiAgent Systems. 2nd ed. John Wiley & Sons Publ., 2009, 461 p.
3. MAKER – genome annotation pipeline. Available at: http://gmod.org/wiki/MAKER (accessed January 10, 2014).