BOINC
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
Содержание |
[править] Введение
BOINC - Berkeley Open Infrastructure for Networking Computing http://boinc.berkeley.edu/. Существует множество направлений деятельности, в которых требуется вычислительная мощь.. Все знают, что современный компьютер обладает достаточно большими вычислительными мощностями, которые задействуются на 100% крайне редко (при кодировании видео например, или при игре), а большую часть времени процессоры простаивают. Это так же касается и серверов.
BOINC предлагает пользователям установить свободное программное обеспечение с открытым исходным кодом на свои компьютеры, подключиться к интересующим их проектам, и тем самым помочь. Направления деятельности - самые разные. От расшифровки сигналов из космоса и проектирования до прогнозирования климата и поиска лекарств от болезней. Полный список проектов находися на домашней странице проекта http://boinc.berkeley.edu/.
ПО от BOINC доступно и под ОС Linux, и доступно через систему portage.
[править] Установка
Первое что надо сделать, размаскировать boinc:
# echo "sci-misc/boinc ~x86" >> /etc/portage/package.keywords
Если у вас архитектура отличается от x86, скорректируйте необходимым образом
Если хотите чтобы устанавливался графический интерфейс пользователя (gui), убедитесь что установлен USE-флаг "X":
# emerge -av boinc [ebuild N ] sci-misc/boinc-5.8.15 USE="X unicode -server" 3,462 kB
[править] Запуск
Перед первым запуском надо подключиться к проекту. Предварительно вы должны выбрать проект и пройти регистрацию.
# /etc/init.d/boinc attach
Потребуется ввести url проекта и свой ключ. Если по каким-то причинам это сделать не удалось, то пытаемся просто запустить boinc:
ВАЖНО: Предварительно ознакомтесь с требованиями к аппаратной части, прежде чем принять участвие в каком-либо проекте!
ВАЖНО: Требования к оперативной памяти умножайте на количество процессорных ядер в вашей системе. Для каждого ядра будет запущено по одному вычислительному потоку!
| Предупреждение: BOINC скачивает с серверов проектов бинарный код расчетных модулей и исходные данные для расчетов, имейте ввиду, что это потенциальная дыра в безопасности. Используйте на свой страх и риск |
# /etc/init.d/boinc start
Судить о том, заработал ли клиент можно по наличию файлов в каталоге /var/lib/boinc/ или по наличию в топ по загрузке процессора новых процессов с nice = 19
boinc состоит из следующих компонентов:
boinc_client - демон, который непосредственно делает всю работу: связывается с сервером, тянет файлы заданий, обрабатывает их и результаты отдает назад. Работает постоянно. Именно он запускаеся из init-скрипта.
boinc_cmd - консольная утилита для управления работающим boinc_client.
boinc_gui - gui для управления boinc_client.
Нужно понимать несколько основных моментов:
- boinc_client при запуске из инит-скрипта работает в chroot-окружении (/var/lib/boinc) от имени непривелигированого пользователя boinc.
- boinc_client запущеный просто из консоли без дополнительных параметров запускается от имени запустившего пользователя и по-умолчания работает в текущей папке. Поэтому для манипуляций с boinc_client перейдите сначала в папку /var/lib/boinc , иначе будут созданы файлы в текущей папке.
- boinc_cmd связывается с boinc_client в том случае, если в домашнем каталоге пользователя смог прочитать правильный пароль из файла gui_rpc_auth.cfg (который по дефолту лежит в /var/lib/boinc)
- boinc_gui соединяется с boinc_client в том случае, если смог прочитать конфигурационные файлы (которые находятся в /var/lib/boinc)
При первом запуске boinc_client из init-скрипта в каталоге /var/lib/boinc/ создаются файлы конфигурации:
/var/lib/boinc $ ls -al drwxr-xr-x 2 boinc root 208 Окт 10 13:26 . drwxr-xr-x 30 root root 760 Окт 10 12:48 .. -rw-r--r-- 1 root root 238107 Окт 10 12:48 ca-bundle.crt -rw-r--r-- 1 boinc boinc 2050 Окт 10 13:26 client_state_prev.xml -rw-r--r-- 1 boinc boinc 2050 Окт 10 13:26 client_state.xml -rw------- 1 boinc boinc 32 Окт 10 13:26 gui_rpc_auth.cfg -rw-r--r-- 1 boinc boinc 0 Окт 10 13:26 lockfile
Чтобы GUI-клиент смог соединиться с boinc_client, он должен прочитать ключ доступа из файлика gui_rpc_auth.cfg. Из этого вытекает два момента:
- boinc_gui должен запускаться из каталога /var/lib/boinc (либо, вероятно, с какими-то параметрами из консоли, но я не разбирал эту тему, если есть что сказать, дополните, пожалуйста, эту статью)
- процесс boinc_gui должен иметь доступ на чтение для файла /var/lib/boinc/gui_rpc_auth.cfg
Чтобы удовлетворить первому условию:
| Файл: /usr/bin/boincgui.sh |
#!/bin/bash
source /etc/conf.d/boinc
cd ${RUNTIMEDIR}
/usr/bin/boinc_gui
|
По сути - читает конфигурация из /etc/conf.d/boinc, переходит в каталог, определенный как RUNTIMEDIR и запускает гуи-клиент.
Чтобы удовлетворить второму условию:
# chown :users /var/lib/boinc/gui_rpc_auth.cfg # chmod g+r /var/lib/boinc/gui_rpc_auth.cfg
Вы должны быть в группе users, либо меняйте группу на ту, членом которой Вы являетесь.
В меню вашего DE заменить (или добавить) ланчеры на файл /usr/bin/boincgui.sh Тогда все работает.
[править] Удаленное управление
Для удаленного управления нужно:
- чтобы удаленный клиент принимал входящие tcp соединения на порт 31416 (не забывайте про фаерволл!)
- чтобы мы знали ключ авторизации. Он лежит в /var/lib/boinc/gui_rpc_auth.cfg
| Файл: /etc/conf.d/boinc |
ALLOW_REMOTE_RPC="yes" |
В GUI-клиенте выбрать подключиться к удаленной машине, указать ее адрес и в качестве ключа доступа указать ключ из /var/lib/boinc/gui_rpc_auth.cfg.
Консольным клиентом boinc_cmd также можно управлять удаленным boinc-сервером, для этого задать соответствующие параметры:
boinc_cmd [--host hostname] [--passwd passwd]
По умолчанию hostname=127.0.0.1, passwd значению файла gui_rpc_auth.cfg, находящегося в домашнем каталоге пользователя (или, вероятно, в одном из каталогов $PATH)
boinc_cmd --help
Выдаст понятный список команд для управления boinc_client из консоли.
--Azure 11:22, 11 октября 2007 (UTC)
