Oct 31, 2016
|
BOINC - платформа, которая позволяет выполнять добровольные вычисления для различных проектов. Изначально создавался для проекта SETI@home.
Примечание
Идея заключается в том, что можно задействовать часть ресурсов своей машины для распределенных вычислений некого проекта, например SETI@home обрабатывает сигналы с радиотелескопа (Аресибо) в поисках внеземной цивилизации, Rosetta@home вычисляет структуру белков и таких проектов огромное множество в самых разных областях. Обычно домашний/рабочий компьютер не загружен на 100% и какую то часть, к примеру 20% одного ядра можно спокойно отвести на эту задачу.
Примечание
Что-бы не захламлять систему я ставлю boinc в виде Docker контейнеров. Вначале установим клиента-демона, который умеет принимать внешние команды:
Примечание
При помощи флагов Docker можно ограничить контейнер на использование только
одного ядра на 50% загрузки --cpu-period=50000
, --cpu-quota=25000
,
--cpuset-cpus="0,1"
. По умолчанию Boinc забирает все ресурсы.
$ docker run \
--name boinc \
-d \
--cpu-period=50000 \
--cpu-quota=25000 \
--cpuset-cpus="0,1" \
laurentmalvert/docker-boinc --allow_remote_gui_rpc
После этого можно останавливать/запускать Boinc, как обычный Docker контейнер по его имени:
$ docker stop boinc
$ docker start boinc
Теперь нужно подключиться к проекту указав свой ключ, в моем случае это
13e79a77503e10517358c18698717413
:
$ docker run --rm --link boinc:boinc laurentmalvert/docker-boinccmd \
--host boinc \
--project_attach http://setiathome.berkeley.edu/ \
13e79a77503e10517358c18698717413
Что бы получить ключ, нужно сначала зарегистрироваться на сайте проекта http://setiathome.berkeley.edu, а затем выполнить команду:
$ docker run --rm --link boinc:boinc laurentmalvert/docker-boinccmd \
--host boinc --lookup_account http://setiathome.berkeley.edu \
<email-address> <password>
Отключиться от проекта можно командой detach
:
$ docker run --rm --link boinc:boinc laurentmalvert/docker-boinccmd \
--host boinc --project http://setiathome.berkeley.edu/ detach
Посмотреть статус вашего профиля:
$ docker run --rm --link boinc:boinc laurentmalvert/docker-boinccmd \
--host boinc \
--get_project_status