Использование зонтичного проекта распределенных вычислений в рамках учебного курса
И.И. Курочкин
Институт проблем передачи информации РАН
Предлагается использовать грид-системы из персональных компьютеров и мобильных устройств в учебном процессе. В качестве платформы организации проектов распределенных вычислений предлагается BOINC, как самая распространенная платформа для добровольных распределенных вычислений. Организация зонтичного проекта распределенных вычислений дает возможность студентам не только изучать особенности функционирования грид-систем, но и одновременно проводить небольшие численные эксперименты.
Ключевые слова: BOINC, распределенные вычисления, зонтичный проект, гридсистемы из персональных компьютеров, вычислительный эксперимент.
1. Введение.
В рамках распределенных вычислений, представляющих собой способ решения трудоемких вычислительных задач с использованием компьютеров, объединенных в вычислительную
систему, особый интерес представляют добровольные вычисления (volunteer computing). Это распределенные вычисления с использованием добровольно предоставленных вычислительных ресурсов.
Существует несколько платформ для организации распределенных вычислений: Globus [1],
HTCondor [2], Legion, но самой распространенной на текущий момент является BOINC [3, 4].
Программное обеспечение BOINC (Berkeley Open Infrastructure for Network Computing) –
это открытое некоммерческое программное обеспечение для организации распределенных вычислений на персональных компьютерах. BOINC имеет клиент-серверную архитектуру и состоит из клиентской части и серверной. Является универсальной платформой для вычислений в
различных областях (математика, молекулярная биология, медицина, астрофизика, телекоммуникации и др.). Клиентская часть может устанавливаться на все распространенные операционные системы: Windows, Linux, Mac OS, FreeBSD и др.
Серверная часть предназначена для управления проектом распределенных вычислений.
Проекты распределенных вычислений на базе платформы BOINC делятся на 2 типа: публичные проекты с участием добровольцев [5, 6] и закрытые (внутренние) проекты с использованием имеющихся у организации вычислительных средств [7, 8].
На базе платформы BOINC развернуто около 100 проектов добровольных распределенных
вычислений, к которым подключены около 16 миллионов компьютеров по всему миру [4].
Большинство проектов добровольных распределенных вычислений – научные проекты ведущих мировых университетов и научных организаций. Суммарная вычислительная мощность
компьютеров добровольцев превосходит вычислительную мощность современных суперкомпьютеров и составляет порядка 150 petaFLOPS.
Большинство проектов имеет задачу, которая может разбиваться на множество независимых подзадач. При таком разбиении алгоритм вычисления для каждой подзадачи одинаков,
меняется только набор входных данных. Такой тип задач называется «bag of tasks» [9], или задача с разделением по данным. Каждая подзадача может быть посчитана независимо от других,
а завершение расчета численного эксперимента происходит при выполнении всего множества
подзадач.
Распределенные системы из персональных компьютеров (ГСПК) или desktopgrid[11], в англоязычной литературе, имеют ряд ограничений, которые необходимо учитывать при организации численных экспериментов:
• Гетерогенность узлов распределенной системы, и как следствие разная скорость
расчета;
• Автономность расчетов на различных узлах, и, как следствие, невозможность постоянной координации расчетов между узлами;
• Ненадежность связей и возможное отключение вычислительных узлов
• Непостоянное время непрерывной работы узла и трудность расчета длительных заданий;
• Наличие ошибок и задержек при расчетах;
• Необходимость разработки вычислительных приложений для популярных типов
вычислительных узлов;
• Необходимость взаимодействия с сообществом добровольцев.
2. Опыт работы с платформой BOINC
Центр распределенных вычислений Института проблем передачи информации Российской
академии наук (ЦРВ ИППИ РАН) является координатором по развитию ГСПК в России и является организатором российского отделения Международной федерации грид-систем из персональных компьютеров (Russian chapter of International Desktop Grid Federation).
В течение нескольких лет при участии ЦРВ ИППИ РАН были запущены проекты добровольных распределенных вычислений:
• SAT@home – решение задач с помощью SAT-подхода;
• Optima@home – решение задач конечномерной оптимизации;
• NetMax@home – математическое моделирование телекоммуникационных сетей;
• Acoustics@home – решение задач акустического исследования морского дна.
Налажено взаимодействие с российским сообществом добровольцев. Проведены два социологических исследования по определению мотивации добровольцев[10] и по составлению рейтингов проектов добровольных распределенных вычислений.
Осуществляется постоянное взаимодействие с другими научными организациями, использующими добровольные распределенные вычисления[13], в том числе при обучении студентов и аспирантов: ФИЦ ИУ РАН(г.Москва), ИДСТУ СО РАН (г.Иркутск), ПетрГУ(г.Петрозаводск),
ИПМИ КарНЦ РАН (г. Петрозаводск), ЮЗГУ(г.Курск), ТОИ ДВО РАН (г .Владивосток), МИСиС (г.Москва), НРЦ Курчатовский институт (г. Москва).
С 2016 года под руководством автора студентами, в рамках научно-исследовательской работы, были выполнены следующие :
• Реализовано вычислительное приложение BOINC-проекта для расчета на
видеокарте;
• Реализованы вычислительные приложения BOINC-проекта для расчета на центральном процессоре;
• Проведена доработка подсистемы обеспечения целостности данных при проведении вычислений на ГСПК;
• Проведены исследования по повышению отказоустойчивости серверной части
BOINC;
• Подобран состав программного обеспечения для разворачивания BOINC-проектов,
в том числе зонтичных;
• Разработана методика тонкой настройки параметров BOINC-проектов.
3. Описание BOINC-проекта
3.1 Серверная часть проекта
На рис.1 показана принципиальная схема взаимодействия пользователей ГСПК на платформе BOINC с серверной частью проекта добровольных распределенных вычислений.
Серверная часть BOINC-проекта состоит из нескольких сервисов(daemons), осуществляющими отправку заданий и получения/проверки результатов, веб-сервера, СУБД, а также базы
данных входных данных и результатов. Платформа BOINC предоставляет множество настроек
для повышения надежности получаемых результатов в проекте, в том числе параметры репликации и распределения подзадач на вычислительные узлы ГСПК.
Серверная часть BOINC-проекта разворачивается на операционной системе Linux c использованием веб-сервера Apache и СУБД MySQL. Для повышения надежности функционирования серверной части BOINC-проекта имеет смысл разворачивать серверную часть на виртуальной машине в облаке. В этом случае можно выделить соразмерные ресурсы для функционирования серверной части проекта.
Для BOINC-проекта, развернутого на облачной платформе xen 7.0, на операционной системе Debian Jessie 8.7.1, характерны следующие параметры выделяемых ресурсов:
• 2 виртуальных ядра;
• 4 ГБ оперативной памяти;
• 100 ГБ диска, которые могут быть разделены
40ГБ – / (основной раздел);
o 20ГБ – /var/log;
o 40 ГБ – /boinc-data (входные/выходные данные).
3.2 Мотивация добровольцев
Участие в проектах добровольных вычислений не приносит добровольцам или кранчерам(cruncher), предоставляющим свои вычислительные мощности, никакой выгоды и зачастую требует определенных затрат на покупку необходимого оборудования, оплату электроэнергии.
Основными движущими факторами, мотивирующими добровольцев участвовать в проектах
добровольных вычислений, являются [10]:
• Осознание своей причастности к научным открытиям;
• Помощь науке;
• Спортивный интерес.
Для поддержания спортивного интереса среди кранчеров, в BOINC была введена система
баллов, начисляющая определенное количество очков, в зависимости от объемов выполненных
вычислений. Системы начисления баллов в BOINC могут варьироваться в зависимости от проекта и учитывать его особенности, что позволяет разрабатывать наиболее подходящие и объективные механизмы начисления баллов.
Некоторые проекты подразумевают начисление различных виртуальных призов за вклад
пользователей в вычислительные мощности проекта. Данные призы имеют вид специальных
изображений (badges), отображающихся на веб-странице проекта напротив имени пользователя. Они символизируют различные достижения в области вычислений, например суммарный
объем проведенных вычислений, средний дневной показатель, время участия в проекте.
Кроме перечисленных способов повышения интереса добровольцев к проекту, существуют
необходимые условия работы проекта добровольных распределенных вычислений:
• публикация новой информации на сайте проекта;
• поддержка наличия большого количества заданий, готовых к отправке;
• обеспечение обратной связи с администрацией проекта;
• наличие контрольных точек при выполнении заданий на вычислительных узлах.
Выполнение этих условий позволит удержать в проекте уже заинтересовавшихся кранчеров.
3.3 Разворачивание проекта.
Не смотря на кажущуюся простоту разворачивания нового проекта, необходимо выполнить
достаточно большое количество работ. Далее приводится примерный список работ с разделением на 4 раздела.
1. Технические затраты
1.1. Создание вычислительного приложения с сохранением промежуточных результатов
1.2. Создание генератора входных заданий
1.3. Создание валидатора и агрегатора результатов
1.4. Тонкая настройка параметров серверной части BOINC-проекта
2. Организационные затраты
2.1. Регистрация домена
2.2. Информационный сайт проекта
2.3. Общее описание научной и административной группы проекта
2.4. Организация соревнований в проекте
3. Взаимодействие с кранчерами (привлечение новых ресурсов и удержание имеющихся)
3.1. Научно-популярное описание научной составляющей проекта
3.2. Регулярное научно-популярное описание проводимых численных экспериментов
3.3. Регулярная публикация на сайте проекта полученных результатов
3.4. Взаимодействие с сообществом кранчеров
3.5. Ведение блога проекта и публикация ссылок на научные статьи
4. Дополнительные затраты
4.1. Разработка и внедрение системы начисления баллов
4.2. Разработка настройка системы выдачи виртуальных призов
4.3. Дизайн сайта и информационного сайта проекта
4.4. Персонализация полученных промежуточных результатов, когда доброволец
может узнать, что именно он считает в данный момент. Дополнительно возможна визуализация
результатов.
Очень часто возникают ситуации, когда научная группа успешно разворачивает BOINCпроект, но выполняет только техническую часть из приведенного выше списка работ. При этом
поддержке проекта внимание не уделяется или занижается ее значимость. В результате после
активного старта приходит этап застоя, когда в проекте, в том числе на сайте проекта, ничего
не меняется, текущие ошибки не исправляются, новые результаты не публикуются. Это приводит к закономерной потере интереса к проекту, оттоку добровольцев и как результат существенному уменьшению вычислительной способности проекта.
Далее приводятся частые ошибки при разворачивании и поддержке проектов добровольных распределенных вычислений:
• Отсутствие контрольных точек (checkpoints) в расчетном приложении
• Отсутствие обратной связи с администрацией проекта
• Отсутствие научно-популярного описания численного эксперимента на сайте проекта
• Длительное отсутствие новых заданий и простой проекта
• зависание компьютеров добровольцев при работе вычислительного приложения
• Возникновение ошибок при расчетах у большей части
• Длительное время расчета заданий (более 1 суток)
• Отсутствие оценки времени работы каждой подзадачи.
Составление списка работ и оценка затрат при разворачивании и сопровождении проекта
добровольных распределенных вычислений – залог его успешного функционирования и увеличения вычислительной мощности.
4. Зонтичный проект.
Под зонтичным проектом подразумевается проект, в котором есть несколько независимых
вычислительных приложений. В клиентской части BOINC есть функционал, который позволяет
пользователю выбирать расчетные приложения для запуска как показано на рис.2. В качестве
примера зонтичного проекта можно привести World Community Grid, который сопровождается
компанией IBM и сопровождает эксперименты медицинской тематики.[12]
Использование зонтичного проекта добровольных распределенных вычислений позволяет
существенно уменьшить затраты на организацию и сопровождению проекта. Фактически необходимо только доработать вычислительное приложение и составить небольшое описание проводимого эксперимента. В соответствии со списком работ необходимо реализовать только техническую часть (п.1) и научно-популярное описание проводимого эксперимента (п.3.2).
Остальные работы выполняются организаторами зонтичного проекта, так как они имеют больший опыт по сопровождению проектов добровольных распределенных вычислений.
Появляется возможность проводить численные эксперименты различной длительности:
длинные(более 6 месяцев), средние (1-6 месяцев) и короткие(менее 1 месяца). А также эксперименты различных научных групп. Потребности нескольких научных групп в вычислительном ресурсе будут превышать потребности одной научной группы. Как следствие, зонтичный проект будет постоянно содержать подзадачи для вычисления в интересах одного или нескольких экспериментов. При этом вычислительные приложения могут использовать разные ресурсы для расчета (CPU, GPU, Intel Xeon Phi).
Аудитория уже функционирующего зонтичного проекта будет в разы больше аудитории
отдельного проекта распределенных вычислений даже после начального этапа, когда количество добровольцев в проекте невелико.
Использование зонтичного проекта позволяет проводить небольшие эксперименты с минимальными затратами на существующем проекте с большой вычислительной мощностью.
5. Использование BOINC-проекта в образовательном процессе
Изучение проектов добровольных распределенных вычислений целесообразно проводить в
рамках специальных курсов технических специальностей в ВУЗах. Предлагается изучать не
только теоретические принципы организации вычислений в ГСПК, но и реализовать работающее вычислительное приложение в рамках зонтичного проекта добровольных распределенных
вычислений на платформе BOINC.
Серверная часть зонтичного проекта разворачивается преподавателем до начала работы
студентов. Добавление вычислительных ресурсов осуществляется как преподавателем, так и
студентами или третьими лицами.
В рамках разработки вычислительного приложения для BOINC-проекта студентом должны
быть реализованы следующие этапы:
1. Создание автономного вычислительного приложения;
2. Адаптация приложения для работы в ГСПК на платформе BOINC;
3. Автоматизация генерации входных данных;
4. Обработка и агрегирование результатов;
5. Проверка корректности результатов и обработка ошибок;
6. Проведение численного эксперимента на ГСПК.
Использование ГСПК и платформы BOINC позволяет гибко привлекать вычислительные
мощности. Добавление персонального компьютера или ноутбука в ГСПК может быть осуществлено любым пользователем, для этого необходимо установить клиент BOINC и подключить вычислительный узел к соответствующему проекту. Удаление узла тоже не составляет труда и может быть выполнено несколькими способами: удаление клиента BOINC, прекращение участия в проекте, приостановка работы проекта.
Использование зонтичного проекта позволяет создать для группы студентов одну ГСПК из
нескольких десятков вычислительных узлов, а не 10-20 ГСПК с одним или несколькими вычислительными узлами в каждой грид-системе. Осуществление работы студентами в одной
ГСПК позволяет единым образом оценивать различные аспекты выполнения работы, так как
создать равные начальные условия.
Использование достаточного количества различных вычислительных узлов позволяет приблизить работу создаваемой учебной ГСПК к реальной грид-системе. Кроме того, преподаватель может управлять «своими» ресурсами и применять на них сценарии возникновения нештатных ситуаций. Это позволит оценить устойчивость приложений и их эффективность при
возникновении ошибок и задержки вычислений.
Использование зонтичного проекта дает возможность проводить вычисления одновременно несколькими вычислительными приложениями, по одному приложению на каждого студента. Ошибки, отладочный режим и некорректная работа одного вычислительного приложения не
будут влиять на работу других приложений. Студенты смогут выполнять задания и получать
результаты асинхронно.
Предлагается оценивать работу студентов по нескольким критериям:
• Теоретические знания;
• Разработка вычислительного приложения;
• Адаптация приложения для ГСПК;
• Эффективность использования ресурсов ГСПК;
• Автоматизация генерации входных данных и обработки результатов работы;
• Анализ результатов и устойчивость к ошибкам.
6. Выводы
Использование зонтичного проекта добровольных распределенных вычислений на платформе BOINC позволяет студенту изучить различные аспекты функционирования ГСПК, особенности разработки приложений для грид-систем и получить опыт проведения вычислительного эксперимента на реальной распределенной системе.
Использование платформы BOINC и зонтичного проекта позволяет существенно сократить
аппаратные требования для разворачивания серверной части проекта распределенных вычислений. Результаты работы студентов могут быть оценены по нескольким критериям, а использование одного зонтичного проекта позволяет преподавателю облегчить получения результатов работы для каждого студента.
Использование зонтичного проекта распределенных вычислений также возможно при дистанционном обучении.
Литература
1. I Foster, C Kesselman “Globus: A metacomputing infrastructure toolkit”, International Journal
of High Performance Computing Applications 11 (2), 1997, pp.115-128.
2. M.J. Litzkow, M. Livny, M.W. Mutka “Condor-a hunter of idle workstations”, Distributed
Computing Systems, IEEE,1988.
3. D.P. Anderson “BOINC: a system for public-resource computing and storage”, Grid Computing, IEEE, 2004.
4. The server of statistics of voluntary distributed computing projects on the BOINC platform.
http://boincstats.com.
5. Vatutin E.I., Titov V.S. Voluntary distributed computing for solving discrete combinatorial
optimization problems using Gerasim@home project // Distributed computing and grid-technologies
in science and education: book of abstracts of the 6th international conference. Dubna: JINR, 2014.
6. Francesco Asnicar, Nadir Sella, Luca Masera, Paolo Morettin, Thomas Tolio, Stanislau Semeniuta, Claudio Moser, Enrico Blanzieri, Valter Cavecchia "TN-Grid and gene@home Project: Volunteer Computing for Bioinformatics"// CEUR Workshop Proceedings. Proceedings of the Second
International Conference BOINC-based High Performance Computing: Fundamental Research and
Development (BOINC:FAST 2015). Vol. 1502. Technical University of Aachen, Germany, 2015. pp.
1-15
7. Chernov I., Nikitina N. Virtual screening in a desktop grid: Replication and the optimal quorum // 13th International Conference, PaCT 2015. Petrozavodsk, Russia, August 31 – September, 2015.
Proceedings. — Lecture Notes in Computer Science. Parallel Computing Technologies. — Switzerland : Springer International Publishing, 2015. — P. 258–267.
8. Ivashko E., Golovin A. Partition Algorithm for Association Rules Mining in BOINC-based
Enterprise Desktop Grid. Lecture Notes in Computer Science. Parallel Computing Technologies 13th
International Conference, 2015, 268–272, Springer.
9. Benoit, et al., ,Scheduling Concurrent Bag-of-Tasks Applications on Heterogeneous Platforms,&rdquo, IEEE Trans. Computers, vol. 59, no. 2, pp. 202-217, Feb. 2010.
10. Yakimets V.N., Kurochkin I.I. The voluntary distributed calculations in Russia: the sociological analysis//In the collection: INFORMATION SOCIETY: EDUCATION, SCIENCE, CULTURE
AND TECHNOLOGIES of the FUTURE Works XVIII of the joint conference "Internet and Modern
Society" (IMS-2015). ITMO university, St. Petersburg, 2015. P. 345-352.