Коротка настройка 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
Опис: Correspond with other users on the SETI@home message boards
URL: http://setiathome.berkeley.edu/forum_index.php
GUI URL:
name: Help
опис: 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: Відображає останній week (або більше) продуктивності та роботи
URL: http://setiathome.berkeley.edu/results.php?userid=9351194
GUI URL:
name: Your computers
description: View listing 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
опис: Відвідати інформацію про свій 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
На даний момент сервер не видає завдання. Нічого страшного, є проекти, у яких по півроку немає завдань. Підключіться до іншого проекту.

Повідомлення:
Ви використовуєте URL-адресу для цього проекту
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: Швидкий перегляд для BOINC # Description: Швидкий перегляд для 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" /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=. 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 гігафлопс (FP).

Зараз є сенс вибирати ті проекти, які можуть бути обраховані з використанням відеокарт або хоча б вбудованих графічних ядер. Однак між теоретичною межею продуктивності та практично досягається результатом часто спостерігається різниця не на відсотки, а в рази. Вона обумовлена ​​кваліфікацією програмістів та оптимізаційними межами для кожного конкретного завдання.

Наприклад, завдання проекту 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 розрахунків тільки частину наявних в комп'ютері процесорів/ядер, задаємо це в наступній опції: "У багатопроцесорних системах використовувати 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 розташований тут: (Тут буде посилання, коли цей повний варіант буде готовий)

  • Розділи сайту