Содержание к диссертации
Введение
1 Обзор предметной области, методов моделирования и постановка задачи прогнозирования загрузки кластерной системы 12
1.1 Проблемы прогнозирования загрузки ресурсов в академических кластерных системах с организацией доступа по принципу добровольных вычислений 12
1.2 Проблемы управления инфраструктурой платформ облачных веб-сервисов, связанные с прогнозированием загрузки ресурсов 21
1.3 Постановка задачи прогнозирования загрузки кластерной системы 26
1.4 Обзор математических методов прогнозирования временных рядов в приложении к задаче прогнозирования загрузки кластерной системы 31
1.5 Выводы 46
2 Модель и численный метод прогнозирования загрузки кластерной системы 47
2.1 Формирование базы исторических данных о загрузке ресурсов кластерной системы и выделение информационных признаков 47
2.2 Исследование применимости модели EMMSP для прогнозирования загрузки ресурсов кластерной системы с использованием базы исторических данных 53
2.3 Исследование методов настройки параметров нейросетевых моделей типа MLP для прогнозирования загрузки ресурсов кластерной системы с использованием базы исторических данных 59
2.4 Разработка, исследование адаптивной модели и численного метода прогнозирования загрузки ресурсов кластерной системы с использованием базы исторических данных 68
2.5 Выводы 78
3 Программный комплекс мониторинга и прогнозирования загрузки кластерной системы 80
3.1 Templet Web: архитектура системы управления доступом к ресурсам кластерных систем по принципу добровольных вычислений 80
3.2 Микросервисная архитектура подсистемы мониторинга и прогнозирования загрузки ресурсов кластерной системы 88
3.3 Опыт использования подсистемы мониторинга и прогнозирования загрузки ресурсов при организации учебного процесса и проведении исследований на базе кластера Самарского университета 100
3.4 Выводы 103
Заключение 104
Список литературы 106
Приложение А. Свидетельство о регистрации базы данных 121
Приложение Б. Свидетельство о регистрации программы 124
Приложение В. Акты внедрения 126
- Проблемы управления инфраструктурой платформ облачных веб-сервисов, связанные с прогнозированием загрузки ресурсов
- Исследование применимости модели EMMSP для прогнозирования загрузки ресурсов кластерной системы с использованием базы исторических данных
- Микросервисная архитектура подсистемы мониторинга и прогнозирования загрузки ресурсов кластерной системы
- Опыт использования подсистемы мониторинга и прогнозирования загрузки ресурсов при организации учебного процесса и проведении исследований на базе кластера Самарского университета
Введение к работе
Актуальность. Актуальной научно-технической проблемой, возникающей при эксплуатации академических кластерных систем, является повышение эффективности загрузки их вычислительных ресурсов. Эта проблема встречается в различных системах в силу того, что наличие резерва вычислительной мощности необходимо для обеспечения высокого качества обслуживания, например, для уменьшения времени ожидания задачи в очереди кластера.
Методы практического использования простаивающих вычислительных ресурсов, известные как методы добровольных вычислений, были впервые предложены в работах Д. Джиди, Д. Андерсона, Д. Кобба, М. Лицкова, М. Ливни и др. для персональных компьютеров, подключенных к сети Интернет.
Подобные методы имеют важное прикладное значение при эксплуатации академических кластеров, что было продемонстрировано в исследованиях под руководством В.В. Воеводина, Ю.Г. Евтушенко, А.П. Афанасьева, И.В. Бычкова, М.А. Посыпкина, А.В. Бухановского и др.
В данной работе принцип добровольных вычислений применён для распределения простаивающих вычислительных ресурсов кластера «Сергей Королёв» Самарского университета. Распределение вычислительных ресурсов проводится зарегистрированными пользователями кластера между всеми научными работниками и студентами на платформе веб-сервиса «по требованию». Это позволяет одновременно обеспечивать высокую загрузку кластерной системы и эффективно решать задачи обучения и исследований.
Однако данный подход порождает научную проблему прогнозирования изменений основной вычислительной загрузки кластера в будущем. Суть её в том, что необходимо заранее знать периоды низкой вычислительной загрузки для работы с высоким качеством обслуживания в режиме «по требованию». Не имея возможности предоставить высокое качество обслуживания в произвольный момент, веб-сервис, распределяющий простаивающие ресурсы, должен сообщить время, когда желаемое качество обслуживания будет возможно.
Проблемы прогнозирования загрузки возникают и в коммерческих кластерных системах при управлении инфраструктурой платформ облачных веб-сервисов. В данном случае определение периодов низкой загрузки имеет прикладное значение для снижения энергопотребления и планового обслуживания. В этом контексте проблемы прогнозирования загрузки кластеров изучались С. Ди, Д. Кондо, Д. Паттерсоном, А. Фоксом, Дж. Превостом и др.
Исследуемая в диссертации проблема прогнозирования загрузки кластерной системы решается на основе численных методов прогнозирования временных рядов. Эти методы нашли применение во многих отраслях, например, при прогнозировании нагрузки на электрические сети, прогнозировании цен на бирже, прогнозировании спроса на услуги и товары. В работах Дж. Бокса, Г.М. Дженкинса, Э.Е. Тихонова, Ю.П. Лукашина и др. рассмотрено применение классических методов прогнозирования временных рядов в перечисленных отраслях.
Необходимость разработки новых численных методов для прогнозирования загрузки кластерной системы обусловлена спецификой временных рядов, получаемых при наблюдении загрузки кластера. Она проявляется в значительной нерегулярности, не позволяющей строить качественные прогнозы, опираясь только на классические методы прогнозирования.
Перспективным методом улучшения результатов прогнозирования нерегулярных временных рядов является метод, основанный на подборе базовых прогнозных моделей и построении новой прогнозной модели на основе «адаптивной» смеси из нескольких базовых. Такой метод требует комплексного исследования изменения загрузки кластерной системы с применением технологий математического моделирования: мониторинга и анализа массива исторических данных о загрузке кластерной системы; обоснования применимости базовых моделей на основе сравнения смоделированной и фактической нагрузки; выбора критериев и способов построения адаптивной смеси базовых моделей для синтеза новой модели с лучшими показателями качества прогноза.
Таким образом, для решения научно-технической проблемы повышения эффективности загрузки кластерной системы является актуальным математическое моделирование процесса изменения её загрузки во времени, разработка новых адаптивных моделей и численных методов прогнозирования загрузки, а также разработка программного комплекса, формирующего непрерывный прогноз загрузки, на основе которого специальный веб-сервис распределяет свободные ресурсы кластера.
Цель исследования. Целью исследования является решение научно-технической задачи повышения эффективности использования кластерной системы путем распределения простаивающих вычислительных ресурсов на основе адаптивной модели и численного метода прогнозирования временных рядов загрузки ресурсов, реализованных в программном комплексе мониторинга и прогнозирования.
Задачи исследования, соответствующие поставленной цели диссертационной работы.
-
Анализ предметной области, обзор моделей и методов прогнозирования временных рядов, описывающих загрузку вычислительных ресурсов в кластерной системе.
-
Формирование базы исторических данных о загрузке ресурсов кластерной системы Самарского университета и выделение в ней информационных признаков для решения задачи прогнозирования загрузки.
-
Анализ применимости и выбор наиболее подходящих моделей для прогнозирования загрузки ресурсов кластерной системы на основе сформированной базы исторических данных.
-
Разработка новой модели и соответствующего ей численного метода прогнозирования загрузки, используя адаптивную смесь моделей для повышения точности прогноза загрузки кластерной системы.
-
Разработка программного комплекса мониторинга и прогнозирования за-
грузки кластерной системы на основе новой модели и численного метода прогнозирования.
Научная новизна диссертационной работы. В диссертации получены следующие новые научные результаты.
-
В области математического моделирования: на основе комплексного исследования базовых моделей нейронных сетей типа MLP (multilayer perceptron) и модели EMMSP (extrapolation model on most similar pattern) предложена новая адаптивная модель прогнозирования загрузки кластерной системы.
-
В области численных методов: разработан более точный, по сравнению с известными, численный метод прогнозирования загрузки, отличающийся применением адаптивной селекции прогноза моделью MLP с дополнительными временными признаками и прогноза моделью EMMSP.
-
В области программных комплексов: разработан программный комплекс, впервые реализующий непрерывный 12 часовой прогноз загрузки кластерной системы, что позволило решить научно-техническую задачу повышения эффективности её использования в учебном процессе и научных исследованиях Самарского университета.
Теоретическая и практическая значимость работы. Теоретическая значимость работы состоит в том, что в ней проведено комплексное исследование применимости существующих моделей для прогнозирования загрузки кластерной системы, на основе которого были предложены новая модель и численный метод прогнозирования, использующие адаптивную смесь моделей EMMSP и нейронных сетей типа MLP и устраняющие их недостатки.
Практическая значимость работы состоит в создании программного комплекса, позволяющего осуществлять постоянный мониторинг и формирование 12-часового прогноза загрузки ресурсов кластера. Применение прогноза загрузки позволило повысить эффективность использования вычислительных ресурсов, планировать периоды их обслуживания и улучшить качество обслуживания пользователей. Программный комплекс размещён в сети Интернет как компонент веб-сервиса научных вычислений Templet Web ().
Прикладное значение имеют алгоритмы сбора и анализа данных загрузки кластерной системы, реализованные в виде отдельных микросервисов в составе веб-сервиса Templet Web. Они могут быть использованы отдельно от основной системы для предоставления исследователям доступа к массиву исторических данных загрузки кластерной системы.
Соответствие паспорту специальности. Работа соответствует следующим пунктам паспорта заявленной научной специальности: (п. 3) разработка, обоснование и тестирование эффективных вычислительных методов с применением современных компьютерных технологий; (п. 4) реализация эффективных численных методов и алгоритмов в виде комплексов проблемно-ориентированных программ для проведения вычислительного эксперимента; (п. 5) комплексные исследования научных и технических проблем с применением современной
технологии математического моделирования и вычислительного эксперимента.
Реализация результатов работы. Диссертационная работа выполнена при реализации проекта «Разработка комплекса технологий использования ресурсов суперкомпьютера «Сергей Королёв» в целях развития инновационной и научно-образовательной среды университета» (в рамках программы повышения конкурентоспособности Самарского университета среди ведущих мировых научно-образовательных центров на 2013-2020 годы, «Проект 5-100»). Результаты работы используются при планировании вычислительных экспериментов на кластере в проекте «Разработка фундаментальных основ аналитического синтеза регулярных и хаотических процессов в динамике космических аппаратов» (Госзадание №9.1616.2017/4.6); при планировании и проведении лабораторных практикумов на кластере в Самарском университете. Реализация результатов работы подтверждена актами о внедрении.
Методы исследований. В диссертационной работе используются методы прогнозирования временных рядов, основанные на вычислительных методах интерполирования и приближения функций, прогностических моделях на базе нейронных сетей. Результаты исследований подтверждаются соответствием значений загрузки, полученным в вычислительных экспериментах, накопленным историческим данным, а также актуальным данным загрузки, поступающим в программный комплекс с действующего кластера Самарского университета.
Апробация работы. Основные результаты работы были представлены на следующих всероссийских и международных конференциях: XII Всероссийской конференции «Высокопроизводительные параллельные вычисления на кластерных системах» (Нижний Новгород, 2012); Международной конференции «Distributed Computing and Grid-Technologies in Science and Education» (Дубна, JINR, 2012); Научно-технической конференции с международным участием и элементами научной школы для молодежи «Перспективные информационные технологии в научных исследованиях, проектировании и обучении» (Самара, 2012); Международной научно-технической конференции «Перспективные информационные технологии» (Самара, 2012); XVI Всероссийском семинаре по управлению движением и навигацией летательных аппаратов (Самара, 2013); X Всероссийской школе-конференции молодых учёных «Управление большими системами» (Уфа, 2013); Международной научно-технической конференции «Перспективные информационные технологии» (Самара, 2014); XVII Всероссийском семинаре по управлению движением и навигацией летательных аппаратов (Самара, 2014); Х Международной научно-практической конференции «Современные информационные технологии и ИТ-образование» (Москва, 2015); XVIII Всероссийском семинаре по управлению движением и навигации летательных аппаратов (Самара, 2015); Международной научно-технической конференции «Перспективные информационные технологии» (Самара, 2016); Международной конференции «Информационные технологии и нанотехноло-гии» (Самара, 2017); Международной конференции «BOINC: Fundamental & Applied Science & Technology» (Петрозаводск, 2017).
Авторский вклад. Все результаты, изложенные в диссертации, получены автором лично. В работах, выполненных совместно, автору принадлежат части, относящиеся к решению задач прогнозирования загрузки кластерных систем и разработке программного комплекса. Автор лично осуществлял сбор данных, проведение численных экспериментов, подбор параметров моделей прогнозирования, обработку, анализ и интерпретацию полученных результатов.
Достоверность результатов работы. Полученные в работе результаты основываются на реальных исторических данных загрузки кластера Самарского университета. Достоверность результатов прогнозирования, полученных в диссертации, подтверждена корректными математическими выкладками, приведённым сравнительным анализом моделей, результатами вычислительных экспериментов на высокопроизводительной технике, а также соответствием результатов математического моделирования реальным процессам, наблюдаемым в моделируемых системах.
Основные положения, выносимые на защиту.
-
Адаптивная модель прогнозирования загрузки кластерной системы, основанная на результатах комплексного исследования применимости моделей на базе нейронных сетей типа MLP и модели EMMSP.
-
Численный метод прогнозирования загрузки вычислительных ресурсов кластерной системы, использующий принцип адаптивной селекции моделей MLP и EMMSP.
-
Программный комплекс мониторинга и прогнозирования загрузки кластерной системы, реализующий новую модель и численный метод прогнозирования.
Публикации по теме диссертации. По теме диссертации опубликовано 22 работы, в том числе 4 статьи в журналах, рекомендованных ВАК РФ, 2 статьи в издании, индексируемом в международной наукометрической базе Scopus, одно свидетельство о регистрации программы для ЭВМ, одно свидетельство регистрации базы данных, 12 работ в материалах и трудах международных и всероссийских конференций.
Структура и объём работы. Диссертация состоит из введения, 3 глав, заключения и 3 приложений. Общий объем диссертации 128 страниц. Диссертация содержит 12 таблиц, 26 рисунков и список литературы из 112 наименований.
Проблемы управления инфраструктурой платформ облачных веб-сервисов, связанные с прогнозированием загрузки ресурсов
Облачные вычисления — это распределенная вычислительная среда, где огромное количество компьютеров объединены каналом связи, таким как Интернет. Вычислительная среда обеспечивает возможность запуска приложений на многих связанных компьютерах одновременно. Развитие технологий веб-приложений для бизнеса привело к появлению облачных центров обработки данных. С увеличением спроса на облачные ресурсы мгновенное увеличение числа VM (virtual machine) в облаке невозможно, поскольку горизонтальное масштабирование занимает несколько минут, что приводит к задержке. Прогнозирование нагрузки — это подход, позволяющий достигнуть оптимального с точки зрения затрат распределения ресурсов, и эффективный способ экономии энергии для облачной вычислительной среды. Прогнозирование нагрузки позволяет предугадать потребность в установке дополнительных виртуальных и физических машин, таким образом, прогнозирование нагрузки может минимизировать время простоя VM для клиента.
Облачные вычисления - это термин, используемый для обозначения модели сетевых вычислений, когда программа или приложение запускается на удалённом сервере или серверах, а не на локальном вычислительном устройстве, таком как ПК, планшет или смартфон. Термин облачные вычисления относится к поставляемым как сервис (as a Service) приложениям (также к аппаратному и системному программному обеспечению в центре обработки данных), которые предоставляют эти услуги. Облачные вычисления - это тип вычислений, в которых ресурсы используются совместно. Кроме того, облако позволяет пользователям использовать ресурсы в соответствии с их потребностями. Весь интернет можно рассматривать как облако. Таким образом, мы можем определить облачные вычисления как интернет-вычисления, в которых различные сервисы предоставляются компьютерам организаций. В облачных вычислительных центрах обработки данных сети со скоростью передачи данных гигабит или быстрее связывают как физические, так и виртуальные компьютеры. Эти системы создаются динамически на основе требуемых вычислительных ресурсов, запрашиваемых конечным пользователем облачного приложения. Более точное предсказание потребности в ресурсах позволяет управлять центрами обработки данных эффективнее. Прогнозирование доступности процессора для нового вычислительного процесса или задачи в компьютерных системах является основной проблемой, решив которую можно будет оптимизировать развитие ресурсов вычислительных центров. Сделать такие предсказания непросто из-за динамического характера современных компьютерных систем и их рабочей нагрузки. Чтобы обеспечить высокую масштабируемость, гибкость и экономическую эффективность, облачные платформы должны иметь возможность быстро планировать и предоставлять ресурсы, которые позволят обеспечить поддержку инфраструктур в соответствии с потребностями различных приложений. Облачные платформы требуют механизмов мониторинга и прогнозирования таких нагрузок.
Предсказание нагрузки является важнейшей проблемой для эффективного использования ресурсов в среде динамических облачных вычислений. Эффективное предсказание нагрузки поможет администраторам предпринять соответствующие действия для предотвращения отказов системы, пострадавшей от всплеска трафика, вызванного высокой нагрузкой. Ключом к точному прогнозу нагрузки в облачных вычислениях является правильное моделирование взаимосвязи между историческими данными и будущими значениями и правильное понимание рабочих нагрузок облачных вычислений.
С распространением частных и общедоступных облачных центров данных сегодня довольно часто используются виртуальные машины для размещения приложений вместо физических машин, или облако предоставляет специализированный интерфейс для запуска задач, например, такой как Amazon AWS Lambda. Пользователи облачных сервисов обычно платят за статически сконфигурированный размер виртуальной машины, независимо от фактического потребления ресурсов приложения (например, Amazon EC2). Этот режим оплаты оказывается невыгоден, особенно для приложений с переменной нагрузкой. Обычно пользователям трудно определить, какой размер VM подходит для их приложений, поскольку их нагрузки редко являются постоянными. Кроме того, им приходится сталкиваться с риском ухудшения характеристик работы приложения при большой нагрузке. VM добавляются, освобождаются или переносятся в соответствии с изменением нагрузки. Этот процесс связан со значительными издержками, но не приносит никакой реальной пользы.
Возможность своевременно и динамически масштабировать сервисы значительно повышает нагрузку на систему управления и требует обеспечить быстрое обнаружение и устранение проблем нарушения SLA (service level agreement). На рисунке 1.1 представлена схема работы автоматического масштабирования сервиса Pinterest [27]. Инженеры компании Pinterest используют прогнозирование загрузки для автоматического масштабирования своих систем.
Как правило, обнаружение проблемы нехватки ресурсов выполняется при помощи пороговых тестов. Пороговые тесты могут быть такими: «Действительно ли время ping-ответа превышает 0,5 с?» и «выполняются ли операции HTTP более 12 раз в секунду на сервере?» К сожалению, как только пороговый тест срабатывает, остаётся очень мало времени на принятие корректирующих действий. Отдельно отметим, что если нагрузка изменится сильно, будут иметь место частые нарушения SLA клиентов. Желательно, чтобы ресурсы могли быть выделены раньше того момента, когда нагрузка действительно возрастёт. Для решения этой проблемы требуется прогностическое решение вместо реактивной стратегии. Согласно прогнозируемому значению, мы можем подготовиться к восстановлению показателя ожидаемых неиспользуемых ресурсов, предоставляя их другим пользователям, предварительно переведя их в энергосберегающий режим, или мы можем заранее добавить ресурсы для предстоящих пиковых нагрузок, чтобы обеспечить стабильное качество обслуживания.
Однако прогнозирование нагрузки сложно в среде облачных вычислений по следующим причинам. Во-первых, большинство современных приложений имеют флуктуирующие нагрузки, которые приводят к сложному поведению в использовании ресурсов, поскольку их интенсивность и состав изменяются с течением времени. На рисунке 1.2 представлен пример графика загрузки сервисов компании Amazon, где в качестве метрики используется объём переданных данных. Во-вторых, для обеспечения безопасности и конфиденциальности поставщикам облачных сервисов обычно запрещается доступ к внутренним данным приложения. Таким образом, облачная система управления не может использовать внутренние характеристики приложения (например, по коду приложения иногда можно сделать вывод, что использование ресурсов будет периодически повторяться) для прогнозирования нагрузки. В большинстве случаев это невозможно, так как связано с лицензионными и техническими ограничениями.
Облачные провайдеры конкурируют за пользователей, предоставляя большое количество выгодных сервисов по различной цене. В связи с большой конкуренцией на рынке облачных вычислений, исследователю доступен широкий набор высокопроизводительных окружений, среди которых он может выбрать наиболее оптимальное на основе одного из критериев: цена, доступность ресурсов, вычислительная мощность, и т.п.. Одним из наиболее важных критериев является время, необходимое для получения результатов вычислений в целевом окружении.
В последние годы в мире уделяется большое внимание вопросам создания моделей и алгоритмов прогнозирования нагрузки в облачных средах [28-31], а также применению этих алгоритмов для развития центров обработки данных, управления энергосбережением [31] и динамическому выделению ресурсов на основе прогнозов нагрузки на вычислительные ресурсы.
Исследование применимости модели EMMSP для прогнозирования загрузки ресурсов кластерной системы с использованием базы исторических данных
Исследуем применимость модели EMMSP [67] к временному ряду загрузки кластера, полученному в параграфе 2.1. Особенности модели EMMSP:
- модель относится к классу авторегрессионных моделей прогнозирования;
- модель работает со стационарными и нестационарными временными рядами;
- модель имеет один параметр M;
- экстраполяция значений временного ряда производится за одну итерацию.
Для применения модели EMMSP должны выполняться условия [67]:
- временной ряд должен быть равноотстоящим (значения процесса фиксироваться через равные интервалы времени) и относиться к классу рядов с длинной памятью;
- задача прогнозирования на Р значений вперед - относиться к классу краткосрочного или среднесрочного прогнозирования данного типа временного ряда;
- длина исходного временного ряда - составлять не менее 500 Р - 700 Р.
Прогностические свойства модели основаны на том, что известные выборки временного ряда имеют подобие с будущими выборками. Подобие двух выборок заключается в том, что одна выборка может быть выражена через другую с помощью линейной зависимости:
Подобие выборок и его применение для прогнозирования временных рядов рассмотрено в работе [67], где автор приводит модель экстраполяции временных рядов по выборке максимального подобия (extrapolation model on most similar pattern, далее EMSSP) и доказывает ее применимость для задач прогнозирования.
При помощи модели EMMSP было организовано непрерывное прогнозирование загрузки кластера в системе Templet Web (http://templet.ssau.ru). Кластер Самарского университета (http://sk.ssau.ru) имеет гетерогенную структуру и включает в себя узлы нескольких типов, разбитые на группы по типу узла. Задача состояла в прогнозировании количества занятых узлов кластера в нескольких наиболее интенсивно используемых группах узлов. Целевое время прогноза – 12 часов, при этом требовалось спрогнозировать 12 значений временного ряда, по одному среднему значению занятых узлов в группе на один час. Для обучения и прогнозирования загрузки были выбраны данные по группам узлов qdr_tmp и ddr_tmp. Их загрузка представляет наибольший интерес в связи с большой регулярной загрузкой.
Модель EMMSP была выбрана исходя из нескольких особенностей данных загрузки кластера:
– временные ряды являются нестационарными;
– в данных есть периодические составляющие, соответствующие большому количеству периодических событий;
– есть участки, изменения на которых имеют взрывной характер;
– результаты прогнозирования хорошо поддаются интерпретации, что
позволяет принимать на их основе решения по управлению кластером; – в результате прогнозирования известно, вышли ли данные за границы применимости модели, что позволяет комбинировать эту модель с другими моделями. Пример прогнозирования данных загрузки кластера приведен на рисунке 2.4. Пунктиром показаны прогнозные значения ряда. График прогнозных значений был получен вычислением прогноза через каждые 12 точек. На графике можно видеть 2 выброса, которые соответствуют моментам выхода данных за границы применимости модели EMMSP.
При обучении модели EMMSP программный комплекс Templet Web обнаруживает подобные выборки во временных рядах и собирает статистику по ним для ретроспективного анализа. Примеры подобных выборок длины 40 точек приведены на рисунке 2.5.
В процессе обучения выбирается наиболее эффективная ширина окна подобной истории (параметр модели M), которая затем используется для прогноза. Для каждой ширины окна поиска истории вычисляется среднеквадратичная ошибка, учитываемая при выборе наиболее эффективного окна. График среднеквадратичной ошибки прогноза в зависимости от ширины окна поиска подобных выборок истории приведен на рисунке 2.6.
Распределение средней ошибки прогноза при помощи модели EMMSP близко к нормальному, гистограмма распределения средней ошибки представлена на рисунке 2.7. Модель дает среднюю абсолютную ошибку 8,7 узлов при максимальном числе узлов в группе 70.
В качестве итоговой метрики ошибок выбрана средняя абсолютная ошибка (MAE, формула 2.2), поскольку средняя абсолютная ошибка в процентах (MAPE) не может быть использована в рядах, включающих значения близкие или равные 0.
Модель работает на данных загрузки кластера, но не настолько хорошо, чтобы применять ее без подкрепления результатами другой модели. Например, эту модель можно применять в комбинации с наивным прогнозом последним известным значением ряда. Комбинацию моделей можно построить по эмпирическому правилу: если множитель подобия выборки выходит за границы отрезка [0,1; 5,0], то использовать прогноз последним значением (также известный как наивный прогноз).
При использовании такой комбинации моделей ошибка MAE для группы с максимальным числом узлов снижается до значения 6,9. Если же рассчитать среднюю абсолютную ошибку только для участков, на которых модель EMMSP применима (значение множителя подобия попадает в отрезок [0,1; 5,0]), то значение MAE составит 5,2. Пример графика прогнозных значений комбинации моделей EMMSP и наивного прогноза представлен на рисунке 2.8. Пунктиром показаны прогнозные значения ряда. График прогнозных значений был получен вычислением прогноза через каждые 12 точек.
По результатам тестирования модели мы можем сделать вывод о том, что модель хорошо себя показывает только на некоторых участках, и ее можно применять в комбинациях моделей путем адаптивной селекции или композиции [59]. При этом результаты, которые дает модель, могут быть легко интерпретированы, что позволяет принимать на их основе управленческие решения по выбору окружения или развитию кластера. Это качество выгодно отличает модель EMMSP от моделей на основе нейронных сетей и других моделей машинного обучения, построенных по принципу черного ящика.
Микросервисная архитектура подсистемы мониторинга и прогнозирования загрузки ресурсов кластерной системы
Выбор технологического стека для реализации программного комплекса. Перед нами была поставлена задача разработать программный комплекс мониторинга и прогнозирования загрузки ресурсов кластера, который смог бы функционировать в качестве самостоятельного серверного приложения без участия экспертов. Такая постановка задачи во многом определила выбор технологий и архитектуры всего программного комплекса Templet.
Для разработки программного комплекса был выбран компилируемый язык программирования Java [92], поскольку он обладает рядом значительных преимуществ.
1. Приложения работают под управлением виртуальной машины JVM и могут быть запущены на большом числе операционных систем.
2. Язык широко применяется в промышленных системах для разработки серверных приложений.
3. Платформа JVM позволяет использовать различные языки: как основной язык Java, так и динамический язык Groovy или же функциональный Scala, обеспечивая простую интеграцию между ними.
4. Для языка Java существует большое количество инструментальных средств, позволяющих упростить разработку приложений: интегрированных сред разработки, систем сборки и поставки ПО, средств интеграции.
5. Язык Java позволяет использовать не только библиотеки для JVM, но и нативные библиотеки. Этот механизм задействуют, когда хотят достичь высокой производительности вычислений, например, в задачах машинного обучения. Мы используем это преимущество при работе с библиотекой DeepLearning4j, которая содержит нативную реализацию алгоритмов обучения нейронных сетей.
В качестве основной системы управления базами данных (СУБД) для данных веб-сервиса и подсистемы мониторинга и прогнозирования используется СУБД PostgreSQL [93], которая также является кроссплатформенной и имеет высокую производительность. На сегодняшний день PostgreSQL является одной из самых распространённых СУБД с открытым исходным кодом, которая применяется во многих промышленных системах.
Выбор технологий также обусловлен требованием обеспечить развёртывание программного комплекса на базе суперкомпьютерного центра Самарского университета, где нам была предоставлена виртуальная машина под управлением ОС Ubuntu Linux 14.04 LTS. Целевая виртуальная машина имеет прямой доступ к кластеру и ресурсам локальной сети Самарского университета, что позволяет использовать её как из сети Интернет, так и из локальной сети университета.
Переход к микросервисной архитектуре. Декомпозиция системы на микросервисы – подход к построению приложений в виде набора небольших сервисов, каждый из которых исполняется как отдельный процесс и связывается с другими при помощи легковесных механизмов, зачастую по протоколу HTTP (hypertext transfer protocol). Эти сервисы строятся исходя из потребностей и особенностей предметной области так, что каждый из них инкапсулирует все аспекты какой-либо возможности системы. Все сервисы могут быть развернуты при помощи полностью автоматических механизмов системы. Выполнение этих требований позволяет реализовать каждый из сервисов, используя различные языки программирования и различные технологии хранения данных [94].
Подсистема мониторинга и прогнозирования относится к классу приложений, которые работают в условиях Machineo-Machine (M2M) взаимодействии [95], то есть функционируют без участия человека, получая данные, производя вычисления и передавая данные далее по конвейеру вычислений или же просто записывая их на диск. Почти все научные приложения, связанные с автоматизированными вычислениями, реализованы как монолитные системы, спроектированные для решения всего одной задачи, чаще всего для проведения вычислений в определенной научной области. Это довольно сильно отличает их от промышленных, где одним из основных требований является совместимость с другими системами, протоколами и форматами данных.
Рассмотрим другие особенности приложений научных вычислений применительно к архитектуре систем:
- алгоритмы и приложения для анализа данных разрабатываются на разных языках, с использованием различных библиотек и инструментов, в зависимости от того, какой набор средств принят в конкретном коллективе разработчиков;
- каждое из приложений является монолитным и выполняет одну или несколько вычислительных задач в конкретной области знаний, то есть каждое приложение узко специализировано;
- приложения могут зависеть от аппаратных средств конкретного окружения, для которого было разработано приложение, от структуры сети, систем хранения и специализированного оборудования. Промышленные монолитные приложения имеют несколько значительных недостатков [96]:
- сложное масштабирование;
- необходимость полного обновления системы при изменении незначительных деталей реализации;
- если приложение выходит из строя, то весь функционал недоступен для пользователей;
- сложно или практически невозможно изменить технологический стек приложения по мере развития.
Часть этих недостатков проявляется в вычислительных задачах и в приложениях для сбора и обработки данных, и их можно устранить, если изменить подход к проектированию даже самых небольших утилит и систем.
Некоторые проблемы монолитных систем не имеют значения для приложений, связанных с вычислениями, поскольку в них можно пренебречь некоторыми ограничениями:
- обычно не требуется транзакционность при записи результатов вычислений, основная операция над важными данными – чтение, что позволяет не использовать транзакции вовсе, например, задействовать файлы или NoSQL СУБД [97];
- основной способ взаимодействия систем анализа данных – простой файловый обмен или HTTP запросы для получения данных;
- не требуется обеспечивать безопасность и разграничение прав доступа при взаимодействии систем;
- большая часть подсистем получает данные и возвращает результат, не сохраняя состояние [98] или сохраняя его в своем собственном формате для целей кэширования или повторного использования, не требуя специального контроля консистентности. Все выше перечисленные факторы упрощают применение микросервисного подхода в системах, связанных с вычислениями и анализом данных.
Мы обратили внимание на микросервисную архитектуру, поскольку она хорошо себя зарекомендовала в промышленных системах, в том числе при замещении старых (legacy) систем в таких компаниях как Ebay, Netflix и Amazon [99].
Микросервисная архитектура – подход к разработке приложений в виде набора небольших независимых сервисов, каждый из которых исполняется в виде отдельного самостоятельного процесса. Сервисы связываются друг с другом посредством легковесных транспортных механизмов, таких как протокол HTTP, что позволяет реализовать каждый из сервисов, используя различный набор библиотек и языков программирования.
Подходы, применяемые для разработки микросервисов, очень близки к философии Unix. Они сформулированы в виде четырех основных правил [100]:
1) сервисы малы и достаточны для реализации одной функции системы;
2) в разработке поощряется автоматизация развертывания и тестирования;
3) отказы систем и оборудования учитываются в дизайне систем как регулярное событие жизненного цикла;
4) все сервисы масштабируемы и сочетаемы.
Опыт использования подсистемы мониторинга и прогнозирования загрузки ресурсов при организации учебного процесса и проведении исследований на базе кластера Самарского университета
Сервис Templet Web развернут на базе суперкомпьютерного центра Самарского университета. Сервис применяется для подготовки студентов в области высокопроизводительных вычислений, исследования технологий автоматизации программирования, решения прикладных задач с использованием численного моделирования [78-80, 82].
Основную массу пользователей сервиса составляют студенты бакалавриата и магистратуры. Они выступают в роли Потребителя сервиса, а преподаватели, имеющие учетные записи на кластере, выступают в роли Добровольца, предоставляющего ресурсы для временного доступа. Динамика прироста пользователей показана в таблице 3.1.
В таблице 3.2 показано число задач, запущенных на кластере Самарского университета в течении периода эксплуатации системы Templet Web [86]. Данное количество задач мультиплексируется через три учетных записи преподавателей на кластере и одну учетную запись на тестовой маломощной виртуальной машине Linux.
Пользователи разрабатывают задачи в проектах. Проект позволяет управлять доступом к Окружениям и коду задач для группы пользователей. В таблице 3.3 показана динамика создания проектов в системе.
В 2016 году в систему была добавлена функция редактирования кода в веб-браузере в специальной интегрированной среде прототипирования и разработки параллельных программ. Как видно из таблиц 3.1-3.4, эта функция приобрела популярность у пользователей и повысила интенсивность использования системы. Проекты создаются, в основном, с возможностью редактирования кода в браузере. Количество запускаемых задач увеличилось значительно, создавать прототипы вычислительных задач с использованием шаблонов параллельных программ стало проще, поскольку для этого больше не требуется запускать тяжеловесные среды разработки и устанавливать инструментарий разработчика на свой компьютер.
Основные прикладные задачи, решаемые с использованием системы, связаны с моделированием динамики космических аппаратов. Исследование динамики заключается в численном решении уравнений движения с разными начальными условиями, построении фазовых траекторий и сечений Пуанкаре. Целью моделирования является выявление хаотических процессов и неустойчивых режимов работы систем ориентации космического аппарата [78]. Данный класс моделей реализуется схемой вычислений управляющий-рабочие.
В проекте также изучена применимость схемы управляющий-рабочие для реализации параллельных алгоритмов обучения нейронных сетей с подбором оптимальной структуры нейронов скрытых слоев [111]. Разработана программа параллельного непрерывного вейвлет-преобразования в задаче анализа акустических сигналов от режущего инструмента [112].
Важной частью сервиса является подсистема мониторинга и прогнозирования загрузки кластера. В ней реализован 12-часовой прогноз изменения загрузки кластера, вычисляемый различными математическими методами: методом максимального подобия, нейронными сетями, адаптивной комбинацией перечисленных методов. Система мониторинга и прогнозирования загрузки используется системными администраторами суперкомпьютерного центра Самарского университета при обслуживании кластера наряду с основной системой Ganglia, поскольку разработанная нами система позволяет не только отслеживать текущую загрузку кластера, но и получать прогнозные значения загрузки.
Опыт разработки и эксплуатации системы Templet Web показал практическую значимость комплексного подхода к автоматизации высокопроизводительных вычислений в задачах математического моделирования. Такой подход включает автоматизацию программирования, предоставление доступа по требованию и автоматизацию развертывания. Реализация системы автоматизации в виде облачного сервиса, доступного через стандартный веб-браузер, значительно снизила трудоёмкость работы пользователей и привела к росту их количества. Технология предоставления доступа к вычислительной системе по принципу добровольных вычислений позволила значительно упростить администрирование при организации учебного процесса на базе ресурсов суперкомпьютерного центра Самарского университета.