3.8. Запуск фоновых процессов
Далее следует этап запуска проекта, что представляет собой запуск его фоновых процессов:
boincadm@boincserver:~/projects/meapp/> bin/start
Entering ENABLED mode
Starting daemons
Starting daemon: feeder -d 3
Starting daemon: transitioner -d 3
Starting daemon: file_deleter -d 3
Утилита status выводит какие фоновые процессы запущены и какие файлы используются.
boincadm@boincserver:~/projects/myapp> bin/status
BOINC is ENABLED
DAEMON
|
pid
|
status
|
lockfile
|
disabled
|
commandline
|
1
|
40782
|
running
|
locked
|
no
|
-d 3
|
2
|
40810
|
running
|
locked
|
no
|
transitioner -d 3
|
3
|
40787
|
running
|
locked
|
no
|
file_deleter -d 3
|
4
|
44922
|
running
|
locked
|
no
|
my_work_generator -d 3
|
5
|
40792
|
running
|
locked
|
no
|
sample_bitwise_validator -d 3 --app meapp
|
6
|
40795
|
running
|
locked
|
no
|
sample_assimilator -d 3 --app meapp
|
Таблица 2. Выходные сообщения команды status
Данная утилита, полезна в том случае, если возникли какие то проблемы с проектом, если в какой-то из служб неполадки, существуют log-файлы, они находятся в каталоге log, он расположен в oincadm/projects/test/log_debian7.
4 Программа-клиент BOINC
4.1. Установка программы-клиента BOINC
Дистрибутивы программ-клиента хранятся на странице загрузки официального сайта BOINC, так же для unix и мас систем пакеты включены в списки стандартных репозиториев(в случае с unix, это будут boinc-client, boinc-mаnаger и boinc-gui).
Вне зависимости от способа установки программы-клиента, все основные данные по проектам хранятся в \data\projects\.
Для начала нужно запустить графический менеджер программы(см. рисунок 5)
Рисунок 5. Менеджер проектов BOINC
При первом запуске вам будет предложено подключиться к какому-либо проекту, упрощать этот процесс будет специальный помощник (см. рисунок 6).
Рисунок 6. Добавление проекта BOINC
На этом шаге предоставляется выбор проекта, к которому вы можете присоединиться, затем можно пройти регистрацию, чтобы начислялись очки за ваш вклад в проект, так же можно присоединится к одной из команд или же создать свою, таким образом образуется неформальное соревнование по сборке кредитов.
Всю информацию по проекту можно получить на сайте проекта.
4.2. Подключение к стороннему проекту
В качестве стороннего проекта выберем “SETI (Search for Extraterrestrial Intelligence, Поиск ВнеЗемного Разума) - это научное направление, цель которого - обнаружить разумную жизнь вне Земли. На первом этапе, известном как radio SETI (радио SETI), используются радио телескопы для слежения за узкополосными радиосигналами космоса. Естественные источники таких сигналов не известны, поэтому их обнаружение может дать подтверждение о существовании внеземной технологии.”[10]
Программа-клиент BOINC после регистрации в проекте, начнет загрузку данных, необходимых для выполнения заданий. Необходимо учесть что в различных проектах время затраченное на получение кредитов различное, так же объем затраченного дискового пространства так же может отличаться, но в программе-клиент BOINC есть квотирование объема выделенного объема памяти. Главное окно показывает текущий прогресс задания, затраченное время и сколько времени осталось до завершения (см. рисунок 7).
Рисунок 7. Выполнение задания
Помимо упрощенного вида окна программы-клиента BOINC, есть “полный вид” – нажмите на кнопку “полный вид” в вкладке “вид” (см. рисунок 8).
Рисунок 8. “Полный вид” окна программы-клиента BOINC
Данный вид более информативный, можно получить дополнительную информацию о проекте: общую статистику, информацию об использованных компьютером ресурсов и многое другое.
Некоторые настройки специфичны для различных проектов, другие же являются общими и отражаются на работе программы в целом. В полном виде окна программы-клиента менеджера в пункте меню «Дополнительно» – «Настройки клиента», можно изменить множество параметров описанных выше, а так же время и расписание использования компьютера для вычислений. Настройки интуитивно понятны, и не составит труда изменить их так, чтобы клиент работал так как вам необходимо.
4.4. Подключение к проекту к созданному
Отличий от способа подключения описанного выше нет, но на этапе разработки, для отладки работоспособности созданного проекта необходимо сделать несколько проверок.
Сначала подключаемся к проекту, введя адрес вашего проекта: http://*server-IP*/meapp.
Далее, если все шаги были выполнены верно, предлагается зарегистрироваться на проекте, тем самым вы проверяете работоспособность Веб-интерфейса.
После этого вы должны увидеть сообщение об успешном подключении к проекту (рисунок 9).
Рисунок 9. Результат – успешное подключение к проекту
Далее необходимо перейти в “полный вид”, и открыть “просмотр событий”, в этом окне подробно описываются все этапы работы клиента с проектом:
Подключение к серверу.
Соединиться с планировщиком.
Проверить настройки клиента.
Скачать исполняемый файл и входные данные, соответствующий рабочей клиентской платформе.
Сверить контрольные суммы скаченных файлов.
Выполнить вычисления.
Отправить решение на сервер.
Получить новую порцию заданий.
В случае ошибки какого либо этапа будет выведено сообщение начинающееся с “[error]”, что позволит увидеть проблемы с проектом.
Заключение
Для моей работы я использовал, описанный выше, образ виртуального сервера представленный сайтом разработчика, но в связи с тем что образ необходимо было запустить через программу Hyper-V, потребовалось с конвертировать образ в подходящее расширение. После запуска образа и проведения, описанных выше, подготовительных настроек, был был запущен сервер «92.242.57.37». После чего был использован скрипт make-project, чтобы получить шаблон приложения для изменения. Перед тем как приступить непосредственно к решению поставленной проблемы, были проведены ряд настроек для работоспособности тестового приложения, после чего можно было подключится к проекту используя ссылку «92.242.57.37/test» В дальнейшем были использованы исходные коды предоставленные разработчиками в качестве примера приложений для системы BOINC, Поставленная передо мной задача была уже реализована для системы MPI, но первоначальная архитектура данного решения не подходила для системы BOINC, необходимо было адаптировать исходные коды используя шаблон. В связи с этим, мной было принято решение по переводу программы в формат подключаемых библиотек, чтобы, после модификации архитектуры, приложение вызывало входные данные и использовала их в функциях библиотек. После этого необходимо обеспечить функциональность проекта в рамках сервера BOINC, для чего были изменены основные демоны и документы (такие как work_generator, config.xml, шаблоны входных/выходных данных и т.д.) .В конечном итоге приложение работает на сервере и используя стандартный менеджер проектов BOINC, предоставленный на сайте разработчиков, по ссылке «92.242.57.37/test» можно подключится для помощи в вычислениях по поставленной задачи.
Список литературы:
Folding@home team stats // http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats2
Cстатистика проектов BOINC // http://boincstats.com/en/stats/5/project/detail
Debian вики // https://wiki.debian.org/
Официальный российский ресурс распределенных вычислений на платформе BOINC // http://www.boinc.ru
Основной официальный сайт системы BOINC // http://boinc.berkeley.edu
Русскоязычная документация по Ubuntu //http://help.ubuntu.ru
Install a real boinc server on ubuntu (breezy badger) // http://j4cques.blogspot.ru/2005/10/install-real-boinc-server-on-ubuntu.html
Главная страница проекта Einstein@Home // http://einstein.phys.uwm.edu/
The BOINC server virtual machine // https://boinc.berkeley.edu/trac/wiki/VmServer
Главная страница проекта SETI@home // http://setiathome.berkeley.edu/
Submitting jobs locally // http://boinc.berkeley.edu/trac/wiki/JobSubmission
Setting up a BOINC server // http://boinc.berkeley.edu/trac/wiki/ServerIntro
The BOINC application programming interface (API) // http://boinc.berkeley.edu/trac/wiki/BasicApi
|