Сеть как один компьютер
Основная идея метакомпьютинга состоит в использовании
независимых компьютеров, объединенных в сеть, как будто они являются одной
большой параллельной машиной или виртуальным суперкомпьютером. Эта идея имеет
ряд преимуществ, к которым относится, например, низкая стоимость суммарных
вычислительных ресурсов.
В то время как
традиционные виртуальные машины были разработаны для небольшого числа гомогенных
сильно связанных ресурсов, быстрый рост сети Интернет позволяет применять эти
концепции в намного большем масштабе. К тому же, настольные ПК в корпоративных и
домашних условиях не сильно нагружены – обычно используется только одна десятая
часть мощности. Поэтому возникает интерес к использованию вычислительных
мощностей, которые доступны в виде свободных циклов работы центрального
процессора. Эта новая парадигма стала одной из идей грид.
Сегодня наблюдается
быстро растущий интерес к технологиям грид со стороны коммерческих предприятий.
Операционная система Microsoft Windows
широко используется большинством организаций. Для более широкого
распространения грид не хватает развития грид-платформ, поддерживающих
операционную систему Microsoft Windows. Эта поддержка
позволила бы эффективно использовать свободную вычислительную мощность
настольных компьютеров и рабочих станций посредством создания виртуального
вычислительного ресурса, стоимость которого значительно ниже стоимости
традиционных суперкомпьютеров. В
настоящее время практически отсутствует сервисно-ориентированное промежуточное
программное обеспечение, поддерживающее Microsoft Windows. Инструментарий Alchemi, основанный на
технологии Microsoft.NET, принадлежит к числу таких
проектов.
Несмотря на то,
что понятие грид может быть дано на интуитивно простом уровне, практическая
реализация такой инфраструктуры сталкивается с множеством трудностей. Основные
проблемы связаны с разнородностью, надежностью, разработкой приложений,
планированием, управлением ресурсами и безопасностью. Технология Microsoft.NET может быть использована для решения
всех перечисленных проблем. Отметим, в частности, поддержку удаленного
исполнения (.NET Remoting и веб-сервисы),
многопоточности, безопасности, асинхронного программирования, удаленного доступа
к данным, управления исполнением и поддержку нескольких языков программирования.
Все это делает инструментарий Microsoft.NET удобной
платформой для разработки промежуточного программного обеспечения
грид.
Принцип работы Alchemi
В вычислительной
грид-сети, построенной на базе инструментария Alchemi, участвуют следующие четыре компоненты:
Менеджер (Manager), Исполнитель (Executor), Пользователь (User) и Межплатформенный менеджер
(Cross-Platform Manager). Взаимосвязи этих сущностей показаны на рисунке.

Как видно из
представленной схемы, инструментарий Alchemi построен по клиент-серверной
схеме. Для объединения некоторой совокупности компьютеров в вычислительную сеть,
нужно выбрать один узел, который будет играть роль сервера, и установить на него
Менеджер. На один или несколько компьютеров сети устанавливаются клиенты –
Исполнители, которые настраиваются на работу с Менеджером. В дистрибутив Alchemi
входят удобные программы инсталляции, требующие минимальной настройки, так что
процесс создания Alchemi-грид является достаточно
простым.
Исполнитель
поддерживает два режима работы с Менеджером: выделенный (dedicated) и невыделенный (non-dedicated). Первый режим означает, что
Менеджер отдает поток на выполнение незамедлительно, тогда как во втором случае
выполнение потока инициируется самим Исполнителем. В невыделенном режиме Исполнители могут
работать через брандмауэры и NAT серверы, так
как в этом случае создается лишь односторонняя связь с Менеджером. Выделенный
режим лучше подходит для работы в локальной сети, в то время как невыделенный
режим предпочтителен для работы в Интернет.
Пользователи могут
разрабатывать, выполнять и осуществлять мониторинг грид-приложений, используя
специальный .NET API и инструментальные средства, включенные в Alchemi SDK.
Инструментарий
предлагает две модели программирования:
модель грид-потоков, которая
позволяет очень просто разработать новое приложение, а также модель грид-заданий для поддержки уже созданных
программ.
Дополнительная
компонента (не показана на рисунке) – Межплатформенный менеджер (Cross-Platform Manager) в виде
веб-сервиса – предоставляет функциональную совместимость с другим промежуточным программным обеспечением
(middleware) грид. Это
означает, что грид-сеть, построенная на базе Alchemi, может входить в состав другой,
более крупной грид-сети.
Возможные применения инструментария
Компоненты, входящие
в состав инструментария Alchemi, могут использоваться для
построения различных конфигураций вычислительной сети: кластер (desktop grid), мультикластер (multi-cluster grid), глобальная грид-сеть (global grid).
Кластер
Простейший
сценарий применения инструментария Alchemi
– создание вычислительного кластера из настольных компьютеров. В этом случае
используется один Менеджер и несколько Исполнителей, сконфигурированных на
работу с Менеджером. Схема такой вычислительной сети показана на рисунке.

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

Отметим ключевой
момент в этой схеме. Менеджер на каждом уровне иерархии, за исключением самого
верхнего, конфигурируется на работу с вышестоящим Менеджером в качестве
“промежуточного”. Для вышестоящего Менеджера он выглядит как Исполнитель. Таким
образом, Менеджер реализует интерфейс Исполнителя. Промежуточный Менеджер играет
двоякую роль: с одной стороны он выполняет функции Исполнителя (для вышестоящего
Менеджера), с другой – функции Менеджера (для нижестоящих Исполнителей и
Менеджеров). Подобная схема лучше подходит для использования в сети Интернет и
обладает большей надежностью по сравнению с предыдущим вариантом.
После того, как
пользователь отправляет грид-приложение на выполнение главному Менеджеру,
последний получает некоторое число грид-потоков, ожидающих своего исполнения в
грид-сети. По-умолчанию все грид-потоки имеют наивысший приоритет и начинают
исполняться на доступных Исполнителях. Некоторые Исполнители могут оказаться
промежуточными Менеджерами. В этом случае после получения потока от вышестоящего
Менеджера, его приоритет понижается на единицу, и поток планируется на
выполнение на локальных Исполнителях промежуточного Менеджера. Понижение
приоритета приводит к тому, что поток перемещается вниз по иерархии Менеджеров.
Таким образом, чем “ближе” поток находится к Исполнителю, тем с большим
приоритетом он начинает выполняться. Это позволяет часть Alchemi-грид, находящуюся в пределах
одного административного домена, разделять с другими организациями, обеспечивая
совместную работу без воздействия на конечных пользователей.
Промежуточный
Менеджер, как и обычный Исполнитель, может быть сконфигурирован на работу в двух
режимах: выделенном и невыделенном. Подобная возможность позволяет более гибко
использовать ресурсы и обеспечивать работу при ограничениях сети.
Глобальная
грид
Межплатформенный
Менеджер может быть использован для конструирования сегмента грид, отвечающего
классической схеме. Компонента промежуточного программного обеспечения, такая
как брокер ресурсов, может использовать Межплатформенный Менеджер в виде
веб-сервиса для исполнения межплатформенных приложений (описываемые файлами
задания) на сегменте Alchemi
(кластер или мультикластер). Например, Alchemi-грид
может входить в состав более крупной грид-сети, построенной на базе Globus
Toolkit.