Научная статья на тему 'Рабочий инструментарий и методы обучения для грид-систем из персональных компьютеров'

Рабочий инструментарий и методы обучения для грид-систем из персональных компьютеров Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
117
21
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Храпов Николай Павлович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Рабочий инструментарий и методы обучения для грид-систем из персональных компьютеров»

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

Н.П. Храпов, ИСА РАН, инженер, МГУ им. Ломоносова, факультет ВМК, ведущий математик, nkhrapov@gmail. com

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

Введение

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

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

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

Основная идея грида рабочих станций состоит в том, что на вычислительных узлах устанавливается и настраивается клиентское

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

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

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

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

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

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

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

5. Результаты работы заданий отсылать обратно на сервер.

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

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

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

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

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

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

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

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

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

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

Методы обучения технологии BOINC

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

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

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

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

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

Ведётся работа по интеграции системы BOINC с технологией электронного обучения moodle[6]. На основе системы moodle готовится создание учебного контента, позволяющего прямо из курса запускать для тестирования на удалённом сервере собственноручно написанные приложения, и получать результат их выполнения. BOINC-сервер находится внутри удалённой виртуальной машины с внешним №-адресом. Для каждого учащегося, проходящего курс в moodle, на BOINC-сервере создан соответствующий проект. Студент посредством web-интерфейса moodle имеет возможность запускать на данном сервере распределённые приложения, и в качестве вычислительных узлов подключать какие угодно имеющиеся в его распоряжении машины. Таким образом нескольких лекций и практических занятий на виртуальных макетах в рамках компьютерного класса вполне достаточно для того чтобы дать студенту полноценное представление по инфраструктуре BOINC и необходимые навыки по работе с ней.

Разработка инструментария

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

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

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

Инструментарий сбора статистики и мониторинга системы даёт пользователю возможность отслеживать такие важные параметры как ускорение системы, число машин под различными платформами, просматривать динамику работы системы в виде графиков. Для работы с инструментарием пользователю нужен всего лишь браузер, поддерживающий JavaScript. При разработке средства построения графиков использовалась облачная технология Google Web Toolkit[7]. Для сбора статистики были написаны специальные Perl-скрипты. Основные компоненты web-интерфейса реализованы на php.

Успешные реализации инструментария

В настоящее время инструментарий успешно используется как при тестировании распределённых приложений, так и при работе с уже функционирующими проектами добровольных вычислений. В частности полная версия инструментария используется на сервере BOINC для образования (boinc-edu.isa.ru). Средство сбора статистики и мониторинга состояния системы используется в следующих проектах добровольных вычислений:

• Проект решения задач оптимизации optima@home[8].

• Проект решения задач о выполнимости булевых формул[9]. Литература

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.jinr.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] (http://boinc.berkeley.edu/wiki/User_manual)

5. SZTAKI: DC-API manual [HTML] (http://www.desktopgrid.hu/storage/dcdoc/general.html)

Moodle [HTML] (http://moodle. org/about).

Официальный сайт проекта Google Web Toolkit[HTML] (http://code.google.com/intl/ru-RU/webtoolkit). optima@home [HTML](http://boinc.isa.ru/dcsdg). sat@home[HTML](http://sat.isa.ru/pdsat).

i Надоели баннеры? Вы всегда можете отключить рекламу.