Грид (grid) — также сетевая служба, и подобно тому, как происходит обмен данными между подключенными к Интернету компьютерами, так и она позволяет обмениваться вычислительными ресурсами, дисковым пространством и т.д.
Подключаясь к grid, пользователь отдает ей часть ресурсов своего ПК, а именно часть оперативной памяти, процессорного времени или дискового пространства, а в ответ получает доступ к ресурсам других участников grid, которая играет роль огромного компьютера с гигантскими вычислительной мощностью и объемами дискового пространства.
Но это только в теории. На практике же многие моменты функционирования grid неясны из-за того, что эта служба пока находится в стадии разработки и создания прототипа. В настоящее время вопросами создания grid заняты тысячи специалистов во всем мире.
Вступление
Концепция распределенных grid-вычислений, которая, как и web (Всемирная паутина), берет свое начало в Европейском центре по ядерным исследованиям (CERN) в Швейцарии, приобретает все большую популярность. Суть концепции заключается в использовании географически распределенных ресурсов для решения различных задач. Такой подход позволяет получить гораздо большие вычислительные мощности, чем предоставляет любой из существующих суперкомпьютеров. Зачастую используется бесплатное машинное время простаивающих вычислительных комплексов, поскольку процессорные мощности миллионов рабочих станций и ПК используются не в полном объеме.
В общем виде распределенные вычисления можно представить следующим образом. Имеются определенная задача и набор географически распределенных вычислительных узлов, связанных единой сетью. Чтобы решить данную задачу, ее нужно разбить на несколько независимых подзадач. Далее специальное ПО, основываясь на информации о мощности и загруженности того или иного вычислительного узла, о пропускной способности каналов связи и прочих факторах, должно распределить подзадачи между вычислительными узлами. Таким образом, подзадачи будут решаться параллельно на нескольких компьютерах, в результате общее время решения многократно уменьшится. То есть grid позволяет справляться с задачами, для которых использование ПК или даже суперкомпьютера потребовало бы очень много времени.
Существующие grid-проекты
Один из предшественников grid-технологий — научный некоммерческий проект SETI@home (SETI — Search for Extraterrestrial Intelligence), обеспечивающий работы по поиску внеземных цивилизаций. В его рамках добровольцы по всему миру на миллионах компьютеров, подключенных к Интернету, производят анализ радиосигналов, получаемых из космоса.
Программное обеспечение этого проекта представлено в виде скринсейвера, обрабатывающего радиосигналы в то время, когда компьютер, на котором он установлен, не используется. Другой известный проект — LCG (LHC Computing Grid), созданный для обработки результатов экспериментов на Большом адронном коллайдере в ЦЕРН. Собственно, эта гигантская установка будет запущена в эксплуатацию только в 2007 г., но масштаб стоящих перед исследователями задач уже сейчас требует создания вычислительной инфраструктуры проекта. В отличие от SETI@home, в проекте LCG участвуют десятки научных организаций, что позволяет использовать в качестве вычислительных ресурсов специально выделенные для эксперимента компьютеры и кластеры, объединенные в общую сеть с помощью средств Globus Toolkit. В рамках проекта планируется ежегодно обрабатывать порядка 10 Пбайт информации, а общее число компьютеров будет составлять около 100 тыс.
В России, как и во всем мире, ученые уделяют пристальное внимание развитию grid-технологий и распределенных вычислений. Среди отечественных организаций, занимающихся проблемами grid, следует упомянуть РНЦ «Курчатовский институт», Объединенный институт ядерных исследований в Дубне, Институт физики высоких энергий в Протвино, НИИ ядерной физики МГУ им. М.В. Ломоносова. Все они участвуют и в проекте ЦЕРН.
В Институте программных систем РАН ведется разработка системы автоматического динамического распараллеливания вычислений, или Т-системы. Концепция динамического распараллеливания как нельзя лучше подходит для больших распределенных вычислительных сред, ведь их характеристики изменяются во времени, причем даже в ходе лишь одного расчета. Изменяется доступная процессорная мощность, особенно при задействовании простаивающих компьютеров, и свойства каналов связи. Задача распараллеливания вычислений, сложная сама по себе, имеет дополнительные трудности, связанные с такими характеристиками распределенных вычислителей, как ненадежность отдельных элементов среды и участие в расчете разнородных элементов (на компьютерах используются различные ОС, процессоры и т.п.).
Все это делает распараллеливание вычислений вручную крайне трудоемким: на этапе реализации программы на программиста ложится задача не только самостоятельно предложить схему распараллеливания, но и предусмотреть внешние факторы, способные повлиять на этот процесс. Кроме того, нужно знать средства распараллеливания программ, например Message Passing Interface (MPI).
В случае использования Т-системы распараллеливание программы происходит динамически: программист должен лишь указать те части задачи, с которыми связана необходимость вычисления в параллельном режиме.
Входным языком Т-системы является Т++ — диалект С++, полученный добавлением в C++ семи ключевых слов.
Сравните: при традиционном подходе к параллельному представлению процесса программист должен изучить MPI, а также приобрести навыки работы с соответствующей библиотекой, содержащей порядка 200 функций, а при программировании на Т++ ему придется освоить всего семь новых понятий.
Средства создания grid-систем
Наиболее известные средства создания grid-систем — BOINC и Globus Toolkit.
Система BOINC, используемая в проекте SETI@home, имеет клиент-серверную архитектуру. При этом весь вычислительный процесс можно разделить на три этапа:
- освободившийся вычислительный узел обращается к главному серверу системы;
- главный сервер выдает задание;
- после выполнения задания результаты возвращаются на главный сервер системы.
Такой подход удобен, поскольку отличается простотой анализа проблемы балансировки нагрузки и обеспечением отказоустойчивости. Однако круг решаемых задач ограничен, так как они должны допускать разбиение на большое число подзадач, обладающих набором определенных свойств:
- низкие требования к оперативной и дисковой памяти — допустимо применение на домашних ПК;
- небольшой объем входных и выходных данных —не возникает проблем с передачей по обычным линиям связи в Интернете;
- большой объем вычислений — время передачи входных и выходных данных меньше времени счета;
- если какая-то подзадача не завершена, то ее можно перезапустить в любой момент времени на другом компьютере без ущерба для результата выполнения всей задачи.
Другое известное средство организации раcпределенных вычислений, Globus Toolkit, используемое в проекте LCG, имеет достаточно внушительный объем программного кода. Сейчас оно поддерживает только Unix-подобные системы и требует от владельца вычислительного узла дополнительных усилий, направленных на установку, настройку и администрирование пакета. Кроме того, в Globus Toolkit нет развитых средств создания параллельных приложений, облегчающих труд программиста. Это объясняется тем, что в LHC GRID для параллелизма вполне достаточно объема анализируемых независимых событий.
Поскольку в Институте программных систем (ИПС РАН) сочли, что существующие средства создания grid-систем недостаточно хороши, то там было принято решение разработать собственную систему для распределенных вычислений на основе Т-средств. К ней предъявили следующие требования:
- гетерогенность операционных систем — поддержка как Unix-подобных ОС, так и Windows;
- использование только незадействованных ресурсов;
- обеспечение информационной безопасности для вычислительных узлов;
- полное отсутствие необходимости администрирования пакета владельцем вычислительного узла;
- весьма удобное администрирование grid-системы немногочисленным персоналом организаторов.
Проект, выполняемый при поддержке Президиума и Отделения информационных технологий и вычислительных систем РАН, получил название T-Grid, а в качестве испытательного полигона была выбрана региональная компьютерная сеть Переславля-Залесского, где расположен ИПС РАН.
Сеть в одном городе
Переславль-Залесский находится в 130 км северо-восточнее Москвы. Его население — около 45 тыс. жителей. Привлекательность этого города в качестве испытательного полигона для T-grid обусловлена развитой инфраструктурой региональной компьютерной сети, созданной здесь учеными ИПС РАН. Весь он охвачен единой сетью, имеющей более 1000 подключенных организаций и квартир, причем за некоторыми из соединений скрывается своя локальная сеть. Обеспечивается скорость передачи данных от 10 до 100 Mбит/с. В самом ИПС насчитывается около 200 компьютеров и четыре кластера. Еще около 50 компьютеров находятся в университете. Все это образует благоприятную среду для распределенной вычислительной системы.
Основная концепция T-grid
Сеть T-grid формируют добровольцы. Для подключения к ней необходимо загрузить и установить на компьютере ПО, бесплатно предоставляемое организаторами. Его установка предельно проста, занимает немного времени и не требует специальной подготовки, достаточно начальных навыков. Потом часть вычислительных ресурсов и дискового пространства переходит в распоряжение остальных участников T-grid. Объем ресурсов, отводимых в общее пользование, определяется их владельцем, а степень использования этого выделенного пространства — администраторами сети. Таким образом, предоставив часть своих ресурсов в T-grid, вы можете работать с ресурсами сотен других компьютеров.
Реализация проекта
При подобном способе организации сети наиболее острыми проблемами становятся ограничение ресурсов и управление конфигурацией. Участники T-grid должны иметь возможность ограничивать размер предоставляемых ими ресурсов, а администраторы — управлять конфигурацией ПО на компьютерах участников. Разрешить эти проблемы помогло применение технологии виртуальных машин. Сейчас используются такие средства, как UML (User Mode Linux — не путать с Unified Markup Language) и cooLinux (Cooperative Linux).
При подключении к сети T-grid на машину пользователя в полуавтоматическом режиме копируется образ специально модифицированной операционной системы на базе ОС RedHat Linux 9.0. Далее в зависимости от операционной системы, используемой на компьютере пользователя, инсталлируется либо UML (для компьютеров, функционирующих под управлением Linux), либо cooLinux (для компьютеров, работающих в среде Windows).
После запуска UML или cooLinux на компьютере участника сети появляется виртуальная вычислительная машина под управлением той самой модифицированной операционной системы на базе ОС RedHat Linux 9.0, образ которой ранее был скопирован. Именно такая машина, именуемая «виртуальный вычислительный узел», предоставляется администраторам сети T-grid, а через них и другим ее участникам. Затем из подобных узлов и формируется T-grid.
После того как участником сети T-grid будет установлено и запущено необходимое ПО, администраторы сети получают в свое распоряжение полноценный вычислительный узел, пусть даже и виртуальный, где можно будет установить новое ПО, перенастроить старое и совершать любые операции, выполняемые на реальных вычислительных узлах. Причем физический компьютер, носитель виртуального узла, остается доступным только своему непосредственному владельцу. Поскольку виртуальный вычислительный узел является обычным пользовательским процессом в компьютере-носителе, то для него, как и для любого другого процесса, могут быть установлены ограничения на объем используемых ресурсов.
Кроме того, имеется механизм автоматического обновления ПО виртуальных узлов. Само изменение образа ОС вычислительного узла производится администрацией сети. Когда после внесения каких-либо изменений в образ она принимает решение об обновлении на всех виртуальных вычислительных узлах, то ПО, установленное на компьютерах участников сети T-grid, начинает процесс загрузки обновленного образа и его установку. Таким образом, система может развиваться без участия владельцев компьютеров, предоставленных в распоряжение T-grid.
Благодаря наличию различных операционных систем T-grid охватывает максимально широкий спектр вычислительных ресурсов, а ее возможности позволяют решать сложные задачи быстрее, чем на обычном ПК.
Авторы выражают благодарность Президиуму РАН, при поддержке которого (в рамках академической программы «Разработка фундаментальных основ создания научной распределенной информационно-вычислительной среды на основе технологий grid») была написана данная статья.
Полную версию статьи см. на «Мир ПК-диске».