Рис. 1. Уровни систем типа GRID
В статье [1] рассмотрена реальная задача для распределенных вычислений — обработка данных измерений в экспериментах по физике высоких энергий. Разработка конкретных моделей по организации распределенных вычислений для физики высоких энергий производится в рамках проекта MONARC. Проект предназначен для разработки и исследования перспективных распределенных вычислительных архитектур, которые могут использоваться при обработке результатов экспериментов на ускорителе LHC.
Современные и планируемые эксперименты по физике высоких энергий предполагают запись и анализ огромных массивов данных, до нескольких петабайт в год. Поскольку в анализе данных будут принимать участие несколько тысяч исследователей из разных стран мира, необходимой предпосылкой успешного выполнения физического анализа является максимально широкий доступ к данным физических измерений. В силу весьма естественных предположений, например, относительно того, что использование более коротких каналов связи (например, между соседними зданиями) как правило, дешевле более длинных (например, между континентами), вырисовывается иерархическая система обработки данных.
Реконструкция — один из предварительных этапов в анализе данных, который сложен как по потребной вычислительной мощности, так и по объему обрабатываемых данных, будет выполняться в CERN. Дальнейший анализ будет производиться с использованием региональных компьютерных центров Уровня 1 (Tier 1) и Уровня 2 (Tier 2); это центры национального масштаба. Будут использоваться также компьютерные центры уровня института или университета (Tier 3), наконец, персональные вычислители, отнесенные к Уровню 4 (Tier 4). Данная архитектура не является жестко определенным проектом, утвержденным некой официальной инстанцией. Вместе с тес такая модель вычислений — более или менее правдоподобный прогноз развития событий, отражающий представления об имеющихся потребностях и о реальном распределении технических, финансовых и административных возможностей.
При всей сложности организации обработки результатов измерений хотелось бы иметь набор программных средств, которые позволяли бы исследователям использовать географически распределенные вычислительные ресурсы, не вникая во все архитектурные детали вычислительного процесса.
Сложность и масштабность вычислительных проблем в данной области вполне впечатляют. Значительный интерес представляют общие методы, которые уже разработаны для решения подобных задач.
Книга о вычислительных сетях
В середине 1998 года вышла в свет книга [2], в которой рассматривались различные аспекты развертывания распределенных вычислительных сетей. Ее лейтмотив — разработка и использование программных компонентов для получения доступа к различным ресурсам компьютерной сети (в общем случае — Internet) с целью организации крупномасштабной обработки данных. Такие вычислительные архитектуры авторы книги назвали grid, неявно проведя аналогию с электросетью и, одновременно, дистанцировавшись от традиционного значения слова «сеть» в контексте коммуникаций. Упомянутая книга представляет собой сборник статей под единым редактированием. Основной ее вывод: необходимые компоненты для эффективных распределенных вычислений уже имеются, требуется лишь разработать компоненты программного обеспечения промежуточного слоя. Аналогичное ПО использовалось в практической работе десятилетиями для связи приложений или различных платформ [4, 5].
В книге рассматриваются несколько типов вычислительных сетей, предназначенных для разных областей деятельности:
- сеть национального масштаба для обслуживания нужд правительственных структур;
- виртуальная сеть для обслуживания научных исследований, выполняемых в составе крупных программ сотрудничества;
- наконец, частная сеть для обслуживания крупного бизнеса.
Часто вычисления с использованием больших объемов данных выделяются в отдельную категорию. Такие приложения могут потребовать манипуляций с многими терабайтами данных, как в упомянутых экспериментах в области физики высоких энергий. Вскоре после выхода этой книги стало ясно, что имеется довольно много общего в вычислительных потребностях различных областей научных исследований. Схожие проблемы наблюдаются и в других областях. Например, NASA реализует для своих нужд сеть высокопроизводительных компьютеров, роботизированных устройств массовой памяти, высокоскоростных каналов связи, научных инструментов и продвинутых интерфейсов для пользователя под названием Information Power Grid, что можно перевести как «мощная информационная сеть» (http://www.nas.nasa.gov/IPG). Системы с подобными целями используются в проектах [6]. К общим характеристикам потребностей, которые делают оправданной организацию вычислительных архитектур типа grid, можно отнести следующие:
- большие объемы данных, распределенных по различным научным центрам, странам и континентам;
- участие большого количества специалистов в обработке данных из разных институтов и университетов;
- информация, которую следует проанализировать, имеет сложную структуру;
- алгоритмы обработки информации имеют нетривиальный характер (объем программ составляет миллионы строк текста);
- наконец, масштабируемость базового программного обеспечения (фактически, всего того, что лежит ниже прикладного уровня), которое должно устойчиво работать как на настольной машине, так и на суперкомпьютере.
К настоящему времени уже имеются практические примеры реализации различных систем типа grid.
Без сомнения, самым серьезным стимулом для использования методов интеграции имеющихся ресурсов, находящихся в разных частях страны (а то и планеты), является стоимость новых суперкомпьютерных систем. Следует также обратить внимание на то, что мощные вычислительные установки не могут функционировать сами по себе без квалифицированного персонала, имеющего практический опыт организации крупномасштабных вычислений. Ведь при работе на удаленном вычислителе потребитель пользуется также результатами труда персонала, который сопровождает данный вычислитель. Зачастую это обстоятельство оказывается таким же важным, как и наличие доступа к мощным вычислительным ресурсам — подготовка новых специалистов и создание продуктивного коллектива для нового суперкомпьютерного центра обойдется дороже любых суперкомпьютеров. Таким образом, создание средств для объединения вычислительных мощностей одновременно ведет и к появлению средств для объединения, через национальные границы и административные барьеры, усилий людей.
Почти сразу после выхода книги [2] в различные фонды потекли предложения по реализации вычислительных сетей типа grid. В Internet появилось несколько сайтов, отражающих общую активность в данном направлении. Европейский форум Europien Grid Forum (www.egrid.org) представляет собой сайт, нацеленный на обсуждение, обмен опытом в использовании распределенных вычислительных систем, доступ к которым осуществляется на базе глобальных сетей. Примерно для тех же целей предназначен и американский Grid Forum (www.gridforum.org).
Проекты по распределенным вычислениям
В последние несколько лет появилось заметное число проектов разного уровня, направленных на разработку способов интегрирования всякого вида ресурсов сети для выполнения крупномасштабных задач анализа данных. При этом имеются в виду все виды ресурсов: вычислительная мощность, каналы связи, внешние устройства для хранения данных, а также интеллектуальные инструменты. В общем случае все эти ресурсы принадлежат административно независимым организациям.
Под термином «интеллектуальные инструменты» понимаются сложные и дорогие инструменты (электронные микроскопы, ускорители заряженных частиц, космические аппараты и т.д.). Другими словами, это очень сложные установки, нетривиальное функционирование которых определяется громадным количеством внутренних состояний, возможно, превышающих количество внутренних состояний отдельного человека. Естественно, подобные установки могут содержать многие сотни или тысячи компьютеров, которые являются их неотъемлемой частью.
Проект Globus
На сегодняшний день одним из самых успешных является Globus — совместный проект Аргонской национальной лаборатории и Института информации Университета Южной Калифорнии (www.globus.org). Цель проекта — разработка технологий, которые могут быть использованы при создании вычислительных сетей. Следует отметить, что Globus уже привлек внимание российских специалистов [3], которые представили данный проект как элемент реализации общих идей метакомпьютинга. В проекте предполагается, что вычислительные сети представляют собой долговременно существующую вычислительную среду, которая позволяет программному приложению объединить компьютеры, интеллектуальные инструменты, информационные ресурсы независимо от их географического расположения. Важным моментом является то, что Globus имеет конкретные результаты в виде комплекта разработанных программ.
Globus Resource Allocation Manager (GRAM) обеспечивает универсальный интерфейс к широкому ряду локальных средств управления различными ресурсами: процессоры, вторичная память, каналы связи и т.д. GRAM транслирует запросы на ресурсы в команды, специфичные для локальных систем управления выполнением запросов. GRAM — нижний уровень управления ресурсами, посему он непосредственно взаимодействует с локальными планировщиками распределения ресурсов. Пользовательские запросы к GRAM выполняются через шлюзы (или «привратники»). Задание, в рамках Globus, направляется привратнику той вычислительной установки, на которой запрошены ресурсы для выполнения данного задания. Привратник должен распознать сертификат и полномочия пользователя (имеет ли пользователь учетную запись на данной локальной машине, разрешено ли ему запускать задание на данной вычислительной установке); пользователь должен быть зарегистрирован на всех машинах, где он запрашивает ресурсы для выполнения своего задания. Естественно, программа-привратник должна быть установлена на каждой вычислительной установке системы Globus. Запросы на ресурсы формулируются с использованием специального расширяемого языка описания ресурсов Globus Resource Specification Language (RSL). Например, последовательность утверждений
&(executable=myprog) (count=24) (resourcemanager= neptune.caltech.edu:755)
означает: «затребовать 24 процессорных узла для выполнения программы с именем myprog». Список ресурсов может объединяться обычными логическими операциями. Так, последовательность
&(executable=myprog) (|&(count=24)(memory>=64)) ((count=10)(memory>=128)))
означает: «затребовать 24 процессорных узла с памятью 64 Мбайт для выполнения программы с именем myprog или 10 процессорных узлов с памятью не менее 128 Мбайт». Можно представить себе автоматический брокер, который мог бы преобразовывать абстрактные запросы в конкретные возможности с использованием той или иной стратегии. Однако к моменту подготовки этой статьи к публикации такой брокер еще не был создан.
Globus Security Infrastructure (GSI) — «Инфраструктура Сетевой Безопасности», обеспечивающая общий интерфейс для различных локальных систем безопасности. Особенности этой системы включают однократную проверку пользователя за один сеанс работы. Все последующие запросы на аутентификацию выполняются специальными прокси-серверами. Безопасность в системе Globus реализована с использованием протокола аутентификации X.509, который предполагает использование механизма сертификатов. Безопасность обеспечивается центром сертификации (Certificate Authority — СА), которому доверяют все пользователи, получающие, в свою очередь, собственные сертификаты. В такой схеме безопасности используется правило транзитивности доверия: если пользователь_2 показал, что центр доверяет ему, тогда пользователь_1, убедившись в верности подписи центра, доверяет пользователю_2. Каждый пользователь должен быть зарегистрированным и получить сертификат от центра. С другой стороны, поскольку в процессе аутентификации производится обмен сертификатами, то и пользователь убеждается, что он взаимодействует с верной системой. Процесс аутентификации в Globus производится сейчас с использованием протокола Secure Socket Layer. На базе средств GSI разработаны в частности варианты ftp-сервера и ftp-клиента, которые могут использоваться независимо.
Grid Information Service (GIS) — информационная служба, позволяющая получить информацию о состоянии распределенных ресурсов сетевой инфраструктуры Globus. Эта служба базируется на использовании протокола доступа к каталогам LDAP.
Global Access to Secondary Storage (GASS) — средства глобального доступа к вторичной памяти. С использованием GASS можно организовать доступ ко всему ряду удаленной вторичной памяти: от дисковой памяти, подключенной к удаленной машине, до HPSS. Таким образом, GASS представляет собой набор средств, позволяющих управлять способами перемещения данных в соответствии с различными стратегиями (сценариями) перемещения.
Другие проекты
Следует отметить также и другие важные проекты по распределенным вычислениям.
Проект Legion (http://www.cs.virginia.edu/~legion) — один из долгоживущих проектов; начат в 1993 году. Проект нацелен на разработку объектно-ориентированной программной среды, объединяющей много (например, несколько тысяч) различных компьютеров в сети для решения конкретной проблемы.
Проект GriPhyN, или Grid Physics Network (http://www.phys.ufl.edu/~avery/mre/), ставит своей задачей создание вычислительной инфраструктуры для научных исследований, где приходится иметь дело с большим объемом данных.
Проект Particle Physics Data Grid (http://www.cacr.caltech.edu/ppdg/) нацелен на реализацию высокопроизводительных каналов связи с пропускной способностью порядка 100 Мбайт/с.
Цель проекта DATAGRID (http://grid.web.cern.ch/grid/proposal/ august/DataGridAnnex1V1.8.doc), финансируемого Европейским Сообществом, — разработка программных компонентов для архитектур grid, ориентированных на данные, с целью создания в Европе компьютерной инфраструктуры XXI столетия.
Вычислительные структуры для физики высоких энергий
Более двух лет назад стартовал проект MONARC (http://www.cern.ch/MONARC), в рамках которого были сформулированы основные параметры и особенности организации обработки данных на ускорителе LHC в CERN. В рамках инициатив Alice, Atlas, CMS и LHCb был проявлен интерес к программным продуктам общего назначения, разработанным в рамках проектов GriPhyN и Globus. Группы CMS и LHCb начали испытание прототипов на основе программных компонентов Globus, Atlas испытывала прототип распределенных вычислений на основе системы Legion. Система управления для CMS получила название Grid Data Management Pilot (http://cmsdoc.cern.ch/cms/grid/). Основное назначение данной разработки — создание средств автоматического копирования файлов Objectivity DB с целью создания реплики в среде Globus DataGrid.
Заключение
Сегодня уже с уверенностью можно заявить, что мы находимся на пороге крупных технологических изменений в области крупномасштабной обработки данных. Происходит смена модели вычислений — переход от вычислений на одной установке к географически распределенным системам. Этот технологический сдвиг способен оказать такое же сильное воздействие на компьютерное сообщество, как и Internet.
Петербургский институт ядерной физики и ряд других институтов активно участвуют в подготовке различных экспериментов на крупнейшем в мире ускорителе заряженных частиц в CERN. В самом недалеком будущем потребуется создать развернутую вычислительную архитектуру grid регионального масштаба. В связи с этим в ПИЯФ осуществляется развертывание прототипов компонентов Globus.
Андрей Шевель — сотрудник Института ядерной физики (С.-Петербург). С ним можно связаться по электронной почте: Andrei.Chevel@pnpi.spb.ru
Литература
[1] А.Е. Шевель, Вычислительная среда для Большого Адронного Коллайдера. Byte Россия, 2000, № 2
[2] The Grid: Blueprint for a New Computing Infrastructure. Ian Foster and Karl Kesselman, November 1998. Morgan Kaufmann Publishers; ISBN: 1558604758
[3] Виктор Коваленко, Дмитрий Корягин, Вычислительная инфраструктура будущего. «Открытые системы», 1999, № 11-12/, стр. 45-52
[4] http://www.internet2.edu/html/middleware.html
[5] http://www.ietf.org/rfc/rfc2768.txt
[6] National Partnership for Advanced Computing Infrastructure, http://www.npaci.edu/