Для решения масштабных задач обработки больших объемов данных (High Throughput Computing, HTC) требуется интеграция аппаратных и информационных ресурсов, которую можно выполнить, в частности, средствами грид-инфраструктур. Отсутствие централизованного управления в грид-системах позволяет координировать использование различных территориально распределенных гетерогенных ресурсов, обеспечивая унифицированный и безопасный доступ к ним. Большинство действующих сегодня грид-инфраструктур [1], таких как Open Science Grid, EGI (European Grid Infrasructure), NDGF (Nordic Data Grid Facility) и др., ориентированы на научное применение — например, используются при обработке данных Большого адронного коллайдера [2] с объемами в десятки петабайт ежегодно или в проекте EGI, обладающем вычислительной мощностью в сотни тысяч процессорных ядер. Функционирование таких инфраструктур невозможно без унифицированных средств связующего программного обеспечения, или UMD (Unified Middleware Distribution), к которому относятся gLite, ARC (Advanced Resource Connector), UNICORE (UNiform Interface to COmputing REsources) и dCache.

Доступ к распределенным ресурсам осуществляется через глобальные, динамически создаваемые временные виртуальные организации (в проекте EGI их насчитывается 230). Интегрируемый в грид вычислительный ресурс, например суперкомпьютер или кластер, вместе со связующим ПО доступа к нему образует вычислительный элемент (Computing Element, СЕ) и элемент памяти (Storage Element, SE). Для авторизации пользователей в виртуальной организации применяется сервис VOMS (Virtual Organization Membership Service). В состав связующего ПО, например в gLite, обеспечивающего работу с элементами грид-инфраструктуры, входят сервисы поддержки безопасности на основе цифровых сертификатов X.509, сервисы выдачи и поддержки сертификатов (Certificate Authority, CA), пользовательский интерфейс, информационная система и система управления рабочей нагрузкой (Workload Management System, WMS) [2, 3]. Для организации вычислений в CE обычно используются пакетные системы LRMS (Local Resource Management System), такие как PBS/Torque, slurm и SGE. В таблице приведены основные компоненты UMD.

На пути к унифицированным грид-системам

Отдельные компоненты гридов могут работать в разных операционных системах, а для их интеграции применяются стандарты от Open Grid Forum (OGF). Основной стандарт, определяющий грид-сервис как веб-сервис, — это OGSA (Open Grid Services Architecture [4]). Он базируется на спецификациях WSRF (Web Service Resource Framework) и стандартах WS-Notification и WS-Addressing, регламентирующих порядок взаимодействия между программными средствами одинаковой функциональности, но реализованных по-разному. Архитектура OGSA включает в себя базовую модель сервисов выполнения (Basic Execution Service, BES) и соответствует стандарту GLUE2 (www.ogf.org/documents/GFD.147.pdf) описания ресурсов информационных сервисов для обеспечения интероперабельности.

Очевидно, что поддерживать стандарты в реальных грид-инфраструктурах достаточно проблематично. С одной стороны, здесь действительно обеспечивается интеграция разных программных средств, а с другой, в реальном связующем ПО часто применяются собственные расширения стандартов, а иногда и продукты, вообще не соответствующие стандартам. Например, в качестве языка описания задач, используемого для интеграции разных LRMS между собой, применяются RSL (в Globus Toolkit [2, 3]), JDL (в gLite), xRSL и JSDL [3] в ARC.

В проекте EGI не предполагается создавать ПО для грид-систем, а требуется лишь интегрировать в репозитории UMD уже имеющиеся или вновь разрабатываемые третьими сторонами программные средства, тестировать их, оценивать производительность и качество, что создает определенные сложности. Отметим, что в 2018 году прекратилось развитие Globus Toolkit (GT), и сейчас разработчики GT из Принстонского университета продвигают свободно доступный облачный продукт Globus cloud service, а программные средства Globus Connect (GC), использующие компоненты GT, создаются альянсом Globus [5]. GC Server v.4 включает GridFTP-сервер, GSI и MyProxy, а в следующей версии исходный текст будет уже сильно отличаться от GT. Кроме того, GC предлагается и в коммерческих вариантах. Появилась альтернатива и для GridFTP с поддержкой высокопроизводительного протокола Tsunami UDP для работы на больших расстояниях и через 10-Gigabit Ethernet.

При обсуждении проекта EGI грид-сообщества gLite, ARC и ряд других планировали консолидировать свои усилия для разработки унифицированного набора компонентов, однако этого достичь не удалось. Например gLite представлен только в виде набора отдельных компонентов: UI, CREAM (Computing Resource Execution And Management), сервиса авторизации при полном отсутствии собственного варианта WMS, а в ARC все средства собраны воедино (см. рисунок).

Основные компоненты ARC

При разработке ARC ставилась цель создания связующего ПО, работающего в условиях полной децентрализации, и сейчас вся функциональность собрана в отдельный сервис ARC pre-WS (pre-Web service), называемый так, поскольку соответствующие сервисы не используют веб-сервисы. Минимальная конфигурация ARC включает CE, информационную систему и брокер-клиент.

Среди преимуществ ARC можно отметить жесткую ориентацию на применение стандартов OGSA (XML и веб-сервисы, стандарт JSDL и др.), возможность работы на всех распространенных вариантах Linux и переносимость большинства компонентов на Windows и Mac OS. Клиенты ARC имеются и в репозиториях Fedora (EPEL), Debian и Ubuntu, хотя UMD-4 ориентирована на другие дистрибутивы и включает в себя около 50 программных пакетов для разных сервисных групп (см. таблицу). Следует также упомянуть средства CREAM, обеспечивающие работу с разными LRMS, и специализированную надежную масштабируемую файловую систему CVMFS (CernVM-File System), которая поддерживает обработку больших объемов данных и изначально ориентирована на решение задач физики высоких энергий. Система работает только в режиме чтения и использует исходящие соединения HTTP. Наряду с этими, к категории сервисов HTC относятся 14 пакетов, включая GRAM, средства gLite, CREAM, а также QCG (ранее QosCosGrid), позволяющие управлять задачами и ресурсами с использованием технологий распараллеливания расчетов. Кроме того, имеется информационная система на основе протокола LDAP — BDII (Berkeley Database Information Index), которая агрегирует информацию, публикуемую различными грид-сервисами. Наиболее интересный компонент категории хранилищ данных — распределенная масштабируемая система хранения dCache, предназначенная для обработки на SE огромных объемов данных с образованием в гетерогенной среде единой файловой системы, единого дерева файлов и хранением метаинформации в базе данных. Для увеличения производительности и надежности возможна репликация файлов.

Связь между клиентом и сервером в ARC может осуществляться через веб-сервисы, для чего предлагается использовать как интерфейс командной строки, так и графический пользовательский интерфейс; клиенты разрабатываются с помощью библиотек, а сами клиентские приложения можно создавать на Python и Java. Общая особенность вновь включаемых в ARC компонентов — применение демона HED (Hosting Environment Daemon), представляющего собой контейнер всех функциональных компонентов серверной части ARC.

ARC CE обеспечивает доступ к вычислительным ресурсам в грид-среде, и самый важный компонент здесь — сервис A-REX (ARC Resource-coupled EXecution service), используемый для выполнения вычислительного задания.

Информационная система ARC реализована как иерархическая распределенная база данных описания всех известных ресурсов, причем информация для каждого сервиса (вычислительного и ресурсов данных) создается и сохраняется локально. Удаленный запуск заданий осуществляется через брокер, задача которого — обнаружение ресурсов и оптимальное распределение рабочих нагрузок. Для мониторинга можно использовать графический клиент Grid Monitor, который периодически запрашивает и предоставляет конечным пользователям информацию о заданиях.

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

***

Сегодня ARC можно считать лучшим вариантом универсального интегрированного связующего ПО для грид-инфраструктур, однако ожидаемого в рамках EGI полного слияния gLite, ARC, UNICORE и dCache пока не произошло, что, в частности, вызвано и прекращением развития Globus Toolkit. Тем не менее системы гридов работают и развиваются.

Литература

1. Mishra M. K. et al. A review and classification of grid computing systems // International Journal of Computational Intelligence Research. — 2017. Vol. 13, N. 3. — P. 369–402.

2. Владимир Кореньков, Александр Ужинский. Архитектура сервиса передачи данных в grid // Открытые системы.СУБД. — 2008. — № 2. — С. 52–56. URL: https://www.osp.ru/os/2008/02/4926522 (дата обращения: 01.03.2019).

3. Всеволод Косульников, Радий Кадушников, Вячеслав Мизгулин. Платформы eScience // Открытые системы.СУБД. — 2012. — № 7. — С. 56–59. URL: https://www.osp.ru/os/2012/07/13017646 (дата обращения: 08.03.2019).

4. Ян Фостер и др. Grid-службы для интеграции распределенных систем // Открытые системы.СУБД. — 2003. — № 1. — С. 20–26. URL: https://www.osp.ru/os/2003/01/182393 (дата обращения: 07.03.2019).

5. Chard K., Foster I., Tuecke S. Globus: Research data management as service and platform // Proceedings of the Practice and Experience in Advanced Research Computing 2017 on Sustainability, Success and Impact. — ACM, 2017. — С. 26–30.

Александр Мускатин (amus@free.net) — инженер, Михаил Кузьминский (kus@free.net) — научный сотрудник, Институт органической химии РАН (Москва); Александр Русаков (alex.rus.212 @mail.ru) — ректор Ярославского государственного университета. (Ярославль). Работа поддержана РФФИ (проект 18–07–00657).