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.

Нужно понимать несколько основных моментов:

  1. boinc_client при запуске из инит-скрипта работает в chroot-окружении (/var/lib/boinc) от имени непривелигированого пользователя boinc.
  2. boinc_client запущеный просто из консоли без дополнительных параметров запускается от имени запустившего пользователя и по-умолчания работает в текущей папке. Поэтому для манипуляций с boinc_client перейдите сначала в папку /var/lib/boinc , иначе будут созданы файлы в текущей папке.
  3. boinc_cmd связывается с boinc_client в том случае, если в домашнем каталоге пользователя смог прочитать правильный пароль из файла gui_rpc_auth.cfg (который по дефолту лежит в /var/lib/boinc)
  4. 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. Из этого вытекает два момента:

  1. boinc_gui должен запускаться из каталога /var/lib/boinc (либо, вероятно, с какими-то параметрами из консоли, но я не разбирал эту тему, если есть что сказать, дополните, пожалуйста, эту статью)
  2. процесс 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 Тогда все работает.

[править] Удаленное управление

Для удаленного управления нужно:

  1. чтобы удаленный клиент принимал входящие tcp соединения на порт 31416 (не забывайте про фаерволл!)
  2. чтобы мы знали ключ авторизации. Он лежит в /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)

Источник — «http://ru.gentoo-wiki.com/BOINC»
Личные инструменты