Научная статья на тему 'Применение облачного сервиса Templet Web при проведении лабораторных практикумов на суперкомпьютере «Сергей Королев»'

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

CC BY
140
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЛАЧНЫЙ СЕРВИС / БИБЛИОТЕКА / ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ / ОКРУЖЕНИЕ / ЗАПУСК / МОНИТОРИНГ / ВЫЧИСЛЕНИЯ / КЛАСТЕР

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

В статье описана специфика приложений научной направленности, сделан акцент на характерных проблемах разработки данного вида программного обеспечения. Приводится классификация систем по способу организации вычислений и уровню абстракции вычислений от физического оборудования. Рассматривается инструментарий для разработки приложений, включающий в себя библиотеки параллельных вычислений, сервис запуска и отслеживания задач, подсистему мониторинга состояния кластера. Описано использование инструментария при проведении лабораторных практикумов на суперкомпьютере «Сергей Королев». Сделан вывод о возможностях применения веб-сервиса Templet в учебном процессе.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Артамонов Юрий Сергеевич, Востокин Сергей Владимирович

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

Текст научной работы на тему «Применение облачного сервиса Templet Web при проведении лабораторных практикумов на суперкомпьютере «Сергей Королев»»

Артамонов Ю.С.1, Востокин С.В.2

1 Самарский государственный аэрокосмический университет им. С.П. Королева (национальный исследовательский университет), г. Самара, аспирант кафедры информационных

систем и технологий, artamonov@about.me

2 Самарский государственный аэрокосмический университет им. С.П. Королева (национальный исследовательский университет), г. Самара, д.т.н, профессор кафедры

информационных систем и технологий, easts@mail.ru

ПРИМЕНЕНИЕ ОБЛАЧНОГО СЕРВИСА TEMPLET WEB ПРИ ПРОВЕДЕНИИ ЛАБОРАТОРНЫХ ПРАКТИКУМОВ НА СУПЕРКОМПЬЮТЕРЕ «СЕРГЕЙ

КОРОЛЕВ»

КЛЮЧЕВЫЕ СЛОВА

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

АННОТАЦИЯ

В статье описана специфика приложений научной направленности, сделан акцент на характерных проблемах разработки данного вида программного обеспечения. Приводится классификация систем по способу организации вычислений и уровню абстракции вычислений от физического оборудования. Рассматривается инструментарий для разработки приложений, включающий в себя библиотеки параллельных вычислений, сервис запуска и отслеживания задач, подсистему мониторинга состояния кластера. Описано использование инструментария при проведении лабораторных практикумов на суперкомпьютере «Сергей Королев». Сделан вывод о возможностях применения веб-сервиса Templet в учебном процессе.

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

Помимо специфики самих приложений стоит отметить ряд характерных проблем, возникающих в процессе работы над проектом:

• растущая сложность алгоритмов и архитектуры приложений;

• окружения, в которых производится запуск, зачастую имеют нестандартный набор ПО и периферийных устройств;

• сложный и длительный процесс развёртывания ПО в целевом окружении;

• для тестирования может потребоваться производительное окружение;

• оборудование и инфраструктура могут быть уникальны и их нельзя воссоздать для тестирования;

• необходимо соблюдать регламент работы с целевым окружением, определённое время работы на кластере и лимит нагрузки;

• доступ к окружению может быть ограничен локальной сетью организации.

Под окружением здесь понимается некоторый программно-аппаратный комплекс: совокупность физических или виртуальных ЭВМ, каналов связи, периферийных устройств и ПО, необходимого для работы системы. Например, это может быть кластер серверов, единичный сервер или же Desktop Grid система.

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

Отметим наиболее важные аспекты командной работы над приложениями:

1. В крупных проектах требуется использовать системы контроля версий (VCS), ведь в процессе разработки код проекта претерпевает значительные изменения, которые нужно контролировать. Обязательно должна быть возможность вернуться к более ранней версии [2].

2. В проекте должен быть простой и эффективный механизм сборки приложения без использования графических утилит, поддерживающий управление зависимостями и различные целевые архитектуры [3]. Следует отметить, что для вычислений всё чаще используются языки, которым не требуется компиляция в машинно-зависимый код: Java, Python, R, Lisp, Scheme. Использование этих языков существенно упрощает работу над проектом, но не стоит забывать о накладных расходах при исполнении в виртуальной машине (на работу интерпретатора).

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

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

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

Системы управления вычислительными задачами можно разделить на несколько специализированных классов:

• низкоуровневые системы управления распределёнными ресурсами (пакетные системы);

• Desktop Grid системы;

• системы виртуализации вычислительных ресурсов;

• высокоуровневые платформы распределённых вычислений.

Низкоуровневые системы управления распределёнными ресурсами призваны утилизировать доступные вычислительные ресурсы и максимизировать пропускную способность, управляя процессом назначения физических ресурсов пользовательским задачам. Пакетные системы управляют такими физическими ресурсами как: процессорное время, оперативная память, дисковое пространство и пропускная способность сети. К таким системам относятся [5]: Platform LSF, Portable Batch System (PBS), IBM Load Leveler и Condor. Пакетные системы обычно имеют следующие подсистемы:

• подсистема управления задачами;

• подсистема управления физическими ресурсами;

• подсистема планирования и управления очередями.

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

• пригодны для организации вычислений на различном оборудовании и операционных системах;

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

• позволяют организовать работу множества пользователей;

• документированы, широко известны и повсеместно применяются. Недостатки:

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

физического оборудования кластера для запуска задач, такие как: число ядер процессоров, оперативная память, скорость чтения и записи данных, топология сети;

• пакетные задания трудно отлаживать;

• зависшие задачи могут держать занятыми ресурсы всё отведённое им время.

Desktop Grid системы, как и пакетные системы приложения, нацелены на утилизацию вычислительных ресурсов, однако они существенно отличаются от них. Пакетные системы задействуют оборудование организаций: суперкомпьютеры, кластеры и другое дорогостоящее оборудование. В отличие от пакетных систем Desktop Grid задействуют обычные компьютеры [6], а связь между ними организуется через сеть Интернет, компьютеры могут быть выключены или отключены от сети. Участники проектов Desktop Grid не являются экспертами и разработчиками ПО, они участвуют в вычислениях, поскольку им это интересно. Проекты не контролируют своих участников и не могут предотвратить злонамеренное поведение, например, предоставление ложных результатов. К приложениям Desktop Grid относятся: Charlotte, Javelin и Bayanihan, BOINC, XTremweb и Entropia [7].

Плюсы использования Desktop Grid:

• возможность задействовать значительные вычислительные ресурсы длительное время;

• бесплатный доступ к вычислениям;

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

• прост для участников. Недостатки:

• нестабильная вычислительная мощность сети компьютеров;

• различные по оборудованию компьютеры;

• ограниченный размер одного вычислительного задания;

• необходимость запуска дубликатов заданий, поскольку они исполняются в недоверенном окружении;

• трудно прогнозируемый срок исполнения заданий.

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

Приложения высокопроизводительных вычислений могут получить выигрыш от виртуализации несколькими путями [8]:

• гипервизор может гарантировать фиксированное выделение ресурсов для гостевых ОС, таких как процессорное время и оперативная память;

• узлы виртуального кластера могут быть запущены на различных ядрах одного или нескольких реальных узлов, причём конфигурацию узлов и их физическое расположение можно менять во время работы;

• изоляция пользовательских процессов делает системы на базе виртуализации более устойчивыми к сбою пользовательского ПО;

• гипервизор берёт на себя обеспечение безопасности процессов и данных. Недостатки:

• сложность ПО виртуализации;

• виртуализация требует дополнительных ресурсов процессора и памяти на размещение гостевой ОС;

• долгий (по сравнению с запуском приложения) холодный старт новых виртуальных машин.

Стоит отдельно выделить технику контейнеризации приложений, как способ изоляции приложений и частичной виртуализации ресурсов. В отличие от гипервизоров контейнерная виртуализация не требует виртуализации гостевой ОС. Она задействует механизмы ядра операционной системы, которые позволяют изолировать процессы и выделить для них физические ресурсы системы [9]. Такой подход реализован в системах: OpenVZ, LXC и Docker.

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

• меньший уровень изоляции пользовательского ПО на уровне разделяемых ресурсов;

• меньший уровень безопасности приложений и данных.

Платформы распределённых вычислений представлены как отдельный класс систем, поскольку задействуют другие подходы к организации распределённых вычислений. Например, используют другие системы для реального исполнения задач и, самое главное, предоставляют высокий уровень абстракции от физических ресурсов. Этому классу систем принадлежат:

• Globus Toolkit — позволяет запускать задачи с использованием планировщиков PBS, Condor, Platform LSF [10];

• Hadoop — набор библиотек и служебных программ для организации вычислений в парадигме MapReduce [11];

• CLAVIRE - многопрофильная инструментально-технологическая среда, позволяющая строить распределённые приложения из готовых вычислительных узлов, определяя потоки данных [12].

К достоинствам платформ распределённых вычислений стоит отнести развитые средства разработки приложений, многообразие способов запуска и мониторинг исполнения приложений. Недостатки:

• сложность отладки;

• специализированный процесс разработки приложений, требующий задействования средств платформы;

• сокрытие деталей взаимодействия приложений с оборудованием.

На базе Самарского государственного аэрокосмического университета авторами разработан веб-сервис Templet Web, позволяющий автоматизировать разработку параллельных приложений для кластера «Сергей Королев».

Веб-сервис состоит из 3 компонентов:

• библиотеки параллельного программирования Templet SDK;

• веб-сервис для запуска и мониторинга задач на суперкомпьютере Templet Web;

• подсистема мониторинга состояния кластера.

Templet SDK - комплект инструментов для разработки параллельных приложений. Он включает в себя препроцессор исходных текстов и библиотеку времени исполнения. Препроцессор позволяет разработать и отладить последовательную программу на локальной машине, а затем запустить код на исполнение на суперкомпьютере в параллельном режиме (код будет получен автоматически из последовательной версии, для параллельной работы будет использоваться API POSIX Threads). Применение инструментов Templet SDK не требует от пользователя знаний методов параллельного программирования в UNIX или Windows и позволяет сосредоточиться на решении прикладной задачи.

Веб-приложение для управления проектами и задачами Templet Web, развёрнутое по адресу http://templet.ssau.ru/templet, позволяет:

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

• организовать частное облако окружений для запуска проектов;

• организовать работу команды над проектом с применением VCS;

• получать доступ к общим окружениям и запущенным задачам;

• разворачивать приложение в тестовом и целевом окружениях;

• отслеживать работу приложения во время продолжительных вычислений;

• получать уведомления о статусе задач в целевых окружениях;

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

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

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

Templet Web относится к классу высокоуровневых систем и задействует в качестве исполняющего механизма планировщик Torque или отдельно запускаемый процесс. В системе поддерживаются окружения под управлением ОС Linux (в том числе виртуальные) и суперкомпьютер «Сергей Королев». Система имеет расширяемую архитектуру, что позволяет добавлять поддерживаемые окружения по мере её развития. В Templet Web основной акцент сделан на простом процессе разработки приложений и интеграции средств разработки и платформы для исполнения. Сервис работает на двух языках - русском и английском, он доступен для использования не только студентам и преподавателям СГАУ но и любому стороннему пользователю.

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

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

Подсистема мониторинга суперкомпьютера «Сергей Королев» собирает детальную информацию по использованию суперкомпьютера:

• состояние очереди пакетной системы;

• запрашиваемые задачами ресурсы;

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

• состояние узлов суперкомпьютера.

Информация, собираемая подсистемой мониторинга, используется для решения задач прогнозирования доступных вычислительных ресурсов кластера[13]:

• прогноз количества доступных вычислительных ресурсов;

• прогноз момента запуска вычислительной задачи в очереди пакетной системы.

Данные подсистемы мониторинга доступны в виде графиков загрузки кластера в веб-сервисе Templet Web. Открытые данные мониторинга доступны на сайте проекта по адресу http://templet.ssau.ru/wiki/открытые данные.

Сервис Templet [14] используется в СГАУ при работе над приложениями научных вычислений и для проведения лабораторных практикумов на базе суперкомпьютера «Сергей Королев».

Для проведения лабораторных занятий веб-сервис позволяет:

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

• вести архив примеров учебных программ с готовыми настройками запуска на кластере.

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

При проведении прикладных исследований сервис позволяет:

• предоставить оперативный доступ к кластеру для однократного или тестового расчёта;

• управлять длительными вычислениями и получать промежуточные результаты по мере исполнения задачи;

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

бесплатных хостингов открытых проектов (Github, SourceForge), поддерживающий доступ по протоколу SVN. Система автоматически выгружает последнюю версию исходного кода программы перед запуском задачи на кластере, сохраняет версию в архив задач и передаёт её для запуска в целевое окружение. Исходный код примеров хранится в служебном SVN репозитории, встроенном в систему, что позволяет дополнять и изменять их по мере развития курса лабораторных работ.

Лабораторный практикум с использованием возможностей Templet Web включает в себя изучение: потоков POSIX, потоков OpenMP, технологий скелетного программирования, библиотек MPI.

За время проведения лабораторных работ в течении весеннего семестра 2015 года системой воспользовались 5 учебных групп (более 70 студентов). При этом было создано 150 проектов, запущено 1500 задач и потрачено 20 часов машинного времени суперкомпьютера.

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

Литература

1. Keyes D. E. et al. Multiphysics simulations: Challenges and opportunities // International Journal of High Performance Computing Applications. - 2013. - Vol. 27, no. 1.

2. Sullivan B. Making sense of revision-control systems // Communication of the ACM. - 2009. - Vol. 52, no. 9. - P. 56-62.

3. Neitsch A., Wong K., Godfrey M. W. Build system issues in multilanguage software / / 28th IEEE International Conference on Software Maintenance (ICSM). - Riva del Garda, Trento, Italy, 2012. - P. 140-149.

4. Continuous software integration and quality control during software development / M. Ettl, A. Neidhardt, W. Brisken, R. Dassing // Launching the Next-Generation IVS Network, IVS 2012 General Meeting Proceedings, NASA/CP-2012-217504 / Ed. by K.D. Behrend, D.; Baver. - National Aeronautics and Space Administration, 2012. - 12. - P. 227-230.

5. Comparative study of distributed resource management systems SGE, LSF, PBS Pro, and LoadLeveler: Rep. / Technical Report-Citeseerx; Executor: Yonghong Yan, Barbara Chapman: 2008.

6. Anderson D. P. Boinc: A system for public-resource computing and storage // Grid Computing, 2004. Proceedings. Fifth IEEE/ACM International Workshop on / IEEE. - 2004. - P. 4-10.

7. SungJin C., HongSoo K., EunJoung B. Characterizing and classifying Desktop Grid / / Seventh IEEE International Symposium on Cluster Computing and the Grid(CCGrid'07). - Rio de Janeiro, Brazil, 2007. - P. 743-748.

8. Virtualization for high-performance computing / Mark F Mergen, Volkmar Uhlig, Orran Krieger, Jimi Xenidis // ACM SIGOPS Operating Systems Review. - 2006. - Vol. 40, no. 2. - P. 8-11.

9. Performance evaluation of container-based virtualization for high performance computing environments / M. G. Xavier, M. V. Neves, F. D. Rossi et al. // Parallel, Distributed and Network-Based Processing (PDP), 2013 21st Euromicro International Conference on / IEEE. - 2013. - P. 233-240.

10. Foster I. Globus toolkit version 4: Software for service-oriented systems // Network and parallel computing. - Springer, 2005. - P. 2-13.

11. Taylor R. C. An overview of the Hadoop, MapReduce, HBase framework and its current applications in bioinformatics // BMC bioinformatics. - 2010. - Vol. 11, no. Suppl 12. - P. S1.

12. Clavire: e-science infrastructure for data-driven computing / K. V. Knyazkov, S. V. Kovalchuk, T. N. Tchurov et al. // Journal of Computational Science. - 2012. - Vol. 3, no. 6. - P. 504-510.

13. Артамонов Ю. С. Основные подходы прогнозирования доступных вычислительных ресурсов в кластерных системах // Перспективные информационные технологии (ПИТ 2014): труды Международной научно-технической конференции / Под. ред. С. А. Прохоров; Самарский государственный аэрокосмический университет. - Самара: Изд-во СНЦ РАН, 2014. - 2014. - С. 305-310.

14. Востокин С. В., Дорошин А. В., Артамонов Ю. С. Программный комплекс Templet. Организация прикладных вычислений на базе суперкомпьютера "Сергей Королев" // Управление движением и навигация летательных аппаратов: Сборник трудов XVII Всероссийского семинара по управлению движением и навигации летательных аппаратов. - Т. 1. - 2014.

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