Grid-службы для интеграции распределенных систем

Архитектура Open Grid Services Architecture позволяет интегрировать ресурсы в распределенных, гетерогенных, динамических виртуальных организациях как внутри одного предприятия, так и в среде внешних поставщиков услуг.

Ян Фостер, Карл Кессельман, Джеффри Ник, Стивен Тьюке

Концепция АСНИ (Автоматизированная Система Научных Исследований) сложилась в СССР еще к 1979 году, а сегодня системы такого рода, получившие широкое распространение за рубежом, принято называть платформами eScience. Однако сейчас такие инфраструктуры в России почти не востребованы, хотя задач, которые могли бы решаться при поддержке АСНИ, достаточно. Действительно, имеется множество проектов и реализаций грид в различных университетах, например, «Грид-ННС» (национальная нанотехнологическая сеть), но пользуются ими немногие. Множество технических нюансов платформ грид усложняют работу и делают такие решения недоступными для конечного пользователя, не говоря уже о юридических и правовых вопросах получения доступа к вычислительным ресурсам. Одной из основных проблем в освоении грид-технологий до сих пор является отсутствие междисциплинарного подхода в большинстве научных коллективов страны, а для эффективного использования зарубежных наработок требуются программисты, системные инженеры, прикладные специалисты, теоретики и др. Собрать такие команды можно только временно и под конкретные гранты, что, кстати, и происходит за рубежом, а в России подобные проекты стали финансироваться только недавно.

Какие сегодня имеются программные платформы для АСНИ и что можно сделать для развертывания таких решений в российских вузах и исследовательских организациях?

ГРИД

Наиболее известен набор Globus Toolkit, созданный сообществом Globus Alliance, ставший базисом для построения грид во многих вузах мира и признанным стандартом де-факто. Последняя версия этого пакета GT5, v. 5.0.4 включает средства разработки сервисов (табл. 1), среду их функционирования, а также базовый набор сервисов: управление заданиями (Execution Management) для мониторинга и координации удаленного выполнения заданий; информационные сервисы (Information Services); управление данными (Data Management).

 

Таблица 1. Компоненты Globus Toolkit
Компонент Описание
GridFTP Высокопроизводительный, безопасный и надежный протокол обмена данными, оптимизированный для глобальных сетей с высокой пропускной способностью. GridFTP основан на протоколе FTP
RLS (Replica Location Service) Сервер, обеспечивающий регистрацию и поиск ответной информации
GRAM5 (Grid Resource Allocation and Management) Программный компонент, используемый для размещения, подтверждения, мониторинга и отмены заданий на вычислительных узлах грид
GSI C, MyProxy, GSI-openSSH, SimpleCA Компоненты, обеспечивающие идентификацию, авторизацию и сертификацию заданий с использованием открытых ключей стандарта X.509
Common Runtime XIO — использование расширенных библиотек ввода/вывода, написанных на языке Cи. C Common Libraries — использование базовых библиотек ввода/вывода

 

 

Инфраструктура обучения grid-технологиям

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

Владимир Кореньков, Николай Кутовский

gLite — совместный проект, изначально предложенный для использования в EGEE (Enabling Grids for E-sciencE), а затем применяемый и в EGI (The European Grid Infrastructure). Пакет gLite представляет собой полное решение для grid, включающее базовые программы и сервисы высокого уровня. Кроме компонентов, разработанных в рамках этого проекта, gLite поддерживает и связывает многие сторонние решения (например, CREAM, WMS, VINE), представляя единую платформу для интеграции различных реализаций отдельных программных модулей.

UNICORE (UNiform Interface to COmputing REsources) — платформа, используемая в нескольких международных и локальных проектах, таких как DEISA (European Distributed Supercomputing Infrastructure), National German Supercomputing Center NIC, PRACE (European PetaFlop HPC Infrastructure). В платформе реализована трехзвенная архитектура клиент – шлюз – сервер. Первый уровень состоит из приложения, при помощи которого пользователь готовит и отправляет задачи на счет, получает результаты. Второй уровень представляет собой шлюз, контролирующий авторизацию пользователей и идентификацию заданий. Здесь же задания переводятся в специальные команды, с которыми может работать вычислительный ресурс. На уровне сервера авторизированное задание подтверждается и отправляется на выполнение. Информационная защита в системе UNICORE, как и в GT5, соответствует сертификату X.509.

ARC (Advanced Resource Connector) — коннектор для проекта стран Северной Европы (NorduGrid), ориентированного на поддержку приложений физики высоких энергий. Реализация выполнена с помощью библиотек Globus Toolkit 2 (GT2), безопасность достигается путем использования протоколов и инфраструктурных решений GSI. Отличительная особенность NorduGrid ARC — собственный набор сервисов, заменяющих GT2. Однако многие функции GT2 в ARC реализуются собственными средствами. Кроме того, расширен язык описания ресурсов xRSL.

Языки описания задач

Важным вопросом организации грид является управление задачами. За эту функцию отвечает система управления рабочими потоками (Workflow Management System), включающая набор программных компонентов, которые выполняют распределение заданий по ресурсам грид и управление ими. В каждой реализации этих систем используется свой язык для описания задач и управления рабочими потоками Job Description Language (табл. 2).

 

Таблица 2. Языки описания задач
Язык Описание
RSL, xRSL Языки RSL (Resource Specification Language) и xRSL (eXtended Resource Specification Language) используются для передачи информации и требований на удаленный ресурс. Требования к ресурсам: архитектура, количество процессоров, памяти и т. д. Конфигурация задачи: выполняемый файл, параметры, переменные окружения. Языки RSL v1.0 и RSL v.1.1 применяются в GRAM5 на платформе Globus Toolkit. Язык xRSL, являясь расширенной версией RSL, используется в платформе ARC. Отличие RSL и xRSL заключается не только в наличии новых атрибутов, но и в уровнях спецификации: User-side RSL — набор атрибутов, задаваемых пользователем в файле-спецификации; GridManager-side RSL — набор атрибутов из пользовательского файла-спецификации, переработанных по определенным правилам для передачи непосредственно в GridManager
ClassAd Classified Advertisement — общий язык для систем управления рабочими потоками, основанных на Condor. ClassAd является функциональным языком. Выражение (expression) — основная единица языка. Выполнение задания влечет за собой вычисление всех выражений. Один из первых языков описания задач, являющийся основой для языка JDL
JDL Job Description Language — высокоуровневый язык описания задач, основанный на ClassAd. Атрибуты JDL представляют собой запросы, определяющие график работы и распределение загрузки. Язык используется для описания задач в системах управления рабочими потоками для платформы gLite: Computing Resource Execution And Management (CREAM) и Workload Management System (WMS)
JSDL Job Submission Description Language — расширяемый язык описания требований к вычислительным ресурсам на основе XML. Язык используется на платформах UNICORE и ARC

 

Инфраструктура eScience

Инфраструктура eScience, позволяющая веcти исследования с активным применением технологий распределенных вычислений, включает в себя сети, грид, хранилища данных и другие ресурсы совместного использования. Современные исследования сопровождаются огромными объемами информации (например, Большой адронный коллайдер генерирует 25 Пбайт в год), и единственный на сегодняшний день вариант сохранения и обработки таких потоков — платформы грид. Инфраструктуры eScience существуют во многих развитых странах, например: DEISA (Distributed European Infrastructure for Supercomputing Applications) — консорциум ведущих национальных суперкомпьютерных центров, созданный для содействия важнейшим мировым научным исследованиям и включающий в себя 18 компьютерных центров различной архитектуры, расположенных по всей Европе; PRACE (The Partnership for Advanced Computing in Europe) — инфраструктура, схожая с DEISA, объединяющая три суперкомпьютерных центра суммарной производительностью 4 PFLOPS; EGI (European Grid Infrastructure) — организация, ставшая преемником EGEE-III, занимается физикой высоких энергий, и самым ярким ее проектом является Большой адронный коллайдер; Open Science Grid — сообщество грид, созданное в США для проведения научных исследований, требующих больших вычислительных мощностей, и обслуживающее, например, один из популярных порталов по моделированию в нанотехнологиях — nanoHUB.org; MAPPER (Multiscale APPlications on European e-infRastructures) — проект по созданию общей среды для распределенных вычислений, объединяющей существующие научные организации.

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

 

Таблица 3. Программные компоненты eScience
Название Описание
AHE Application Hosting Environment — графический интерфейс для запуска приложений на ресурсах грид. При управлении своими заданиями пользователь избавлен от необходимости уметь обращаться с каждым конкретным связующим ПО, установленным на конкретной системе
Condor-G Объединение технологий Globus Toolkit и Condor. Condor-G использует преимущества обеих систем: безопасность и удобство применения многодоменных структур, реализованных в GT, а также легкость управления и быстроту счета в едином домене
GPFS IBM General Parallel File System — коммерческий программный продукт, нацеленный на решение проблем, связанных с постоянным увеличением объемов информации, числа пользователей и расстояний между кластерами
GridFTP Высокопроизводительный, безопасный и надежный протокол обмена данными, оптимизированный для глобальных сетей с высокой пропускной способностью
GridSpace 2 Каркас виртуальной лаборатории, позволяющий пользователям согласовывать и совместно проводить эксперименты внутри грид. GridSpace 2 способствует разработке экспериментов с использованием скриптов на многих популярных языках, таких как Ruby, Python и Perl
GridWay Программный модуль управления рабочей нагрузкой грид, позволяющий выполнять задания на различных платформах, объединенных единой структурой. Обеспечивает связь между приложением и локальной системой управления рабочими потоками
HARC Highly-Available Robust Co-scheduler — утилита, позволяющая пользователям резервировать вычислительные ресурсы, сети и массивы данных. Применяя HARC, пользователь может быть уверен, что его приложение будет принято для обработки
mpiBLAST Альтернативная реализация NCBI BLAST с открытым кодом. Обеспечивает масштабируемость на системах с количеством вычислительных элементов около десяти тысяч
MPWide Библиотека коммуникаций для распределенных вычислений. Разработана специально для передачи сообщений по сетям на большие расстояния с использованием конкретных путей оптимизации
MUSCLE Multiscale Coupling Library and Environment — независимая платформа для согласованного запуска сложных вычислений
Open MPI Вариация стандарта MPI-2 с открытым кодом. Open MPI вбирает в себя технологии и инструменты, созданные в рамках различных проектов по всему миру
OpenMP OpenMP Application Programming Interface — компактная масштабируемая модель интерфейса программирования приложений, поддерживающая параллельное программирование с разделяемой памятью на Cи/C++ и Фортране
PhEDEx Система управления содержимым (Content Management System, CMS), предназначенная для оптимизации передачи больших объемов данных по глобальной сети. Разработана для обслуживания детектора Большого адронного коллайдера
QCG Toolkit Инструментарий работы с интенсивными широкоформатными комплексными вычислениями для многомасштабного моделирования, требующего нескольких вычислительных узлов. QosCosGrid объединяет ресурсы из различных доменов в единую машину, тесно интегрирован с наиболее часто используемыми утилитами для параллельного программирования и многомасштабного моделирования
SAGA Simple API for Grid Applications — стандарт, разработанный OGF (Open Grid Forum), являющийся набором простых и скоординированных интерфейсов программирования. Обеспечивает доступ к ресурсам грид через общепринятые приложения, порталы или системы управления данными
SPRUCE Special PRiority and Urgent Computing Environment — промежуточное ПО, позволяющее задавать различный приоритет заданиям в зависимости от их срочности
VINE Vine Toolkit — модульная расширяемая Java-библиотека, предлагающая разработчику легкий в использовании высокоуровневый интерфейс программирования приложений. Vine поддерживает многие программные компоненты для грид: QCG, OGSA BES, gLite, UNICORE и Globus Toolkit

 

eScience в  России 

Современные проекты eScience, реализуемые российскими научными коллективами, в большинстве случаев используют упомянутые программные компоненты, а общим направлением всех проектов является интеграция готовых компонентов с последующей разработкой удобного интерфейса. Интерфейс, как правило, адаптируется к конкретному набору вычислительных модулей, разрабатываются методические материалы и документация. Суть такого рода проектов не в создании среды для работы междисциплинарных коллективов, а в обеспечении конкретных групп пользователей интуитивно понятной средой. В России подобные проекты стали появляться недавно, в их числе: HPC-NASIS II, «Эмуляторный комплекс для моделирования наноустройств и наноматериалов», «Нанотехнологическая лаборатория Рязанского государственного радиотехнического университета» и др. Все они разработаны при поддержке федеральных программ и в большинстве случаев не развиваются в силу прекращения дальнейшего финансирования. Одним из немногих исключений является учебно-методический программный комплекс «Многомасштабное моделирование в нанотехнологиях» — nanoModel.ru.

Комплекс nanoModel изначально позиционировался как типичная имитационная АСНИ, позволяющая проводить вычислительные эксперименты по многомасштабному моделированию и виртуальному проектированию оптических хемосенсоров. Данная тематика была поддержана федеральной целевой программой «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007–2013 годы». Проект был выполнен, однако его дальнейшее коммерческое развитие в научном направлении осложнялось в силу уникальности задач, решаемых в отдельных научных коллективах. Тем не менее применение результатов проекта для целей образования позволило найти источники финансирования для его дальнейшего развития.

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

 

Рис. 1. Архитектура комплекса nanoModel.ru
Рис. 1. Архитектура комплекса nanoModel.ru

 

Раздел «Методики» сайта nanoModel.ru предназначен для размещения и просмотра методических материалов, документации, презентаций, публикаций, касающихся работы вычислительных модулей, интегрированных в комплекс. В разделе «Эксперименты» представлены дерево модулей и результаты счетных экспериментов, выполненных пользователем с их помощью. Пользователь может запустить новый эксперимент, выбрав предварительно интересующий модуль. Для запуска эксперимента система запросит ввести входные параметры, после чего задача отправится на главный сервер в поисках свободного узла. Процедура поиска узла работает по таймеру, интервал которого определяет администратор. Если расчет длительный, то можно установить для него «фоновый» режим. В разделе «Журнал» можно найти результаты расчетов, проводимых всеми пользователями системы при наличии соответствующих прав доступа. Этот раздел особенно полезен для преподавателей, проверяющих работы студентов. Там же имеется набор фильтров для работы с базой данных. Кроме вывода текстовых файлов и числовых значений, комплекс позволяет визуализировать молекулярные структуры, упаковки частиц, сетевые модели, а также выводить видеоролики виртуальных экспериментов (рис. 2). Все результаты экспериментов за определенный период можно выгрузить в Excel для дальнейшей обработки. Запуск экспериментов можно автоматизировать, вводя вместо определенных значений входных параметров их диапазоны. Система сама составит план запуска экспериментов и отправит его на главный сервер, а по окончании расчетов пользователь получит уведомление.

 

Рис. 2. Пример интерфейса комплекса nanoModel.ru — исследование диффузии газа через мембрану
Рис. 2. Пример интерфейса комплекса nanoModel.ru — исследование диффузии газа через мембрану

 

В разделе «Методики» имеется возможность встраивания в комплекс новых модулей, которые должны запускаться из командной строки, в качестве единственного параметра им передается ссылка на файл с входными параметрами. Для генерации формы ввода параметров имеется свой интерфейс, а для построения отчетов вводятся описания входных и выходных параметров. В случаях, когда для запуска модуля требуются особые условия, можно использовать язык макросов, например, если входные и выходные файлы должны находиться в различных каталогах или выполнение программы осуществляется путем последовательного запуска нескольких исполняемых файлов. Некоторые модули принимают входные данные напрямую через аргументы в командной строке, без использования входных файлов. Для того чтобы встроить модуль, следует заархивировать его в формат zip и воспользоваться функцией загрузки на сервер в разделе «Методики».

***

Попытки обойти проблему создания междисциплинарных коллективов лишь с помощью платформ ресурсов eScience вряд ли увенчаются успехом, однако применение учебно-научных комплексов на базе таких платформ позволяет подключать студентов и аспирантов к решению сложных научных задач. Комплекс nanoModel.ru — один из инструментов создания междисциплинарных коллективов молодых ученых. Как показал опыт его эксплуатации в ряде российских вузов (Уральский федеральный университет, Санкт-Петербургский государственный горный университет, Иркутский государственный технический университет и др.), комплекс достаточно прост в использовании, обладает прозрачной логикой работы и открыт для встраивания новых модулей. По сравнению с множеством готовых зарубежных модулей, предназначенных для развертывания eScience-платформ, комплекс nanoModel включает все необходимые элементы для «быстрого старта»: систему управления вычислениями, исследовательскую и пользовательскую базы данных, набор демонстрационных вычислительных модулей, методические материалы и средства Web-интерфейса с интерактивными редакторами параметров. Включая набор готовых инструментов, комплекс сам по себе является законченным решением, разработанным с учетом опыта эксплуатации различных eScience-платформ, что позволяет эксплуатировать его силами аспирантов и студентов без привлечения высококвалифицированных специалистов.

Вячеслав Мизгулин (mvv@siams.com), Всеволод Косульников (v.kosulnikov@gmail.com), Радий Кадушников (radi@siams.com) — сотрудники компании «Сиамс» (Екатеринбург). Работа проводилась при поддержке Министерства образования и науки РФ (ГК №14.514.11.4042).