Установка boinc. Подготовительные шаги для развертывания BOINC сервера

Работая в ИТ-подразделении, я постоянно наблюдаю простаивающие по разным организационным причинам компьютеры, которые очень скучают. Золотые времена майнинга биткойнов на CPU прошли, и в поисках нового полезного дела я пришёл к добровольным распределённым вычислениям, в частности, к World Community Grid . Первым делом поиском лекарства от рака были озадачены сервер из холодного резерва и виртуальная машина с низким приоритетом на кластере виртуализации. Сложнее с рабочими станциями, они постоянно приходят и уходят, на каждой устанавливать, настраивать, а потом удалять BOINC долго и нетехнологично.

Решено было собрать live-дистрибутив с вшитым BOINC"ом и раздавать его по сети. Включил компьютер, нажал F12, выбрал нужный пункт - и уже приносишь пользу человечеству!

Платформой был выбран Debian, который а) давно знаком и б) обладает замечательным мануалом на нужную тему. Тем не менее, без граблей не обошлось, а в данном случае почти каждые новые грабли обозначают достаточно длительную пересборку образа. Надеюсь, этот пост сэкономит некоторое количество админского времени, а заодно напомнит о существовании такого замечательного проекта, как WCG.

Заметьте, делалось всё в весьма закрытой среде, и безопасности понадобилось уделить совсем немного внимания. Возможно, в вашем случае над безопасностью нужно будет дополнительно поработать.

Подготовка

Система состоит вот из чего:
  1. Сервер сетевой загрузки.
  2. NFS-сервер
  3. Сборочная станция
У меня 2 и 3 - одна машина.

1. Сервер сетевой загрузки. У меня всё уже было готово, настроенные TFTP и DHCP у меня остались от проекта по тонким клиентам. Если у вас нет, то поднять новый несложно. В двух словах, устанавливаем и запускаем tftpd-hpa, а в DHCP указываем параметры 66 и 67. Только не давайте загружаться по сети кому попало (в моём случае это курсанты), это может быть опасно. Кроме BIOS, запаролить можно часть загрузочного меню TFTP-сервера.

2. NFS-сервер. Во-первых, BOINC должен иметь возможность в процессе работы сохранять свои данные. Предполагается, что локальный жёсткий диск трогать нельзя, поэтому по NFS разрешим писать в директорию, например, /srv/boinc-nfs . Здесь каждый компьютер будет создавать поддиректорию с именем, совпадающим с его MAC-адресом. Во-вторых, в директории /srv/debian-live будет лежать корневая ФС для сетевой загрузки. Итак:
mkdir /srv/debian-live mkdir /srv/boinc-nfs chown nobody:nogroup /srv/boinc-nfs chmod 755 /srv/boinc-nfs
В /etc/exports дописываем:
/srv/boinc-nfs *(rw,sync,no_root_squash,no_subtree_check) /srv/debian-live *(ro,async,no_root_squash,no_subtree_check)
после чего перезапускаем сервис (почему-то рекомендуемый exportfs -rv мне результата не дал):
/etc/init.d/nfs-kernel-server restart
3. Сборочная станция. Это просто виртуальная машина с обычным Debian Wheezy. Установлен пакет live-build , который и будет делать основную работу. Здесь должен быть интернет.

Процесс сборки

Отправляемся на сборочную станцию.
mkdir /srv/live-default && cd /srv/live-default
Создаём базовый конфиг для нашего дистрибутива, указав адрес NFS-сервера:
lb config -b netboot --net-root-path "/srv/debian-live" --net-root-server "192.168.15.20"
Формируется некоторое дерево директорий, располагая в них разный контент можно кастомизировать свою сборку. Мы добавим следующее:
1. config/package-lists/boinc.list - список пакетов, которые понадобятся в нашей сборке. Пишем в него:
boinc-client nfs-common
2. config/includes.chroot/etc/init.d/boinc-preps - init-скрипт, который будет монтировать NFS, настраивать BOINC и менять hostname (возможно , одинаковые хостнеймы мешают WCG идентифицировать компьютер, с ними у меня многие задания переходили в состояние detached). В этот скрипт нужно вставить адрес своего NFS и адреса хостов, с которых будет разрешено беспарольное управление. Содержимое скрипта:
#!/bin/bash ### BEGIN INIT INFO # Provides: boinc-preps # Required-Start: nfs-common # Required-Stop: # Should-Start: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Various stuff for BOINC # Description: Various stuff for BOINC ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/init/vars.sh do_start () { MYMAC=`ifconfig eth0 | grep -o -E "([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}" | sed s/://g` ancien=`hostname` nouveau=DYNWCG-$MYMAC mkdir -p /mnt/boinc-nfs mount 192.168.15.20:/srv/boinc-nfs /mnt/boinc-nfs && mkdir -p /mnt/boinc-nfs/$MYMAC service boinc stop sed -i "s/^BOINC_DIR=.*/BOINC_DIR=\/mnt\/boinc-nfs\/$MYMAC/;s/^BOINC_USER=.*/BOINC_USER=\"root\"/" /etc/default/boinc-client echo "192.168.10.60" > /mnt/boinc-nfs/$MYMAC/remote_hosts.cfg echo "192.168.10.61" >> /mnt/boinc-nfs/$MYMAC/remote_hosts.cfg echo "" >> /mnt/boinc-nfs/$MYMAC/gui_rpc_auth.cfg for file in \ /etc/hostname \ /etc/hosts # сюда можно добавить #/etc/ssh/ssh_host_rsa_key.pub \ #/etc/ssh/ssh_host_dsa_key.pub \ # если нужен SSH do [ -f $file ] && sed -i.old -e "s:$ancien:$nouveau:g" $file done invoke-rc.d hostname.sh start invoke-rc.d networking force-reload service boinc start } case "$1" in start|"") do_start ;; restart|reload|force-reload|status) echo "Error: argument "$1" not supported" >&2 exit 3 ;; stop) # NOP exit 3 ;; *) echo "Usage: ... " >&2 exit 3 ;; esac:
3. config/hooks/boinc-preps-init.chroot - скрипт из одной команды, который выполнится при сборке и добавит boinc-preps из предыдущего пункта в автозагрузку:
#!/bin/sh update-rc.d boinc-preps defaults
После добавления нужных настроек запускаем собственно сборку:
lb build
Ценность для нас представляет получившийся файл binary.netboot.tar . Распакуем его в /srv:
cd /srv && tar -xvf live-default/binary.netboot.tar
Он распакуется в /srv/debian-live (корневая ФС для сетевой загрузки) и /srv/tftpboot (файлы для TFTP-сервера). В моём случае сборочная станция и NFS-сервер - это один компьютер, поэтому /srv/debian-live уже находится на своём месте.
Содержимое tftpboot - готовое загрузочное меню, его нужно разместить на TFTP-сервере. Его работу я не проверял, так как у меня есть работающий TFTP-сервер со своим меню, и отсюда мне понадобилась лишь часть данных. Во-первых, я скопировал все файлы из tftpboot/live/ на TFTP-сервер в images/debian-live/ (относительно корневой директории TFTP-сервера). Во-вторых, из tftpboot/live.cfg я позаимствовал текст, добавляющий новый пункт меню, при этом изменив его до такого состояния (здесь тоже нужно указать адрес своего NFS-сервера):
label live-686-pae menu label BOINC-live (686-pae) linux images/debian-live/vmlinuz1 initrd images/debian-live/initrd1.img append boot=live config nosplash root=/dev/nfs nfsroot=192.168.15.20:/srv/debian-live
Теперь всё лежит на своих местах.

Если после сборки хочется проверить содержимое корневой ФС, то не обязательно загружаться с нею, её можно просто смонтировать как loop-устройство:
mount -o loop,ro /srv/debian-live/live/filesystem.squashfs /mnt/squash/
Если нужно пересобрать дистрибутив с новыми параметрами, то перед этим можно сделать либо lb clean --binary , либо lb clean .

Использование

  1. Включаем компьютер и выбираем загрузку по сети (обычно для этого достаточно нажать F12).
  2. В зависимости от загрузочного меню либо выбираем пункт «BOINC-live», либо просто ждём, пока загрузится по таймауту.
  3. В появившуюся (если всё пошло как надо) командную строку пишем sudo ifconfig (пароль вводить не потребуется) и записываем IP-адрес.
  4. На компьютере управления (одном из тех, что мы указали в config/includes.chroot/etc/init.d/boinc-preps) запускаем boinc-manager, нажимаем «Дополнительно - Сменить компьютер» (эта кнопка есть только в «Полном виде»). При этом BOINC не должен запрашивать никаких паролей у пользователя.
  5. После подключения появится мастер, в котором нужно будет выбрать проект (в моём случае это World Community Grid) и ввести логин/пароль.
Всё, через несколько минут появятся новые задачи в состоянии «Готово к запуску» и «Работает».
Эту процедуру нужно выполнить только один раз для каждого компьютера (точнее, для каждого MAC-адреса). Даже вернувшись к вам после длительной эксплуатации в другом месте, компьютер по MAC-адресу найдёт свои данные на NFS-сервере и продолжит работу сразу после включения (только некоторые задания будут уже просрочены, но это мелочь, получит новые).

Итоги

Что осталось нерешённым:
  • Автологин в WCG. Наверное, можно вшить в образ конфиг проекта, чтобы вообще ничего не вводить руками, но за приемлемое время решение не нагуглилось.
  • Почтовые уведомления. Чтобы не вводить «sudo ifconfig», можно автоматом отсылать админу адрес запустившегося компьютера. Однако, я этого не сделал, потому что костыли, и лучше вместо этого реализовать предыдущий пункт.
  • Два раза указан IP NFS-сервера, возможно, один из них можно убрать.
  • Для создания директории компьютера всегда используется MAC-адрес интерфейса eth0. Хорошо это или нет - я не могу с уверенностью сказать.

  • Не давайте компьютерам скучать! И пишите комментарии, с радостью отвечу или дополню статью.
|

Сохраните и закройте файл, а затем запустите boinc-client, чтобы сервер подключился к SETI@home.

sudo service boinc-client start

4: Проверка нового хоста

5: Проверка состояния сервера

Для просмотра состояния сервера или задач используйте команду:

Эта команда предоставляет общую информацию SETI@home, а также сообщает о текущих задачах, выполняемых на этом конкретном хосте.

Вывод этой команды выглядит примерно так:

boinccmd --get_simple_gui_info
======== Projects ========
1) -----------
name: SETI@home
master URL: http://setiathome.berkeley.edu/
user_name: stmiller
team_name: SETI.USA
resource share: 100.000000
user_total_credit: 33159.675770
user_expavg_credit: 1409.252845
host_total_credit: 0.000000
host_expavg_credit: 0.000000
nrpc_failures: 0
master_fetch_failures: 0
master fetch pending: no
scheduler RPC pending: no
trickle upload pending: no
attached via Account Manager: no
ended: no
suspended via GUI: no
don"t request more work: no
disk usage: 0.000000
last RPC: 1423684749.199424
project files downloaded: 0.000000
GUI URL:
name: Message boards
description: Correspond with other users on the SETI@home message boards
URL: http://setiathome.berkeley.edu/forum_index.php
GUI URL:
name: Help
description: Ask questions and report problems
URL: http://setiathome.berkeley.edu/forum_help_desk.php
GUI URL:
name: Your account
description: View your account information
URL: http://setiathome.berkeley.edu/home.php
GUI URL:
name: Your preferences
description: View and modify your computing preferences
URL: http://setiathome.berkeley.edu/prefs.php?subset=global
GUI URL:
name: Your results
description: View your last week (or more) of computational results and work
URL: http://setiathome.berkeley.edu/results.php?userid=9351194
GUI URL:
name: Your computers
description: View a listing of all the computers on which you are running SETI@Home
URL: http://setiathome.berkeley.edu/hosts_user.php?userid=9351194
GUI URL:
name: Your team
description: View information about your team: SETI.USA
URL: http://setiathome.berkeley.edu/team_display.php?teamid=115396
GUI URL:
name: Donate
description: Donate to SETI@home
URL: http://setiathome.berkeley.edu/sah_donate.php
======== Tasks ========
1) -----------
name: 25fe12ab.24545.17667.438086664204.12.226_0
WU name: 25fe12ab.24545.17667.438086664204.12.226
project URL: http://setiathome.berkeley.edu/
report deadline: Wed Mar 4 02:06:18 2015
ready to report: no
got server ack: no
final CPU time: 0.000000
state: downloaded
scheduler state: scheduled
exit_status: 0
signal: 0
suspended via GUI: no
active_task_state: EXECUTING
app version num: 701
checkpoint CPU time: 352.733700
current CPU time: 378.866400
fraction done: 0.088431
swap size: 110309376.000000
working set size: 40030207.999996
estimated CPU time remaining: 2505.901220

Установка.

Ниже описан процесс установки BOINC-менеджера версии 6.4.1
(UPD: заменены некоторые скриншоты из версии 6.6.28 - там где произошли изменения по сравнению со старой версией).

Запускаем инсталлятор, видим первое окно конфигурации:



Первый путь, program directory - куда устанавливается сам BOINC-менеджер. Оставляем по умолчанию.
Второй путь, data directory - где будут хранится данные проектов: расчетные модули, задания и прочее. Рекомендую поменять путь по умолчанию, дабы всё что касается BOINC находилось в одной папке.

Следующие три галочки оставляем по вкусу, но я убираю первую, "использовать скринсейвер". Что-бы не мешал.

Если при установке пишет Error reading setup initialization file, то читаем
Краткий перевод:
1. запустить инсталлер с параметром /a
2. указать на каком диске находится windows
3. установить как обычно

Все, процесс первоначальной настройки завершен, и после завершения инсталляции программа попросит Вас перезагрузить компьютер.

После перезагрузки Вы увидете примерно такой экран:

Поэтому идем в "Дополнительно" - "настройка программы" и начинаем там хозяйничать.
(advanced - options - general - language selection - это если вдруг у Вас русский автоматом не определился).

Настройки:

Вкладка "Общие"

* Выбор языка интерфейса

* Интервал между попытками менеджера соединиться с сервером проекта. По умолчанию менеджер автоматом раз в 60 минут коннектится к серверу: для отправки уже готовых заданий и для получения новых расчетов. Хотите - меняйте, я оставил по умолчанию.

* Запускать менеджер при загрузке системы? Думаю, логично запускать. Хотя если Вам ненужен значок в трее - то можно и не запускать.

* Включить сообщение при выходе? Если стоит галка, то если Вы захотите выйти из менеджера, будет всплывать такое окно:

В этом окне можно сделать такие настройки:
* "Остановить процесс расчета и выйти из менеджера". Удобный вопрос, который появился только в 6-й версии BOINC-менеджера.
Не ставите галку - только закрывается менеджер, проект работает дальше.
Ставите галку - останавливается проект и закрывается менеджер.

* "Запомнить мой выбор и больше не задавать этот вопрос" - думаю, и так понятно на что влияет вторая галка.

Вкладка "Параметры подключения"



Вкладка "HTTP прокси"



Вкладка "SOCKS прокси"



Выбираем пункт в меню "Дополнительно" - "настройка клиента"

Вкладка "процессор"



* "При питании от аккумуляторов" - актуально для ноутбуков и ПК с настроенным софтом для работы с UPS. Скорее всего убираем, зачем нам на ноуте садить батарею?

* "когда ПК используется для работы" - очень нужная галка, ставим обязательно. Иначе BOINC будет ждать пока вы отойдете от компьютера на "3 минуты" (по умолчанию).

* "Использовать GPU когда компьютер используется для работы" - Использовать для расчетов видеокарту, когда вы работаете? Если да - то видеокарта будет производить вычисления постоянно, если нет- то будет ждать пока вы отойдете от компьютера на "3 минуты" (по умолчанию).

* Ниже следует группа настроек для эстетов: можно настроить расписание, согласно которому BOINC будет производить расчеты.

Еще ниже расположены "другие параметры" .
* "Переключение между проектами каждые 60 минут" . Если вы загрузили для расчетов пачку заданий от разных проектов (например ABC@home и Primegrid), то клиент будет раз в 60 минут менять проекты: час считается ABC@home, потом час считается Primegrid и т.д.

* В многопроцессорных системах использовать 100% процессоров.
Если у вас четырехъядерный процессор - то будет использоваться 4 ядра, если поставите 50% - 2 ядра.

* использовать не более 100% процессора - на сколько процентов BOINC равномерно загрузит доступные ядра.

Т.е. если поставить 100% доступных ядер и 100% процессора - то все 4 ядра нашего квада будут работать на 100%.
А если поставить 50% ядер, 80% загрузка - то в нашем кваде два ядра будут загружены на 80%.


Вкладка"настройка сети"



Общие параметры. Это управление КЭШем.
Выставляем (скорее, нетрогаем:)) скорость загрузки и отправки.
Очень важный момент! Выбираем, на сколько дней загружать задания.
Я, имея постоянное подключение к интернет, ставлю 1 дней основной буфер, 1 день - дополнительный буфер.
Если же у вас интернет есть периодически - то поставьте бОльшее количество дней. Только обратите внимание на конечный срок отправки, что-бы задания не были "просроченными".

Откуда менеджер знает сколько штук заданий нужно загрузить?
В начале работы, и потом с периодичностью в 4-5 дней менеджер запускает бэнчмарк процессора. И на основании полученых результатов решает сколько штук ВЮ (work unit = Ворк Юнит= ВЮ) загружать в КЭШ.

* не проверять загруженные файлы - сам незнаю, найду ответ - обновлю в статье этот пункт.

Параметры подключения.
Эти две галки актуальны для периодических соединений с интернет. Менеджер будет спрашивать Вас перед попыткой соединится с сервером, а так-же сможет сам разрывать соединение после загрузки новых и отправки уже посчитанных заданий.

Доступ в интернет.
Здесь Вы можете настроить расписание, по которому менеджер будет ходить в сеть (если Вам это нужно).

Нужен ли постоянный доступ в интернет?
Нет! Менеджеру доступ в сеть нужен только для отправки/принятия заданий. Так что теоретически компьютер может стоять без интернет пока есть что в КЭШе считать.

Вкладка"Диск и память"





Здесь я не советчик: какие нужно ставить цифры - решать Вам. Я все оставил по умолчанию. Вот только "период сохранения на диск" я бы увеличил с 60 до 300 секунд. Зачем HDD дергать лишний раз?

Все, первоначальная настройка менеджера завершена. Переходим к подключению проекта.

Подключение к проекту

Выбираем "сервис" - "добавить проект".


Далее появляется список проектов. Он неполный, даже наоборот - в нем сосредоточены только самые "ходовые" т.е. самые популярные и вменяемые BOINC-проекты. Если тот проект что Вам нужен есть в списке - гуд, если нету - просто вставляем нужный адрес проекта в нижнее поле и жмем далее.

Как узнать адрес проекта? Он есть в "шапке" темы у нас на форуме. Только помните, что не все проекты о которых мы пишем на форуме относятся к BOINC-проектам.

Сообщение:
Message from server: No work sent
В данный момент сервер не выдает задания. Ничего страшного, есть проекты в которых по полгода нет заданий. Подключитесь пока к другому проекту.

Сообщение:
You used the wrong URL for this project
The correct URL is http://www.cosmologyathome.org/
Это значит что с того момента как Вы подключились к проекту изменился адрес сервера. Теперь нужно переподключится к проекту. Т.е. удалить проект и заново подключится, введя правильный адрес сервера. Все о чем было написано выше относилось к менеджеру проектов, установленному на одну локальную машину. К "локальному менеджеру".
Если у Вас одна машина - то да, вам проще управлять ею. Но если у вас их десять штук, то Вам проще подключить каждую и управлять ими централизовано с помощью "БАМ" - "Боинк аккаунт Менедждера". Подробнее о нем .

Полностью посвящен вопросам BOINC.

Use the idle time on your computer to cure diseases, study global warming, discover pulsars, and do many other types of scientific research. As a "quasi-supercomputing" platform, BOINC has about 570,000 active computers (hosts) worldwide processing on average 2 petaFLOPS as of July 2009, which tops the processing power of the current fastest supercomputer system (IBM Roadrunner, with a sustained processing rate of 1.026 PFLOPS). It"s safe, secure, and easy:

Installing BOINC

You can install BOINC from the Terminal by issuing the following commands.

The instructions below have been tried successfully with Ubuntu 9.04 (Jaunty Jackelope), 8.10 (Intrepid Ibex), and 8.04 (Hardy Heron). They should work also work with Ubuntu 7.10 (Gutsy Gibbon).

sudo apt-get install boinc-client boinc-manager

Note: On my machine, running 9.04, this command also installed libwxbase2.8-0 and libwxgtk2.8-0

After the installation is finished, the daemon is started automatically. You can then start the BOINC Manager from the pull-down menu Applications -> System Tools -> BOINC Manager. The first time you do this you will be prompted to attach to one or more BOINC projects (see Attach to a BOINC Manager).

After the installation is finished the daemon is configured to start up automatically every time the computer is turned on. You can temporarily disable or re-enable this by modifying a setting in the file /etc/default/boinc-client:

# Set this to 1 to enable and to 0 to disable the init script. ENABLED="1"

Attach To A Boinc Project

When you run BOINC Manager for the first time you will be greeted by the Attach to Project dialogue.

Click NEXT button

Note: On some Ubuntu 10.10 systems, notably 64-bit ones, clicking NEXT causes the BOINC Manager script to crash ---it shuts down without even an error message.

The Choose a Project dialog will come up. This has a list of some of the projects you can participate in as well as a Project URL field where you will put the address of the project you want to participate in.

To join a project in the list, click on the project name and the projects URL will appear in the Project URL Field. To join a project not on the list you will need the projects URL. is a more comprehensive list of projects.

After entering the URL click ENTER

Next is the User Information dialog. Before connecting to a project you must register with that project. If you have already registered with the project you selected in the previous dialog select "Yes, existing user". If you have not registered a Username and Password with the project select "No, new user".

If you selected "Yes, existing user", you will be prompted for the Username and Password you have attached to that project. If you selected "No, new user" you will need to enter your Email and a password.

Click the NEXT button.

If everything is successful, you will be presented with the successful project attach screen. Click the FINISH button.

Installing boinc-client on ubuntu server (no GUI)

This procedure has been tested on ubuntu 10.10 server 64 bit, after a long series of failed attempts.

If you are running 64 bit Linux and 64 bit BOINC then you might have a problem with projects that issue 32 bit applications rather than 64 bit applications. To allow 32 bit applications to run on 64 bit Linux you must install 32 bit versions of certain shared libraries (as explained )

sudo apt-get install ia32-libs libstdc++6 freeglut3

Then install main client:

sudo apt-get install boinc-client

Preferably reboot, otherwise restart boinc-client

sudo /etc/init.d/boinc-client restart

Then add your project(s) using

boinccmd --project_attach URL auth

Test if boinc is running with

boinccmd --get_state

More info on boinccmd

Editing BOINC-Client Config File - BOINC 6.2.12 in Ubuntu 8.10

You can make some changes to the BOINC-Client config file. The file that needs to be changed is cc_config.xml which is at /etc/boinc-client/cc_config.xml

First, back up the original cc_config.xml

$ sudo cp /etc/boinc-client/cc_config.xml /etc/boinc-client/cc_config.xml.orig

Then edit the /etc/boinc-client/cc_config.xml file

sudo nano /etc/boinc-client/cc_config.xml

The default BOINC 6.2.12 /etc/boinc-client/cc_config.xml file is below

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Changing the CPU sched and debug settings will provide more information as work is done. The options within the file only have two settings: 0 for "off" and 1 for "on". The whole list of options is now at http://boinc.berkeley.edu/wiki/Client_configuration

1 1

Todo Items (move to talk page, or delete when done)

* update configuration info to Jaunty/6.2.18 and beyond.

  • keep several older versions?

* wanted: discussion of wisdom / possible problems with upgrading direct from Boinc site.

  • ? should we uninstall first ? are there technical/setup issues unique to Ubuntu
    • (other than risk of not-yet-tested-here versions)

Автор: Peter Enseleit
Дата: 31 марта 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 3 апреля 2008

Любой из нас может помочь человечеству в решении глобальных проблем, таких как слежение за болезнями и прогнозирование погоды, просто задействуя свои компьютеры в решении сложных вычислительных задач. Концепция, известная под названием добровольные вычисления, помогает по всему миру университетам и исследовательским институтам, создающим проекты с зачастую гуманитарными целями, такими как прогнозирование и контроль распространения малярии в Африке .

Чтобы принять участие в этом добром деле, нужно скачать и установить клиентское программное обеспечение, которое будет время от времени подгружать новые вычислительные задания для вашего компьютера, который вне всякого сомнения иногда простаивает без дела. После завершения задания, компьютер отсылает результат на центральные компьютеры проекта, где он становится частицей решения одной большой вычислительной задачи. Задействуя компьютеры по всему миру, такие проекты получают гигантскую вычислительную мощь, которая иначе не была бы доступна. Таким образом, решения будут найдены быстрее, и проект быстрее достигнет своих целей. Такая форма распределенных вычислений стала популярной благодаря проектам SETI@home и Folding@home , на данный момент для участия открыто огромное количество проектов. Задачи их разнятся от поиска лекарств от болезней до рендеринга трехмерной анимации. Давайте посмотрим, как можно поучаствовать в таких добровольных проектах, если у вас установлена ОС Linux.

BOINC

Если у вас Ubuntu, то свежеустановленный BOINC-менеджер можно запустить из меню Applications -> Accessories -> BOINC Manager . В отличие от версий BOINC-клиента для Windows и Mac, Linux-версия поставляется без хранителя экрана. Вся работа проделывается молча и ненавязчиво, в фоновом режиме, независимо от вашего хранителя экрана.

Присоединиться к проекту можно прямо из BOINC-менеджера. Выберите пункт меню Advanced View -> Advanced -> Attach to Project . Введите URL-адрес проекта, к которому хотите присоединиться, свой email-адрес и пароль. Если не возникнет проблем, вы присоединитесь к проекту. Произойдет загрузка первого задания от проекта, и ваш BOINC-клиент начнет его обработку.

Настройте, какую долю вычислительных ресурсов вашего компьютера будет использовать BOINC. Это делается в BOINC-менеджере в диалоговом окне Preferences. Можно ограничить количество часов работы клиента, установить какую долю процессорного времени занимать вычислениями, ограничить использование места на диске, оперативной памяти и сетевого трафика.

Чтобы задействовать ресурсы своего компьютера сразу в нескольких проектах, нужно воспользоваться менеджером аккаунтов . На данный момент их два: это BOINC Account Manager и GridRepublic . Менеджер аккаунтов - это веб-сайт, позволяющий настраивать BOINC-клиент, выбирать в каких проектах участвовать и просматривать статистику по работе, выполненной вашими клиентами. Также можно настроить так, чтобы один аккаунт использовался на нескольких компьютерах, причем у каждого будут свои настройки по ограничению на количество используемых ресурсов и время работы.

После установки менеджера аккаунтов нужно настроить локальный BOINC-менеджер на соединение с ним. После установки соединения BOINC-клиент на вашем компьютере заберет настройки, указанные в менеджере аккаунтов и будет работать уже согласно им. Эта схема удобна, когда вы установили BOINC-клиенты как на рабочем, так и на домашнем компьютере - ведь таким образом получается некий центр управления ресурсами.

Я настроил свой BOINC-клиент так, чтобы он начинал работать спустя три минуты бездействия, так что он совсем не будет мешать моей работе с компьютером. Даже после того, как он начинает свою работу, я все еще могу с комфортом пользоваться OpenOffice.org Writer и GIMP, путешествовать по интернету и слушать музыку. Когда нагрузка процессора и потребление памяти достигает определенной границы, BOINC-клиент переходит в спящий режим до тех пор, пока снова не встретится трехминутная пауза.

Folding@home

При первом запуске клиента вам будет предложено изменить конфигурацию. Здесь надо будет ввести свой email, который будет ассоциировать вас с проектом, определить режим работы при использовании батарей (если у вас ноутбук), заполнить список приложений, которые должны блокировать работу клиента, установить приоритет вычислительного процесса, выбрать количество задействованных процессоров и нагрузку сети.

В соответствии с показаниями моего системного монитора, клиент distributed.net полностью использует ресурсы моего процессора. Он нагружает оба ядра моего процессора и не уходит в спящий режим при запуске приложений. Но удивительно, хотя системный монитор и показывает загрузку процессора 95-100%, но заметного ухудшения производительности не наблюдается - я спокойно использую обычные приложения. Однако будем объективными - под такой нагрузкой Baobab (анализатор свободного места на диске) затрачивает больше времени на сканирование моей файловой системы, чем обычно.

Вопросы безопасности

Фактически добровольные вычисления дают внешним приложениям доступ к ресурсам вашего компьютера, поэтому есть смысл задуматься о безопасности. Организаторы проекта Folding@home заверяют своих пользователей в том, что прилагают все усилия для обеспечения безопасности. Среди них есть и 2,048-битная цифровая подпись на все данные, которые поступают и исходят от вашего компьютера. С другой стороны, организаторы distributed.net открыто заявляют, что их клиенты одно время были использованы злоумышленниками для распространения троянских программ . На странице безопасности BOINC упомянуты опасности, которые подстерегают компьютер добровольного участника вычислений. Компания борется с каждой из них, для борьбы против вирусов используется шифрование с открытым ключом. В любом случае, организаторы проекта BOINC заявляют, что "участники должны понимать, что участвуя в проектах BOINC, они подвергают свои компьютеры угрозе". Очевидно, есть смысл самому поискать информацию о проекте, в котором вы хотите поучаствовать, а также о соответствующих клиентах.

Заключение

Можно найти больше информации по добровольным вычислениям на сайте GridCafe . Там же проводятся дискуссии по поводу других форм распределенных вычислений, в том числе и коммерческих.

Все описанные в статье клиенты позволяют участвовать в добровольных вычислениях, имея машину с установленной ОС Linux. Клиент Folding@Home задействует ваш компьютер в благородных целях, а именно в разработке лекарства от болезней, связанных с белками. Среди всех клиентов, описанных здесь, он является наименее конфигурируемым, но на моем компьютере он честно выполняет свою работу и при этом оказывает наименьшее влияние на мою работу. Клиент distributed.net делает упор на решение математических задач. Я указал ему, что требуется задействовать оба ядра, и были задействованы оба, причем на полную мощность. Однако это не помешало мне работать с обычными настольными приложениями. В легкости установки и использования несомненным победителем выходит BOINC-клиент. Его доступность во многих репозиториях пакетов означает, что можно установить его с минимальными затратами времени и сил. Платформа BOINC предоставляет простой пользовательский интерфейс с гибкими настройками, касающимися использования вычислительных ресурсов. Наконец, любой человек может сделать свой выбор из огромного числа проектов, основанных на этой платформе, и начать таким образом содействовать решению мировых научных проблем.