Мета-копьютинг и ГРИД

Этот термин возник вместе с развитием высокоскоростной сетевой инфраструктуры в начале 90-х годов и относился к объединению нескольких разнородных вычислительных ресурсов в локальной сети организации для решения одной задачи. Основная цель построения мета-компьютера заключалась в оптимальном распределении частей работы по вычислительным системам различной архитектуры и различной мощности. Например, предварительная обработка данных и генерация сеток для расчета могли бы выполняться на пользовательской рабочей станции, основное моделирование на векторно-конвейерном суперкомпьютере, решение больших систем линейных уравнений - на массивно-паралллельной системе, а визуализация результатов - на специальной графической станции.
Очевидно, что наилучшим образом для решения на мета-компьютерах подходят задачи переборного и поискового типа, где вычислительные узлы практически не взаимодействуют друг с другом и основную часть работы проводят в автономном режиме. Основная схема работы в этом случае примерно такая: специальный агент, расположенный на вычислительном узле (компьютере), определяет факт простоя этого компьютера, соединяется с узлом мета-компьютера, управляющего, и получает от него очередную порцию работы (область в пространстве перебора). После окончания вычисления данной порции, вычислительный узел передает обратно отчет о фактически выполненном переборе или сигнал о достижении цели поиска.
Параллельное вычисление в 1980-х годах сосредоточило усилия исследователей на развитии алгоритмов, программ и архитектур, которые поддерживали одновременную работу нескольких процессоров. На протяжении 1980-х и 1990-х программное обеспечение для параллельных компьютеров сосредоточилось на том, чтобы обеспечить мощные механизмы для управления связями между процессорами, разработке и создании сред для параллельных машин. Параллельная виртуальная машина (Parallel Virtual Machine, PVM), интерфейс передачи сообщений (Message Passing Interface, MPI), высокопроизводительный ФОРТРАН (High Performance Fortran, HPF) и OpenMP были разработаны с целью поддержки связи для приложений, которые масштабируются (scalable applications) . Были разработаны также успешные прикладные парадигмы, чтобы привести в действие огромный потенциал разделенной и распределенной архитектуры памяти.

Что такое Grid-компьютинг?

В дальнейшем исследования в области технологий мета-компьютинга были развиты в сторону обеспечения одновременного доступа многих пользователей к вычислительным ресурсам большого числа (до нескольких тысяч) компьютеров в локальной или глобальной сети), доступ их к хранилищам данных, научного оборудования, компьютерных сетей и т.д.. При этом количество перешло в качество, вызвав к жизни новый термин Grid-компьютинг.
Сначала считали, что Grid будет наиболее полезным в расширении парадигм параллельного вычисления от тесно связанных групп до географически распределенных систем. Однако на практике Grid использовалась более как платформа для интеграции свободно связанных приложений (некоторые компоненты которых могли бы работать на параллельной машине), и для связи распределенных ресурсов (хранение, вычисления, визуализация, инструменты).
Первым современным Grid обычно считают проект I-WAY (Information Wide-Area Year), разработанный как экспериментальный демонстрационный проект в 1995 году, объединивший в национальную распределенную экспериментальную сеть 17 вычислительных узлов, связанных с помощью высокоскоростной магистрали на основе технологии АТМ (1.5 Mб / с - 9.6 Mб / с). Было внедрено распределенную файловую систему и брокер ресурсов, который содержал центральный узел, руководивший сетью, и агентов на остальных узлах. Тогда было разработано также 60 приложений и внедрено в I-WAY,

Разработка инфраструктуры и приложений для I-WAY обеспечила конструктивный и мощный опыт для первого поколения Grid систем, к достижениям которых следует отнести следующее:
• превращение компьютера на устройство, рассчитанное на много пользователей, и создание систем разделения времени
• организацию взаимодействия на уровне процессов путем
- Организации общего адресного пространства
- Распределенной общей памяти (DSM)
- Передачи сообщений (MPI, PVM) для поддержки гетерогенных систем и
работы в локальной / глобальной сети
• перенос модели доступа к программным и аппаратным ресурсам компьютера на распределенную вычислительную среду - пользователь Grid системы может работать с ее ресурсами так же, как с ресурсами собственного компьютера
• отработка следующей схемы работы:
- Агент на машине определяет факт простоя и связывается с сервером, который управляет вычислениями;
- Сервер, который управляет, отправляет агенту новое задание (данные для обработки, область в пространстве поиска);
- После окончания вычислений результаты отправляются обратно на сервер;
• поддержку динамической конфигурации среды, когда Grid система
не имеет постоянного состава и динамично организуется с географически
распределенными ресурсами, временно делегированными их фактическими владельцами (виртуализация метакомпьютеров)
• организацию однородного доступа к вычислительным ресурсам большого количества компьютеров в локальной или глобальной сети
• решение задач, допускающих декомпозицию на большое число небольших, независимых подзадач.

Дальнейшее развитие и обобщение идей метакомпьютинга на более широкий круг вычислительных ресурсов и задач / приложений требовал безотлагательного решения широкого круга проблем, связанных с передачей данных, обеспечением безопасности, управлением задачами, доступу к данным, поиском ресурсов, доступом к ним и другое. Подходы к построению такой Grid-системы были описаны в [Foster I. The Grid: Blueprint for a New Computing Infrastructure / Ian Foster and Carl Kesselman. - Morgan Kaufmann Publishers.-San Francisco.-1998 .- 286 p.], и ее можно рассматривать как представителя Grid-систем второго поколения, которым присущи три основных свойства:
Разнородность: Grid использует различные ресурсы, которые являются разнородными по происхождению, и могли бы охватить многочисленные административные домены через потенциально глобальное пространство;
Масштабируемость: Grid мог бы расти от нескольких ресурсов до тысяч. Это поднимает проблему потенциального снижения уровня производительности по мере роста и распространения Grid. Следовательно, должны быть разработаны приложения, способные использовать имеющиеся ресурсы, а также значительно улучшены средства аутентификации пользователей;
Адаптивность: в Grid отказ ресурса являются скорее правилом, чем исключением. Фактически, с очень многими ресурсами в Grid вероятность некоторого сбоя ресурса достаточно высока. Менеджеры ресурса или приложения должны динамично адаптироваться таким образом, чтобы извлечь максимальную производительность из доступных ресурсов и сервисов.
ПГЗ (программное обеспечение промежуточного слоя) используется для того, чтобы скрыть разнородную природу Grid и создать пользователям и приложениям однородную среду, обеспечивая ряд стандартизованных интерфейсов и множество сервисов. ПГЗ находится между операционной системой и приложениями, обеспечивая приложениям множество сервисов, необходимых для их корректного функционирования в распределенных гетерогенных средах.
Появление ПГЗ означала отделение от мета-компютинга и оформление нового направления Grid технологий. Grid - инфраструктура может состоять из любых видов сетевых ресурсов, начиная от компьютеров (вычислительных ресурсов) до хранилищ данных и специальных научных приборов. Традиционно Grid-приложения требуют огромные по масштабу объемы данных и вычислений. Возникла потребность в создании нового типа программного обеспечения Grid систем, которое в отличие от ирадиционных клиент-серверных систем, где ресурсы управляются и учет пользователей ведется централизованно в одном доверительном домене, обеспечивает:
- динамическое множество доверительных доменов, использующих различные механизмы безопасности
- динамическое множество ресурсов, управляемых автономно в рамках одного из доменов
- динамическое множество пользователей, имеющих учетные записи в некоторых доменах
- доступ в процессе вычислений сразу к нескольким ресурсам из различных доменов
- запуск процессов на нескольких ресурсах
- организацию в процессе вычислений взаимодействия между ресурсами из разных доменов
- Взаимодействие между запущенными процессами.

К достижениям второго поколения Grid систем следует отнести следующее:

• начало выполнения проекта Globus, направленного на формализацию и разработку набора (toolkit) базовых сервисов для:
- управления ресурсами
- управления вычислениями
- управления данными
- обеспечения безопасности;
• разработка и внедрение общей Grid инфраструктуры в виде базовых сервисов, независимых от ресурсов и приложений (аутентификация, авторизация, поиск и распределение ресурсов, сообщения о событиях, учет использования ресурсов, удаленный доступ к данным, обнаружения отказов и т.д.)
• показ возможности объединения базовых сервисов в сложные высокоуровневые сервисы
• разработка ряда программных компонентов и утилит, осуществляющих запуск задач на удаленных ресурсах (суперкомпьютерах, кластерах) через уже существующие системы управления ресурсами (обычно системы пакетной обработки), контроль состояния выполнения задач и управления заданиями, сбор и доступ к разнообразной информации о системе и ее компонентах и т.д., с помощью которых можно предоставить высокоуровневые услуги пользователям, приложениям, планировщикам ресурсов, брокерам.
• начало ряда проектов типа Cactus, WebFlow, DataGrиd по созданию крупномасштабных вычислительных и информационных сетей ресурсов Grid для анализа данных.

Однако второе поколение ПГЗ не обеспечило полную функциональную совместимость созданного Grid программного обеспечения, что является важным условием реализации крупномасштабных вычислений. Чтобы построить новые Grid-приложения, желательно многократно использовать существующие компоненты и информационные ресурсы и гибко ими оперировать.

Две ключевые особенности Grid систем третьего поколения - ударение на принятие сервисно-ориентированной модели и растущее внимание к метаданным. Фактически сервисно-ориентированный подход предполагает, что гибкое применение ресурсов Grid в приложениях Grid будет требовать информацию о функциональных возможностях, характеристиках и интерфейсах различных компонентов, и эта информация должна быть согласованной, чтобы можно было ее обрабатывать компьютером. Были введены новые термины «распределенное сотрудничество» и «виртуальная организация». В третьем поколении сформировалось более целостное представление о выполнении Grid вычислений, и можно сказать, что дело идет скорее об инфраструктуре для е-Науки, чем об улучшении уже разработанной существующей технологии. Grid может обеспечить поддержку удаленного общения ученых в реальном времени. Особенно важна инфраструктура для поддержки распределенных ресурсов - здесь есть много ключевых сервисов: безопасность, масштабирование и управление, регистрация и поиск, и интерфейсы Web-сервисов, ориентированные на сообщения, для обеспечения мощных механизмов сотрудничества. Все главные Grid-сервисы и инфраструктура обеспечивают сотрудничество и являются крайне значимыми для общества.

Третье поколение Grid систем направлено прежде всего на создание «общего исследовательского пространства» («collaboratory»), в котором национальные исследователи могут проводить исследования безотносительно к географическому местоположению путем взаимодействия с коллегами, совместно используя инструментарии, данные и вычислительный ресурс и обращаясь за информацией к цифровым библиотекам. Успешными примерами таких усилий могут служить:
-проект Grиd 2003, предназначенный соединить мощные вычислительные центры США; 
-проект EGEE (Enablиng Grиds for E-science in Europe), целью которого является объединение национальных, региональных и тематических Grid-систем в единую цельную Grid-инфраструктуру для поддержки научных исследований; 
-проект Access Grid, посвященный коллекции ресурсов, которые поддерживают сотрудничество людей через Grid, включая крупномасштабные распределенные встречи и обучение.

Grid-системы третьего поколения уверенно шагают к семантическим Grid, основанным на использовании метаданных и онтологий, в которых информация подразумевается не только как данные, имеющие значение, но и знания, которые приобретаются, используются, представляются, публикуются и поддерживаются, чтобы помочь Е-ученым достигать их специфических целей. Знания понимаются как информация, примененная для достижения цели, решения проблемы или принятия решения. Семантический Grid охватывает все три концептуальные слои : знания, информация и вычисления / данные. Эти дополнительные слои в конечном итоге обеспечат богатый, бесшовный и распространенный доступ, который распространяется на глобально распределенные гетерогенные ресурсы. Одна из стандартных методик, используемых в управлении знаниями - это разработка портала знаний. Стандартное определение для него следующее: портал - это работающее на базе Web приложение, обеспечивающее средства для накопления, приспособления и персонализации данных.

К наиболее весомым достижениям Grid систем третьего поколения, полученным до настоящего времени, можно отнести: 
• слияние Grid-технологий и технологий Web-сервисов, формирование Grid сервиса как специального расширения Web-сервиса путем поддержки экземпляров Grid-сервиса, имеющие состояние и, возможно, ограниченное время жизни; с каждым экземпляром Grid-сервиса связаны данные сервиса, тоесть информация, структурированная в виде набора именованных XML-элементов, которые типизируются (service data elements, SDE 
• обеспечение интероперабельности различных реализаций сервисов, определение стандартизованных интерфейсов сервисов (OGSI), определение протокола (-ов) для вызова определенного интерфейса, договоренность о стандартном наборе поддерживаемых протоколов, причем для каждого из стандартных интерфейсов определен набор элементов данных сервиса, которые должны поддерживаться любым экземпляром сервиса, реализующим данный интерфейс; 
• предложение совместными усилиями GT, IBM и других компаний набора спецификаций под именем WS-Resource Framework (WSRF), который опирается на ту же архитектуру OGSA, на общепризнанные стандарты Web-сервисов, причем сохраняются многие элементы OGSI, но используется другая терминология и расширяются возможности OGSI; 
• создание программного Grid обеспечения Globus Toolkit GT4 как открытой реализации WSRF и средств разработки клиентских и серверных приложений на языках Java, C ++ и Python, при этом GT4 не полностью совместим с предыдущим GT3.

История Globus Toolkit наглядно демонстрирует эволюцию перспективной технологии от сугубо академического проекта с узким кругом пользователей к общепринятому стандарту, который пользуется широкой поддержкой ИТ-индустрии во всем мире.

Даже при том, что сегодня уровень Grid достаточно высок и большинство программных обеспечений доступны и непосредственно используются, он все еще имеет недостаток во многих важных аспектах, которые обеспечат эффективный доступ, распространение и использование системных ресурсов. Можно выделить следующие задачи, которые требуют дальнейшей разработки: 
Информационные службы - механизмы, которые используются для того, чтобы хранить информацию о ресурсах, так как Grid нуждается в предоставлении отдаленных, быстрых, надежных, безопасных и масштабируемых услугах. 
Информация о ресурсах - для корректной работы Grid будут необходимы все виды информации, начиная от имени ресурса и данных безопасности и заканчивая прикладными требованиями и параметрами пользователя. Важно, чтобы вся эта информация была понятной, легко интерпретируемой и могла быть использована всеми службами, которые в ней нуждаются. 
Выявление ресурса - должны быть механизмы для определения местонахождения ресурса в пределах глобально распределенной системы, если есть уникальное имя ресурса или его характеристики. Сервисы являются ресурсами. Некоторые ресурсы могут храниться, могут быть переходными, и некоторые могут быть созданы по требованию. 
Синхронизация и координация - должны быть механизмы для управления сложной последовательностью вычислений на множестве ресурсов. Для этого может понадобиться описание процесса и наличие событийно-ориентированной инфраструктуры, что подразумевает планирование на разных уровнях, включая метапланирование и информационные потоки. 
Устойчивость к отказу системы - среды должны справляться с отказом компонентов программного обеспечения и оборудования, так же как с проблемами доступа вообще, и должна быть продумана обработка исключительных ситуаций, необходимая в такой динамичной многопользовательской мультисистеме. 
Безопасность - аутентификация, авторизация, гарантия, и механизмы ведения учета должны быть установлены на месте, и они должны функционировать в контексте автоматизации и масштаба что увеличивается. 
Параллельность и последовательность - потребность поддержать соответствующий уровень последовательности данных в параллельной, разнородной среде. Для некоторых приложений достаточным может быть менее четкая последовательность. 
Производительность - потребность в состоянии справиться с глобальным доступом к ресурсам, через кэширование и дублирование. Привлекательным выглядит перемещение кода (или сервиса) к данным (возможно со скриптами или мобильными агентами), но вносит ряд проблем. 
Разнородность - потребность работать с множеством аппаратных средств, с различным программным обеспечением и информационными ресурсами, и сделать это через множественные организации с различными административными структурами. 
Масштабируемость - в системе должна быть возможность расширить число и размер сервисов и приложений, не требуя при этом человеческого вмешательства. Для этого нужна автоматизация и идеальная самоорганизация. 
Интерфейсы - потребность использовать Grid, несмотря на специфическое программное обеспечение промежуточного слоя (middleware) в различных инфраструктурах и платформах, что позволит работать в смешанной Grid среде;

Распределенные вычислительные технологии, существовавшие до появления Grid-технологий, не обеспечивают выполнения представленных выше требований. Например, Интернет-технологии направленны на коммуникационный и информационный обмен между компьютерами, но не предоставляют интегрированного подхода для координированного использования ресурсов на нескольких вычислительных системах. Мета-компьютинг обеспечивает параллельное решение конкретной задачи (нескольких задач) на умножении вычислительных ресурсов. Бизнес-технологии фокусируются лишь на проблемах совместного использования информации, зачастую через централизованные серверы. Распределенные вычислительные технологии масштаба предприятия, такие как CORBA или Enterprise Java, позволяют разделять ресурсы только в рамках одной организации. Средства Open Group's Distributed Computing Environment (DCE) поддерживают защищенное совместное использование ресурсов нескольких сайтов, однако большинство виртуальных организаций находит эти инструменты обременительными и негибкими. Провайдеры сервисов хранения данных (storage service provider - SSP) и сервисов приложений (application service provider - ASP) допускают хранение данных и выполнение вычислений на третьей стороне, но с некоторыми ограничениями : например, SSP ресурсы доступны пользователям только через частные виртуальные сети (virtual private network - VPN). Таким образом, нынешние технологии либо не позволяют объединить разнообразные типы ресурсов, либо не предоставляют гибкости в управлении разделяемыми связями.

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

На наш взгляд, нельзя считать тождественными современный Grid-компьютинг и мета-компьютинг 90-х годов. Мета-компьютинг связан с распараллеливанием выполнения отдельных задач на множестве процессоров (типичный пример - классический кластер), а Grid-компьютинг - с оптимальной подготовкой и организацией исполнения множества различных задач в виртуальном поле различных ресурсов, когда вычислительные ресурсы могут быть и однопроцессорными. Grid-и параллельные технологии распределенных вычислений не совпадают. Не разделять Grid-компьютинг и мета-компьютинг - это все равно, что современный «шаттл» по старинке называть «аэропланом» рядом с «кукурузником», не разделять авиационные и космические технологии и говорить о развитии «воздухоплавания» в космосе. Еще хуже «кукурузник» называть «шаттлом». Это может привести к недоразумению при общении с иностранными специалистами (придерживающихся взглядов на развитие и взаимоотношение Grid-компьютинга и мета-компьютинга, изложенных выше), которые не смогут понять, как можно построить Grid-систему (а не мета- компьютер!) на факультете без использования промежуточного ПГЗ. 

Ukrainian (UA)Russian (CIS)English (United Kingdom)