Инфраструктура и методы обучения технологиям гридов из персональных компьютеров

Инфраструктура и методы обучения технологиям гридов из персональных компьютеров

Н.П. Храпов, ИСА РАН, инженер, nkhrapov@gmail.com

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

Если взять современный домашний, офисный компьютер или ноутбук, и проследить среднюю по времени загруженность его процессора, можно увидеть, что процессор в целом использует всего несколько процентов своего вычислительного ресурса, а более чем 90%(по большому счету колоссальные вычислительные мощности) простаивают.

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

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

Существует несколько пакетов программного обеспечения, реализующих работу инфраструктуры грида рабочих станций. Наиболее популярной на данный момент является платформа BOINC(Berkeley Open Infrastructure Network Computing).

Все программное обеспечение BOINC можно разделить на две компоненты: клиентскую и серверную части программного обеспечения.

Клиентская часть устанавливается на вычислительном узле. В её задачи входит:

• Подключиться к одному из проектов, к какому именно указывает

владелец машины.

• Запрашивать задания у центрального сервера.

• Скачивать задания с сервера, если они там есть.

• Запускать у себя скачанные задания.

Результаты работы заданий отсылать обратно на сервер. Серверная часть программного обеспечения BOINC выполняет следующие действия:

• Создает задания для пересылки на вычислительные узлы.

• Отвечает на клиентские запросы, отправляет задания на вычислительные узлы.

• Получает результаты работы задания и передает их для дальнейшей обработки.

• Содержит в себе web-сервер для получения информации о проекте через web-интерфейс.

Соответственно распределённое приложение для инфраструктуры BOINC можно разделить на две основные компоненты: клиентскую и серверную части распределённого приложения.

Клиентская часть распределённого приложения и есть исполняемый файл, запускаемый на вычислительном узле. Она выполняет основную вычислительную нагрузку. Серверная часть распределённого приложения создает задания(т.н. расчетные блоки — workunits) для клиентких узлов. Как правило расчётный блок состоит из исполняемого файла клиенткой части, объединённый со специфическим для конкретного задания входного файла с данными. После отправки задания в вычислительную инфраструктуру серверная часть распределённого приложения ждет результатов задания. Получив из инфраструктуры все результаты заданий, серверная часть производит их обработку, и создает единый результат работы распределённого приложения.

Для иллюстрации рассмотрим принцип работы простейшего распределённого приложения — задачу вычисления определённого интеграла некоторой функции на заданном интервале(рис. 1). Пусть в нашей инфраструктуре функционирует один сервер и несколько вычислительных узлов. Тогда задача клиентской части будет состоять в том, чтобы из входного файла с данными взять пределы интегрирования, и посчитать определённый интеграл по этому интервалу. Серверная часть должна взять всю область интегрирования, разбить её на нужное количество подобластей, каждую подобласть скомпоновать с соответствующим файлом клиентской части приложения, и средствами вычислительной инфраструктуры разослать по клиентским вычислительным узлам. По-

лучив все результаты интегрирования по каждой из подобластей, серверная часть складывает их, и получает единый результат работы распределённого приложения.

Рис.1. Схема распределенного алгоритма вычисления значения интеграла

WU1 WU2 WU3 WU4

Настройка сервера и разработка распределённых приложений для инфраструктуры BOINC представляют собой нетривиальные задачи, требующие специальной подготовки. Учитывая возрастающий интерес к технологиям грида рабочих станций, можно с уверенностью сказать, что в обозримом будущем в обществе будут востребованы специалисты по данной технологии. При поддержке двух европейских проектов EDGI и DEGISCO была образована Международная федерация грида рабочих станций. Данная организация ставит своей целью объединить людей из различных отраслей, университетов, исследовательских институтов, заинтересованных в использовании вычислительных ресурсов такого типа и обмене опытом.

На факультете Вычислительной математики и кибернетики МГУ в рамках курса «Распределённые технологии и грид» проводятся лекции и практические занятия по технологии BOINC. В процессе обучения студенты получат теоретическое представление о технологии гридов рабочих станций. Далее на практике будет детально проработан процесс инсталляции и настройки программного обеспечения BOINC. На тестовом макете вычислительной инфраструктуры будет отрабатываться запуск распределённых приложений и устранения возможных неполадок. Последние два занятия будут посвящены разработке распределённых приложений посредством библиотеки DC-API. Каждому студенту будет предложено индивидуальное задание разработать простое распределённое приложение.

Основная проблема, с которой сталкиваются при освоении технологий распределённых вычислений — это проведение практических заня-

тий. Для того, чтобы научиться администрировать вычислительную инфраструктуру, учащемуся необходимо детально проработать весь цикл установки и настройки программного обеспечения для нескольких машин вычислительной инфраструктуры. Чтобы научиться разрабатывать распределенные приложения для системы грида рабочих станций, необходим инструмент для запуска учебных приложений, т.е.опять же сама инфраструктура. Учитывая сравнительно высокую стоимость оборудования не всегда есть возможность для каждого учащегося выделить инфраструктуру, состоящую из нескольких вычислительных машин. В рамках курса практические занятия проводятся на макетах вычислительной инфраструктуры, полученных на одной или нескольких машинах посредством технологии виртуализации. По надёжности, быстродействию и удобству работы была выбрана виртуальная машина vmware player, распространяемая бесплатно с закрытым исходным кодом. Для освоения принципов работы вычислительной инфраструктуры в сети будут выложены готовые виртуальные машины и стенды, чтобы учащийся мог скачивать таковые и организовывать макеты системы BOINC с различной конфигурацией на собственном компьютере, и проводить дополнительное изучение технологии в любое удобное для себя время. Пример как из всего навсего из двух ноутбуков можно создать макет полноценной вычислительной инфраструктуры приведён на рисунке 2.

Ноутбук C2D 1.6 ГГЦ, 3.3 ГБ ОЗУ Debían 5.0.4 —хостовая система и вычислительный узел

Рис. 2. Пример макета вычислительной инфраструктуры, созданный на основе технологии виртуализации м>тм>аге.

Ведётся работа по интеграции системы BOINC с технологией электронного обучения moodle[6]. На основе системы moodle готовится соз-

Vmv\are Workstation Виртуальные машины

Ноутбук Pentium 4М

256 МБ ОЗУ Microsoft Windows ХР Вычислительный узел

дание учебного контента, позволяющего прямо из курса запускать для тестирования на удалённом сервере собственноручно написанные приложения, и получать результат их выполнения. BOINC-сервер находится внутри удалённой виртуальной машины с внешним IP-адресом. Для каждого учащегося, проходящего курс в moodle на BOINC-сервере создан соответствующий проект. Студент посредством web-интерфейса moodle имеет возможность запускать на данном сервере распределённые приложения, и в качестве вычислительных узлов подключать какие угодно имеющиеся в его распоряжении машины.

Таким образом совмещение теоретических занятий с практикумами и доступ студентов к электронным курсам подготовят полноценных специалистов, способных как администрировать инфраструктуру грида рабочих станций, так и создавать для неё приложения.

Литература

1. V.A. Sukhomlin, A.P. Afanasiev, A.L. Kalinichenko, M.A. Posypkin, S.A. Stupnikov, O.V. Sukhoroslov, On Professional Training and Education in the Field of Grid Technologies and Distributed Computing // тезисы конференции GRID'2010, http://grid2010.jinr.ru/files/pdf/sukhomlin.pdf

2. N. Khrapov, M. Posypkin, A. Rubtsov, O. Sukhoroslov, Service and Desktop Grid Infrastructures for Education // тезисы конференции GRID'2010,

http ://grid2010.j inr.ru/files/pdf/posypkin_gridedu. pdf

3. P. Kacsuk, A. Marosi, J. Kovacs, Z. Balaton, G. Gombas, G. Vida, A. Kornafeld. SZTAKI Desktop Grid - a Hierarchical Desktop Grid System, Cracow Grid Workshop, Krakow, 2006

4. BOINC: User manual [HTML]

5. SZTAKI: DC-API manual

[HTML]

6. Moodle[HTML]