«Методика разработки приложений параллельных вычислений на основе сети BOINC»
Студент
|
Паньковский Богдан Евгеньевич
|
Оглавление
Оглавление 2
Введение 4
Постановка Задачи 7
Техническое задание. 7
Обзор предметной области. 7
Архитектура системы BOINC 7
Globus Toolkit 9
1. Web-сервер 9
1.1. База данных 10
1.2. Служба обработки состояния подзадач (Trаnsitioner) 11
1.3. Служба проверки результатов (Vаlidаtor) 11
Grid, Грид 11
1.4. Служба освоения (Аssimilаtor) 12
1.5. Служба удаления файлов (File deleter) 13
1.6. Служба подачи (Feeder) 13
1.7. Планировщик (Scheduler) 13
1.8. Мост (Bridge) 14
1.9. Приложения BOINC 15
Жизненный цикл задания из проекта. 16
Используемое оборудование. 18
Подготовительные шаги для развертывания BOINC сервера. 18
Аппаратные конфигурации. 18
Программное обеспечение. 19
Виртуализация. 20
Виртуализация и BOINC. 20
Преимущества виртуализации. 20
Установка сервера BOINC на Unix 21
Группы и права доступа 21
Некоторые правки MySQL 23
MySQLclient замечания 24
Apache замечания 24
Настройки PHP 25
PHPMailer 26
Возможные проблемы 27
Инструкция установки дополнительных пакетов для сервера Debian 6.0. 28
Необходимое ПО для установки 28
Создание новой учетной записи пользователя BOINC 31
Конфигурация MySQL сервер 31
2.Установка сервера 32
Скачивание исходного кода BOINC 32
Компиляция исходного кода проекта BOINC 32
Виртуальная машина BOINC-сервер 33
Сетевой доступ. 35
Создание тестового проекта 39
3.1. Создание инфраструктуры проекта 39
3.2. Web-страница проекта 41
3.3. Периодический запуск фоновых процессов 42
3.4. Известные платформы и имя приложения 43
3.5. Создание собственного приложения 46
Инициализация 46
Завершение 47
Конвертирование имен файлов 47
Оболочка входных/выходных данных 48
Контрольные точки 48
Критические секции 49
Вывод прогресса 49
Временная информация 49
Автономный режим 49
Замечания по сборке приложений 50
3.6. Исполняемые файлы распределенного приложения 50
3.7. Создание рабочих единиц проекта 51
Шаблоны входных и выходных данных 52
Шаблоны входных данных 52
Шаблоны вывода 55
3.8. Запуск фоновых процессов 59
4 Программа-клиент BOINC 60
4.1. Установка программы-клиента BOINC 60
4.2. Подключение к стороннему проекту 62
4.4. Подключение к проекту к созданному 64
Заключение 67
Список литературы: 68
Введение
В исследованиях в математики, физики и многих других науках, требуется обработка информации или вычисление расчетных операций. С этой целью создавались системы, способные сократить время обработки в десятки раз.
В 1990-х годах возникла идея GRID, когда с развитием компьютерной техники и коммуникаций соединение между собой географически удаленных компьютеров стало выгоднее, удобнее и более мощным средством повышения вычислительных мощностей, чем наращивание производительности одного суперкомпьютера.
GRID – это объединение нескольких компьютеров для решения единой вычислительно сложной задачи, разбитой на подзадачи. Каждый компьютер при этом решает несколько подзадач, а результаты решения объединяются. Основное преимущество GRID в том, что система может состоять из удаленных друг-от-друга на тысячи километров и совершенно различные по характеристикам компьютеры.
Одной из форм реализаций GRID, является Volunteer Computing (Добровольные вычисления), её специфика заключается в использовании времени простоя компьютеров обычных пользователей.
На 2015 год, самый крупный проект Volunteer Computing по числу участников, является Einstein@home.
Einstein@home нацелен на поиск гравитационных волн от очень плотных и быстро вращающихся тел - таких как нейтронные или кварковые звёзды. В проекте участвуют 5,375,352 активных узлов, суммарная мощность системы составляет 680.339 TeraFLOPS.
В тоже время, самая высокая производительность у другого проекта, Folding@home запущенный учеными из Стэндфордского университета для симуляции свертывания молекул белка, мощность системы составляет 48,524 TeraFLOPS, в то время как активных узлов всего 170,755.
Различия этих проектов не только в цели, количестве участников и суммарной мощности, а так же в использованном ПО.
Folding@home – использует узкоспециализированное ПО, разработанное специально для задачи проекта, и дальнейшее использование в других проектах является затруднительным.
Einstein@home - построен в системе BOINC, которая предоставляет возможность создания на своей основе разнообразных научных проектов, начиная с поиска наибольшего простого числа заканчивая поиском внеземных цивилизаций.
BOINC (Berkeley Open Infrastructure for Network Computing) – это открытая программная платформа университета Беркли, для реализации GRID сетей. Причиной создания стала нехватка свободных вычислительных мощностей для обработки данных, поступающих с радиотелескопов. И в связи с этим, разработчики решили объединить несколько проектов и сообществ, для решения масштабной задачи.
Архитектура системы BOINC клиент-сервер, состоит из программы-клиента и составного сервера BOINC. что подразумевает возможность использования нескольких компьютеров в качестве сервера.
В качестве бонуса, система “вознаграждает” пользователя за выполнение определенных подзадач “зарабатывая кредиты”. Кредиты не представляют никакой финансовой ценности, а нужны лишь для поощрения и создания соревновательного духа, так как подсчитываются рейтинги по наибольшему количеству кредитов и выставляются на главной странице проекта.
Составной сервер, раздает задания и собирает результаты, в то время как множество подключаемых к серверу программ-клиентов выполняют основную вычислительную работу по получению результата.
Все программы-клиенты подключаются к серверу и получают задание на обработку. После выполнения задания, ответ высылается на обработку сервером, после чего получает новое задание. За выполнение задачи зарегистрированным участникам проекта насчитываются кредиты, характеризующие количество процессорных вычислений потраченных на решение задания.
В этой схеме есть ряд недостатков, один из них, если клиент-программа не выйдет на связь с сервером после получения задания. Причиной может стать потеря интереса участника к проекту. Еще более опасная проблема это возможность того что Программа-клиент, по различным причинам, может присылать неверные результаты вычислений.
Первая проблема решается путем постановки сроков отклика программы-клиента.
вторая проблема решается за счет рассылки одного и того же задания нескольким клиент-программам. Для каждой задачи количество дублирующих исполнителей вычисляется отдельно в зависимости от задачи, но количество по умолчанию равно пяти. Когда программа-клиент пересылает результат, сервер сравнивает его с ранее присланными ответами, и конечным результатом считается, тот который совпал наибольшее число раз а остальные ответы отвергаются, так же для задачи вычисляется наименьшее число совпадений ответов, по умолчанию оно равняется трем. Участники, приславшие неверные ответы не получают кредиты.
Таким образом, использование распределенных вычислений ведет к развитию научных исследований. Созданные учеными проекты требуют больших ресурсов для расчетов, платформа BOINC позволяет присоединится к этим проектам всем желающим, для чего требуется скачать и установить программу-клиент.
|