Краткая настройка BOINC Manager. Добровольные вычисления на вашей Linux-машине Виртуальная машина BOINC-сервер

|

Сохраните и закройте файл, а затем запустите 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.

Работая в ИТ-подразделении, я постоянно наблюдаю простаивающие по разным организационным причинам компьютеры, которые очень скучают. Золотые времена майнинга биткойнов на 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, которую разработали около десяти лет назад в Калифорнийском университете в Беркли. Первый шаг к участию в одном из них – установка программы BOINC Manager.

Установка и настройка клиента BOINC

После скачивания и установки клиентской программы можно указать один или несколько проектов, к которым есть желание присоединиться. Начиная с шестой версии клиент BOINC поддерживает гибкие настройки вычислений, позволяющие точно указать, какой частью аппаратных ресурсов человек готов пожертвовать для нужд науки. Кроме того, можно задать в BOINC Manager автоматическую пазу при запуске некоторых программ или вести вычисления лишь в определённые часы. Расчёты можно в любой момент полностью или выборочно приостановить вручную и так же легко возобновить.

Настройки вычислений на центральном и графическом процессоре в клиенте BOINC

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

Настройки проекта BOINC через веб-интерфейс

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

Встроенный тест производительности клиента BOINC

Выбор проектов с учётом доступных ресурсов

При выполнении научных расчётов важную роль играет производительность блоков FPU, осуществляющих вычисления с плавающей запятой. Точность вычислений может быть разная. Обычно говорят о трёх реализованных на практике типах:

  • FP16 (Half Precision) - половинная точность вычислений с плавающей запятой;
  • FP32 (Single Precision) - одинарная точность вычислений с плавающей запятой;
  • FP64 (Double Precision) - двойная точность вычислений с плавающей запятой.

Именно последний тип вычислений (FP64, или binary64 по стандарту IEEE 754) наиболее востребован в расчётах BOINC и других научных программах, поскольку он позволяет оперировать значениями в диапазоне от ≈ 10 -308 до 10 308 с точностью до 15 знака (в десятичном выражении) после запятой. Однако доля вычислений с одинарной точностью тоже весьма велика и даже достаточна для отдельных проектов.

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

Архитектура и скорость вычислений типа FP32 и FP64 некоторых видеокарт

Если раньше в этом сегменте доминировала nVidia (в том числе за счёт выпуска ускорителей Tesla той же архитектуры), то сейчас всё больше проектов смотрят в сторону AMD (ATI).

Пример выполнения проектов BOINC на видеокарте AMD

Появились и такие проекты, которые поддерживают ускорение на видеокартах AMD, но не работают с продуктами nVidia.

Проекты BOINC с эксклюзивной поддержкой видеокарт AMD

Предположительно это связано с тем, что при высокой скорости вычислений FP32 видеокарты nVidia на чипе GK104 демонстрируют сильное падение производительности в расчётах типа FP64. К примеру, если Radeon HD 6930 выполняет вычисления с двойной точностью в четыре раза медленнее, чем с одинарной (480 и 1920 гигафлопс соответственно), то GeForce GTX 680 – в двадцать четыре (128 и 3090 гигафлопс).

Когда “последний” не означает “лучший”

Само по себе использование более современных чипов далеко не всегда означает прирост в скорости. Например, HD 6850 не способен считать с двойной точностью, а HD 5850 выполняет вычисления FP64 со скоростью до 418 гигафлопс.

Топовые видеокарты часто обладают производительностью многопроцессорного сервера. Например, видеокарта с чипом HD 7970 содержит 2048 вычислительных ядер, объединённых в 32 блока. Её теоретическая производительность составляет 3789 гигафлопс при операциях с одинарной и 947 гигафлопс – с двойной точностью.

Для сравнения: арифметическая часть процессора Core-i5 3570K обеспечивает 122 гигафлопса (FP32) и 61 гигафлопс (FP64) в турборежиме, а Intel HD Graphics 4000 даёт прирост ещё на 147 гигафлопс (FP32). У AMD A10-5800K расчётная производительность арифметической части также находится на уровне 122 гигафлопса (FP32) и 61 гигафлопс (FP64), но видеоядро Radeon HD 7660D обеспечивает четырёхкратный прирост – на 614 гигафлопс (FP32).

Сейчас определённо есть смысл выбирать те проекты, которые могут быть обсчитаны с использованием видеокарт или хотя бы встроенных графических ядер. Однако между теоретическим пределом производительности и практически достигаемым результатом часто наблюдается разница не на проценты, а в разы. Она обусловлена квалификацией программистов и оптимизационными пределами для каждой конкретной задачи.

Например, задания проекта Einstein@home на компьютере с Core-i3 2100 и видеокартой Radeon HD 6850 обсчитываются со скоростью 49,5 гигафлопса, а POEM@home – 71,4 гигафлопса с теми же настройками. Оба проекта декларируют поддержку ускорения вычислений видеокартами AMD.

Затраты электроэнергии

Важным моментом является энергоэффективность разных систем. Сейчас она составляет от 1 до 20 гигафлопс на ватт, и этот параметр напрямую влияет на то, как увеличится ваш счёт за электроэнергию. С точки зрения экономичности привлекательны не только специализированные ускорители и серверные решения, но также APU и отдельные массовые видеочипы. У AMD наиболее интересные чипы расположены ближе к началу ценового диапазона, а у nVidia – преимущественно в его верхней трети.

К примеру, эффективность недорогой видеокарты Radeon HD 7770 составляет 16 гигафлопс на ватт в расчётах FP32, однако её использование для выполнения FP64 расчётов неоправданно – здесь она продемонстрирует результат всего в 1,0 гигафлопс на ватт. Даже у выпущенного в 2009 году чипа HD 4750 данный показатель был гораздо лучше – 2,5 гигафлопса на ватт.

GeForce GTX 660Ti принадлежит к верхней границе среднего ценового диапазона, но тратит энергию эффективнее: 16,4 гигафлопса на ватт в расчётах FP32 и 2,1 гигафлопса на ватт при вычислениях с двойной точностью.

Если (теоретически) держать BOINC в режиме постоянной обработки и не выключать компьютер, то при потребляемой мощности ≈ 200 Вт он добавит за месяц менее 150 кВт*ч к показаниям счётчика. В типичном сценарии использования (когда BOINC активен только в простое, а компьютер работает по несколько часов в день и выключается на ночь) – менее десяти киловатт-час.

Возможно, эти незначительные затраты в поддержку исследовательских команд ведущих университетов мира многим покажутся более оправданными, чем перечисление пожертвований сомнительным благотворительным организациям.

Это краткий вариант настройки BOINC клиента для тех, кто не любит много читать и сразу "рвется в бой". Несмотря на обилие опций и возможностей BOINC в большинстве случаев можно оставлять все значения по умолчанию, действительно важных опций, которые нужно настраивать всем, на мой взгляд, всего 3, которые мы сейчас и настроим всего в 4 шага. Скриншоты приведены с английской версии клиента 6.12.26, названия опций даны на английском и продублированы в скобках русским переводом в текущем его варианте (перевод может немного отличаться от версии к версии).

1. По умолчанию BOINC Manager работает в "упрощенном" режиме, в котором недоступны многие нужные функции. Поэтому, если еще не сделали этого раньше, то переключаемся в "продвинутый" режим" (Advanced View) нажав соответствующую кнопку:


2. Открываем настройки BOINC Manager:
В версиях программы начиная с 6.12.xx они расположены в пункте меню Tools --> Computing preferences (Сервис --> Настройки клиента)
В более старых версиях, в частности 6.10.хх, в пункте Advanced --> Preferences (Дополнительно --> Настройки)

3. На закладке "processor usage"(процессор) задаем следующие опции:


"While processor usage is less than XX percent"(При использовании процессора менее XX процентов) = 0
Данная опция полностью останавливает расчеты при загрузке процессора пользовательскими программами (под ними подразумеваются любые программы кроме самого BOINC, в том числе выполняющиеся в фоновом режиме) более XX %. 0% означает игнорировать загрузку процессора другими программами. Рекомендуется ставить именно 0, т.к. расчеты идут с наименьшим приоритетом и в нормальных условиях работе других программ не мешают (т.к. вычислительные ресурсы динамически перераспределяются в их пользу средствами ОС). Либо можете установить свое значение, например 80-90% (т.е. приостанавливать расчет только при тяжелой нагрузке). Значение по умолчанию (25%) никуда не годится - расчеты будут останавливаться при малейшей активности пользователя, а так же, например, запуске фонового сканирования антивируса или параллельном использовании Folding@Home.

В случае если вы хотите использовать для BOINC расчетов только часть имеющихся в компьютере процессоров/ядер, задаем это в следующей опции: "On miltiprocessor systems, use at most XX % of the processors"(В многопроцессорных системах использовать XX % от общего числа процессоров). Значение задается в %, т.е. чтобы использовать на 4х ядерном процессоре только 3 ядра, ставим 75%, 1 ядро на 2х ядерном - 50% и т.д.
На многоядерных/многопоточных процессоров этот метод предпочтительнее использовать так же для регулирования/снижения нагрузки (например в случае перегрева) по сравнению с "use at most XX % CPU time"(Использовать не более XX % времени каждого процессора), т.к. он дает более "ровную" нагрузку на процессор и дополнительно экономит оперативную память (за счет снижения количества параллельно запускаемых процессов/расчетных модулей).
В случае если предполагается использовать все ядра, то просто оставляем значение по умолчанию, т.е. 100%.

4. На закладке "network usage"(настройки сети) в графе "Additional work buffer XX days"(Дополнительный буфер XX дней) задаем размер кэша заданий:


Большой запас заданий позволит избежать простоев при длительных проблемах с интернетом или при сбоях на серверах проекта. Рекомендуемые значения от 2 до 8 дней. При этом, чем более регулярно работает компьютер, тем больше можно задавать размер кэша заданий. Под регулярностью подразумевается режим работы компьютера, идеальная регулярность это работа в режиме 24/7(24 часа в сутки, 7 дней в неделю) или каждый день например ровно по 10 часов. Офисные компьютеры (режим примерно 9/5) тоже можно считать достаточно регулярными. А вот если компьютер включается эпизодически - не каждый день и продолжительность работы каждый день разная, то большой кэш заданий задавать нежелательно, т.к. клиент будет делать большие ошибки в расчете необходимого количества заданий (в штуках) для обеспечения указанного вами запаса (в днях) и в результате может скачиваться заданий больше чем вы в состоянии выполнить в срок. Использовать для задания размера кэша пункт "Загружать заданий на XX дней" не рекомендую, т.к. кроме размера кэша он задает так же частоту подключения к серверам проекта (в оригинале этот пункт называется "Connect about every XX days") и, поставив там большое значение, мы получаем ситуацию, что клиент будет ждать по несколько суток, прежде чем отправить посчитанные задания на сервер и получить порцию свежих.

Если интересует более подробная настройка или описание каких-то опций, то читаем полный вариант настройки BOINC расположенный тут: (тут будет ссылка, когда этот полный вариант будет готов)