Підготовчі кроки для розгортання сервера BOINC. Розподілені обчислення: налаштовуємо клієнт BOINC та обираємо проект Коли "останній" не означає "кращий"

Використовуйте ідентифікаційний час на вашому комп'ютері, щоб розслабитися, вивчити глобальні варення, записувати pulsars, і багато інших типів наукового дослідження. Як "quasi-supercomputing" platform, BOINC має про 570,000 активних комп'ютерів (hosts) worldwide processing on average 2 petaFLOPS as of July 2009, які топи процесування потужності з сучасним швидким supercomputer system (IB 1.026 PFLOPS). It's safe, secure, and easy:

Installing BOINC

Ви можете налаштовувати BOINC від Terminal за допомогою наступних команд.

The instructions below been tried successfully with Ubuntu 9.04 (Jaunty Jackelope), 8.10 (Intrepid Ibex), 8.04 (Hardy Heron). Вони повинні працювати або працювати з Ubuntu 7.10 (Gutsy Gibbon).

sudo apt-get install boinc-client boinc-manager

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

Після налагодження є завершено, daemon є started автоматично. Ви можете натиснути BOINC Manager з повного меню Applications -> System Tools -> BOINC Manager. Перший час ви будете прагнути до одного або більше BOINC проектів (докладно до BOINC Manager).

Після того, як установка буде завершена, daemon configured до start up automatically every time the computer is turned on. Ви можете тимчасово запобігти або відновити це за допомогою зміни в файлі /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

Якщо ви працюєте BOINC Manager для першого часу, ви будете заслуговувати на досліду до Project dialogue.

Click NEXT button

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

The Choose a Project dialog will come up. This has a list of someз проектів, які ви можете відвідати, як добре, як Project URL field, де ви будете писати адресу проекту, який ви хочете, щоб отримати в.

Щоб зробити проект у списку, клацніть на проекті ім'я і проекти URL буде з'явитися в Project URL Field. Щоб зробити проект не на сайті, ви повинні використовувати проекти URL. is a more comprehensive list of projects.

After entering the URL click ENTER

Next is the User Information dialog. Після підключення до проекту ви повинні реєструвати з цим проектом. Якщо ви збираєтеся registered з проектом вибрано в попередньому діалоговому вікні "Yes, existing user". Якщо ви не маєте registered Username і Password with project select "No, new user".

Якщо ви вибрали "Yes, existing user", ви будете налаштовані для Username і Password ви повинні бути включені до цього проекту. Якщо ви вибрали "No, new user", ви повинні отримувати адресу електронної пошти.

Click the NEXT button.

Якщо все це є успішним, ви будете зроблені з успішним проектом наприкладі. Click the FINISH button.

Installing boinc-client on ubuntu server (не GUI)

Ця процедура має бути випробувана на ubuntu 10.10 server 64 bit, після довгих кількох помилок.

Якщо ви збираєтеся 64 біт Linux і 64 біт BOINC, ви маєте проблему з проектами, що є 32 bit applications після 64 bit applications. Для того, щоб 32 bit applications to run on 64 bit Linux ви повинні install 32 bit versions 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, іншіwise 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

Ви можете зробити деякі зміни до BOINC-Client config file. File that needs to be changed is cc_config.xml which is at /etc/boinc-client/cc_config.xml

Перший, 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

Відмінність CPU sched and debug settings will provide more information as work is done. Options within file тільки мають два settings: 0 for "off" і 1 for "on". Загальний варіант options is now at http://boinc.berkeley.edu/wiki/Client_configuration

1 1

Todo Items (move to talk page, або delete when done)

* update configuration info до 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 ? є technical/setup issues unique to Ubuntu
    • (Other than risk of not-yet-використані версії)

Використовують платформу 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 активний лише у простій, а комп'ютер працює по кілька годин на день і вимикається на ніч) – менше десяти кіловат-година.

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

Installer, then double-click the installer icon.

Install options

Ви можете налаштувати параметри за допомогою "Advanced" button on the configuration screen. The options are:

  • Program directory- where BOINC's program files will be stored.
  • Data directory- where BOINC"s data files will be stored. This will be a hidden directory; його місцезнаходження is shown in the BOINC start up messages.
  • Use BOINC screensaver- Використовуйте BOINC screensaver для поточного користувача.
  • Service install- Run project applications under unprivileged account. Це забезпечує розширення захисту проти нескінченних пристосунків, але це рішення BOINC з використанням вашої GPU, і це може викликати графіки не працювати з іншими застосуваннями.
  • Allow all users on this computer to control BOINC- If selected ( public mode), all users can control BOINC (attach/detach projects, etc.). If not selected ( private mode), тільки користувачі, які можуть контролювати BOINC є: встановлюючи користувача, членів Administrator group, і членів "boinc_users" групи. Якщо інші користувачі керують BOINC Manager, вони "будуть вивчати діалог, щоб дізнатися, як скористатися administrátorом, щоб почати до групи "boinc_users".

Running BOINC invisibly

Для того, щоб BOINC invisibly, вибравши "Service install" option, буде вибрано BOINC shortcut from the Start/Programs/BOINC and Start/Programs/Startup menus (locate BOINC в усі menu, right-click, select Delete). You can still run the BOINC Manager by going to C:\Program Files\BOINC and double-clicking on boincmgr.exe

Error recovery

If you get an error error 1714 - the old instalation can't be removedпри налаштуванні нової версії BOINC:

  • Reinstall the previous version.
  • Uninstall the previous version.
  • Install the new version again.

Mac OS X

  • the installer.
  • Якщо ваш браузер не має жодного подібного, expand the zip archive by double-clicking on it in the Finder.
  • Double-click on the BOINC Installer application to run the installer, then follow the prompts.
  • Close the installer when it is finished. Це буде автоматично повідомити BOINC Manager.
  • If you want BOINC to be your screen saver, open System Preferencesвід Apple menu. Select Desktop & Screen Saver and select BOINCSaver.
  • The default location for data directory of BOINC is /Library/Application Support/BOINC Data . Ви можете спробувати виключити цей проміжок від Time Machine backup system to prevent increase of backup data size.

It can the be built with the following commands

Unzip master.zip cd boinc-master ./_autosetup ./configure \ --disable-silent-rules \ --enable-dynamic-client-linkage \ --disable-server \ --disable-fcgi \ --enable-unicode \ --with-wx-config=/usr/bin/wx-config-3.0 \ --with-ssl \ --with-x \ STRIP=: \ DOCBOOK2X_MAN=/usr/bin/db2x_docbook2man \ "CXXFLAGS=$( pkg-config gtk+-x11-3.0 --cflags --libs) -DNDEBUG" make make install

Крім того, конкретна версія (gitbranch and gittag) може бути downloaded with the following command:

Running BOINC using Docker

Ви можете скористатися цим зображенням за допомогою Docker на 64-бітному Intel комп'ютері (Linux, FreeBSD, Mac, або Windows).

Image contains only the client. Ви можете контролювати його, використовуючи BOINC GUI керування локально або remotely.

За допомогою bootable image

Ви можете завантажити bootable image containing Linux і BOINC клієнта, завантажити його на USB stick, і boot from it. Currently one such image available: PADOLF@home based on Debian. Це включає в себе 7.8.3 BOINC клієнта і GUI, і має нові відео drivers для AMD і Nvidia GPU support. Note: this is provided by volunteers, не BOINC.

The Berkeley Installer

The Berkeley installer is available. It is a self-extracting archive. Цей тип встановлення потребує, що ви будете знайомі з UNIX Command-line interface. The download files have names like boinc_7.2.23_i686-pc-linux-gnu.sh .

Here is an example. Archive is downloaded to desktop. Це буде переміщено до домашній директорії (~). Нарешті BOINC is unpacked and installed. All of this can be done within regular user account; root privileges are not needed.

$ mv ~/Desktop/boinc_7.2.23_i686-pc-linux-gnu.sh ~ $ cd ~ $ sh boinc_7.2.23_i686-pc-linux-gnu.sh

Це створить directory, що називається BOINC/ під домашнім директором, що містить наступні файли:

Boinc The BOINC core client. boincmgr The BOINC Manager. boinccmd Command line tool for controlling a running core client. run_client Скрипт that cd's в BOINC directory and runs the core client.

Для запуску клієнта автоматично введіть наступні terminal commands:

$ cd ~/BOINC $ ./run_client --daemon $ ./run_manager

The BOINC working directory може бути виконаний усі, як ви, і може бути renamed. Один спільний вибір є ~/.boinc , список файлів і directories з літерами, які беруться з "dot", щоб не показувати вказівки в Unix directory listings. Який name, everything related to BOINC client is contained within that directory, and you should always run the client and the manager from that working directory.

Build BOINC from source

Ви можете побудувати BOINC клієнта від джерела. Keep in mind що BOINC полягають у клієнтських і серверних програмах. To run BOINC on your computer you only need to build the client software.

Інструкції для будівництва BOINC від джерела в окремому розробнику з wiki. Start with these pages:

Там є додаткова документація на інших веб-сайтах:

  • Installing and Running the BOINC клієнта на Unix (від Spy Hill) - how to install and configure the client once you have built it

64 Bit Considerations

Якщо ви збираєтеся 64 біт Linux, ви маєте проблему з проектами, що є 32 біт applications після 64 bit applications. Для того, щоб 32 bit applications to run on 64 bit Linux ви повинні install 32 bit versions certain shared libraries. Назви пакетів, що містять 32 bit libraries, є різними для кожного диска.

N.B. Commands given below are executed in a terminal window. Щоб відкрити, натиснути клавішу Ctrl+Alt+T. The sudoкоманди можуть записати для password до тимчасового керування admin installation rights for needed libraries. , closing the terminal or leave terminal idle for 15 minutes will revoke thes rights again.

Fedora

Три пакети вимагаються для 64 біт спроможності.

Name Description
compat-libstdc++-296.i686 Compatibility 2.96-RH standard C++ libraries
compat-libstdc++-33.i686
compat-libstdc++-33.x86_64 Compatibility standard C++ libraries

Install all 3 packages at once, by opening a terminal and typing:

Su -c "yum install compat-libstdc++-296.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64"

Ubuntu

Чотири пакети вимагаються для 64 біт надійності (Використовуйте всі розділи перед використанням).

Name Description
ia32-libs description is unavailable
libstdc++6 description is unavailable
libstdc++5 description is unavailable
freeglut3 description is unavailable

Install all 4 packages at once with the following steps:

  1. Open a terminal.
  2. Enter (з space між every library name, or copy the line as-is, and right-click in terminal to paste)
sudo apt-get install ia32-libs libstdc++6 libstdc++5 freeglut3

Якщо ви помітили 32 біт роботи на e.g. World Community Grid or to all all install, this sets work on newer Linuxes

Sudo apt-get install gcc-4.7-multilib libstdc++6 libstdc++5 freeglut3 lib32z1 lib32ncurses5 lib32bz2-1.0

або alternate for Test4Theory:

Sudo apt-get install gcc-4.7-multilib freeglut3 libwxgtk2.8-dev libcurl4-openssl-dev libxss-dev

Зміни будуть не впливати на повноцінного клієнта/демон буде бути відновлено. Це може бути виконане в terminal, e.g. on Ubuntu with

Sudo service boinc-client restart

FreeBSD

  1. go to /usr/ports/net/boinc-client/, Open the Makefile in text editor
  2. change the CONFIGURE_ARGS=--disable-server as follows:
    1. on 32 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
    2. on 64 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
  3. do make install clean
  4. якщо ви придбали помилку як "ELF 0 ....", ви можете налаштувати
    1. /usr/ports/emulators/linux_base-fc4 or higher
    2. sysctl kern.elf32.fallback_brand=3

Існує додаткова інформація про встановлення, налаштування і керування BOINC на FreeBSD.

Апаратні конфігурації

Як експериментальна та налагоджувальна станція, ви можете використовувати будь-який комп'ютер як BOINC сервер. Перед розгорненням програми ширше, переконайтеся, що ваш сервер має достатню продуктивність та захист.

Деякі фактори:

  • · Ваш сервер повинен мати статичну IP адресу.
  • · Інтернет-з'єднання повинно мати достатню швидкість та надійність.
  • · Ваш сервер повинен мати 64-біт процесор, щонайменше 8 GB оперативної пам'яті, мінімум 40 GB вільного місця на жорсткому диску.
  • · Необхідно через можливості підвищити надійність (підключення живлення до UPS, RAID конфігурація диска, можливість гарячої заміни запчастин тощо).
  • · Захистіть фаєрволом; дозвольте доступ до порту 80 (HTTP) і за потреби до порту 443 (HTTPS).
  • · Забезпечте безпеку; вимкніть усі не потрібні мережеві сервіси, особливо ті, які використовують пересилку пароль у відкриту (такі як FTP або Telnet).

Є інший варіант, який дозволить вирішити обидві завдання, технічну та програмну, це розгорнути сервер на «хмарному» просторі.

Програмне забезпечення

Є кілька способів розгортання програмного забезпечення сервера BOINC:

  • · Найбільш простий спосіб встановлення BOINC сервера – це використання «BOINC server VM», на якій вже встановлено необхідне програмне забезпечення. Ви можете запустити "віртуальну машину" використовуючи?VirtualBox на будь-якому комп'ютері заснованому на intel (Windows, Linux або Mac OS X).
  • · Вбудовані репозиторії Debian та Ubuntu пропонують пакет «boinc-server-maker» для створення BOINC проекту більш простим способом на локальному або віддаленому комп'ютері.
  • · Ви можете використовувати будь-яку Unix систему як BOINC-сервер, крім SELinux, рекомендується використовувати останні версії системи.

Віртуалізація

Віртуалізація - це програмна технологія, яка дозволяє пристрою запускати різні операційні системи в окремій "віртуальній машині" (virtual machine). Наприклад, вона дозволяє на комп'ютері з попередньо встановленою операційною системою Windows запустити Linux, без необхідності встановлення системи Linux окремо на жорсткий диск, або перезавантаження для зміни системи. Віртуальні образи системи називаються VM Apps.

Віртуалізація та BOINC

BOINC використовує віртуалізацію, щоб дозволити вченим розробку програм на тій операційній системі, якої вони хочуть (зазвичай Linux), а потім запустити їх на Windows та Mac комп'ютерах добровольців.

BOINC віртуалізація використовує систему звану VirtualBox, яка має відкритий вихідний код і поставляється Oracle.

Для того, щоб запустити VM apps, на ваш комп'ютер повинен бути встановлений VirtualBox. Починаючи з версії 7.2.28, рекомендований BOINC інсталятор для Windows вже містить VirtualBox. Ви також можете встановити VirtualBox окремо.

Переваги віртуалізації

Використання віртуалізації в BOINC забезпечує кілька переваг:

  • · Дозволяє спростити вченим розробку додатків для BOINC, оскільки їм більше не доведеться збирати та підтримувати версії їх програм для Windows та Mac.
  • · Підвищення рівня безпеки для добровольців. Віртуальні машини дають сильний захисний бар'єр; Програма запущена на віртуальній машині не має доступу до файлів на батьківській операційній системі.
  • · VM apps автоматично відновлюють роботу. Образ контейнера віртуальної машини записується на диск кожні кілька хвилин, якщо комп'ютер буде вимкнений на якийсь час, програма може бути відновлена ​​з місця останнього збереження перед вимкненням.

Встановлення сервера BOINC на Unix

Групи та права доступу

Серверні програми BOINC працюють як два різних користувача:

· Планувальник, обробник завантаження файлів, та мережне програмне забезпечення запускається з правами облікового запису веб-сервера (у Fedora це користувач "apache"; у Debian це "www-data").

Решта програм запускається під звичайними акаунтами користувачів, які називаються «власники проекту».

Власником проекту може стати вже існуючий обліковий запис, або ж спеціально створений за допомогою useradd. Надалі ми вважатимемо, що власник проекту це boincadm,з первинною групою boincadm.

Не використовуйте root як власник проекту

За промовчанням директорії, створені користувачем apache, не доступні в мережі. Це викликає проблеми, наприклад, обробник створює каталог в ієрархії завантаження, він належить (Apache, Apache), і деструктор файл (який працює як boincadm) не зможе видалити файли.

Обидва boincadm та apache повинні мати umasks яка дозволяє групі читати та змінювати файли. Місце, де потрібно додати цю опцію, залежить від вашої операційної системи. Зазвичай можна використовувати umasks 0002 або 0007.

Коли ви створите BOINC проект, використовуючи make_project, всі важливі каталоги будуть належати boincadm і мати Set-GID бітний набір; це означає, що будь-який директорій або файл створений користувачем apache, у цих директоріях буде мати права групи boincadm (не групи apache). Програмне забезпечення BOINC створює всі групи директорій з можливістю читання/запис. Таким чином, як Apache так і boincadm матимуть доступ на читання/запис до всіх каталогів та файлів, але інші користувачі не матимуть доступу.

Щоб виправити права доступу на існуючому проекті, зробіть таке:

chmod 02770 завантажити

chmod 02770 html/cache

chmod 02770 html/inc

chmod 02770 html/languages

chmod 02770 html/languages/compiled

chmod 02770 html/user_profile

Вам також може знадобитися змінити власника цих каталогів та всіх їх підкаталогів у boincadm/boinc. Якщо ви запустили кілька проектів на одному сервері, і хочете, ізолювати їх один від одного, ви можете створити іншого користувача та групу для кожного проекту, та додати права Apache для всіх груп.

При виконанні ваших файлів проекту з Apache, зверніть увагу, що всі каталоги аж до каталогу HTML повинні мати права на виконання. Наприклад, якщо ви використовуєте make_project для створення шаблону проекту у вашій домашній директорії, директорія повинна мати права 711, тоді як за умовчанням коштує 700. Якщо виконати неправильно, то буде помилка 403 Forbidden,під час підключення з браузера до сторінки проекту.

Деякі редагування MySQL

Після встановлення MySQL створіть обліковий запис MySQL для власника проекту. Як приклад буде використано ім'я boincadm, так само як і в Unix акаунту. Усі MySQL облікові записи повинні бути захищені паролем; в якості прикладу використано пароль «foobar» (використовуйте щось інше).

mysql - u root - p

CREATE USER "boincadm"@"localhost" IDENTIFIED BY "foobar";

Це дає boincadm доступ до всіх баз MySQL, що знаходяться на хості; Якщо ви використовуєте MySQL для інших цілей на хості, встановіть права доступу більш обмежено.

Інші зауваження:

  • · Додайте програми MySQL до змінного середовища boincadm PATH. (зазвичай вони знаходяться /usr/local/mysql та /usr/local/mysql/bin).
  • · Ви хочете, періодично створювати резервні копії бази даних. Як правило, це вимагає зупинки проекту, роблячи копію або знімок, а потім перезапуск.
  • · BOINC бере MySQL компілятор та лінковник прапорів із програми званої mysql_config яка поставляється разом із дистрибутивом MySQL. Іноді програма може просити бібліотеки, які не є частиною бази вашої системи, що входить до попередньо встановленої, наприклад - lnsl або - lnss_files. Вам може знадобитися встановити додаткові пакети (найчастіше можна використовувати щось зване "mysql-dev" або "mysql-devel") або повозитися з Makefile.
  • · MySQL може стати вузьким місцем у BOINC сервері.

MySQLclient зауваження

  • · Налаштуйте mysql з опцією – enable-thread-safe-client switch.
  • · Встановіть LD_LIBRARY_PATH для звернення до правильної бібліотеки.

Apache зауваження

У httpd.conf, встановити тип MIME за замовчуванням, наступним чином (інакше ви отримаєте помилку завантаження файлу верифікації підпису):

DefaultType application/octet-stream

Щоб зменшити частоту відмов в обслуговуванні, ми рекомендуємо вимкнути індексацію каталогів, додавши – Indexes директиві Options.

Переконайтеся, що розширення файлів, що використовуються вашою програмою або файли даних, не обробляються небажаним чином на Apache. Наприклад, якщо деякі з ваших файлів є «.map розширення, видалити рядок

AddHandler imap-file map

Apache має обмеження розміру запиту за замовчуванням 1 Мб. Якщо ймовірність того, що ваш проект перевищить цей розмір (великі вихідні файли, великі повідомлення планувальника запитів) збільште його, наприклад, до 128 MB:

LimitXMLRequestBody 134217728

LimitRequestBody 134217728

Налаштування PHP

Вам може знадобитися додати GD та XML бібліотеки на ваш PHP; Ви можете зробити це за допомогою наступної команди:

yum install php-gd php-xml

потім перезавантажте Apache.

За промовчанням BOINC використовує PHP для розсилки листів учасникам. За допомогою sendmail. Якщо це не працює, ви можете використовувати?PHPMailer, це дуже гнучка система розсилки пошти замість попереднього. Необхідно зробити таке:

  • · Завантажити PHPMailer і покласти пакет у директорію PROJECT/html/inc/phpmailer (тобто файли class.smtp.php та class.phpmailer.php повинні знаходитись у цій директорії).
  • · Змініть html/project/project.inc додавши функції function

make_php_mailer() (

$mail = новий PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = true;

$mail->SMTPSecure = "tls";

$mail->Host = "smtp.gmail.com";

$mail->Port = 587;

$mail->Username = « Ця електронна адреса захищена від спам-ботів. Щоб побачити її потрібно активувати java-script.

$mail->Password = "xxx";

$mail->SetFrom (" Ця електронна адреса захищена від спам-ботів. Щоб побачити її потрібно активувати java-script ", "somebody");

$mail->AddReplyTo (« Ця електронна адреса захищена від спам-ботів. Щоб побачити її потрібно активувати java-script », «somebody»);

(підставте значення, які підходять для вашого SMTP сервера).

Можливі проблеми

Після додавання нового користувача ви повинні перевірити, чи був створений домашній каталог. Можливо, вам доведеться створити його вручну.

$ mkdir /home/(username)

$ chown (username): (username) /home/(username)

Посилання /usr/bin/gcc що вказує на компілятор, що використовується в даний час, може бути відсутнім. Це може призвести до помилок під час команди make. Особливо, коли ви намагаєтеся зібрати графічну частину API вам необхідне посилання на /usr/bin/g++ (make дає попередження, що він не може знайти GL/GLU/GLUT хоча він встановлений). Таким чином, ви повинні створити символьні посилання, залежно від версій вашого GCC та G++, спочатку:

$ ln - s /usr/bin/gcc-4.11 /usr/bin/gcc

$ ln - s /usr/bin/g++-4.11 /usr/bin/g++

У нових дистрибутивах linux ви не можете увійти в систему як суперкористувач. Натомість є користувач notroot, ким ви можете увійти, але ви не матимете привілеї суперкористувача. Якщо програма або скрипт повинен мати права суперкористувача, ви повинні ввести пароль, який ви вводили при встановленні. У вікні консолі ви можете отримати права суперкористувача або за допомогою su (Debian), або sudo (Ubuntu, Fedora). Зверніть увагу на одинарні лапки навколо команди при використанні su-c!

$ su - c ("command")

$ sudo (command)

Якщо у вас є проблеми виконання команд sudo, необхідно додати користувача файл /etc/sudoers. Щоб відредагувати цей файл, просто скористайтеся цією командою:

У цьому файлі потрібно додати ще один рядок після рядка для notroot. Можна використати це:

(username) ALL = (ALL) ALL

Інструкція інсталювати додаткові пакети для сервера Debian 6.0.

Подальша інструкція включає списки пакетів, представлені як приклад, через можливість оновлення пакетів, що може призвести до змін, як інструкції, так і роботи з пакетами в цілому.

Необхідне програмне забезпечення для встановлення

Звичайні пакети для збирання BOINC (ґрунтується на вимогах (Unix/Linux)):

Пакети необхідні для сервера BOINC:

libapache2-mod-php5

mysql-server-5.1

libmysqlclient-dev

python-mysqldb (or MySQL-python)

libcurl4-openssl-dev

Пакети необхідні бібліотекам BOINC (включаючи графічні):

Пакети необхідні для BOINC клієнта та менеджера (На додаток до бібліотек):

libcurl4-openssl-dev

libxcb-atom1-dev

додаткові пакети для графічного менеджера робочого столу:

Цей список містить усі необхідні пакети для сервера BOINC та клієнтських компонентів. При першому включенні ці пакети повинні бути встановлені зі здатністю. Графічний менеджер робочого столу є необов'язковою частиною, але робить конфігурацію сервера трохи простішим. Список не містить безпеки для захисту вашого сервера.

Створення нового облікового запису користувача BOINC

Найкращий спосіб створення облікового запису користувача boinc під час інсталяції в той момент, коли вас запитують ім'я користувача та пароль. Введіть "boincadm", або будь-яке ім'я на ваш розсуд, як ім'я користувача. За промовчанням буде використовуватися "boincadm".

Після завершення інсталяції, будь ласка, увійдіть у систему як користувач, створений під час інсталяції. Якщо ви встановили графічний менеджер робочого столу, відкрийте текстову консоль (Konsole або xterm).

Наступний крок, щоб додати користувача "www-data" (сервер Apache) до групи новоствореного користувача:

$usermod - G - a boincadm www-data

Конфігурація MySQL сервер

Створіть нову базу MySQL для користувача.

$ mysql - h localhost - u root - p

> GRANT ALL ON *.* TO "boincadm" @ "localhost";

> SET PASSWORD FOR "boincadm"@"localhost"="";

The permissions can be limited to project database only, later; Defining empty password simplifies the installation, can be changed later.

Інкапсуляція бази даних проекту можлива лише пізніше; Визначивши пароль порожнім, ви спростите встановлення, пароль може бути змінено пізніше.

Ви також встановити це, використовуючи інтерфейс phpmyadmin доступні через http:// (server-IP)/phpmyadmin

2. Встановлення сервера

Завантаження вихідного коду BOINC

Остання версія розробок може бути завантажена за допомогою:

$ git clone git://boinc.berkeley.edu/boinc-v2.git boinc-src

Щоб оновити вихідний код, необхідно просто піти в основний каталог і введіть:

$ cd ~/boinc-src

Остання версія клієнта може бути отримана із сайту BOINC. Зазвичай вам не потрібно самостійно збирати додаток клієнта, оскільки на сайті представлений автоматичний установник.

Порада, перевіряйте останні оновлення.

Компіляція вихідного коду проекту BOINC

Введіть такі команди у вікні консолі:

$ cd ~/boinc-src

$./configure - disable-client - disable-manager

Скрипт configure означає, що компіляція буде лише серверної частини та додаткових бібліотек - якщо установка йде успішно про це скаже останній рядок, виведений за допомогою скрипту:

Build Components: (libraries server) -

Зверніть увагу на повідомлення, що видаються під час роботи скрипта configure, можливо, будуть виведені попередження на кшталт цього:

checking if CFLAG "-include fcgi_stdio.h" works… no

configure: WARNING: fcgi-stdio.h not found.

Disabling FCGI. Will not build components that require FCGI

Якщо це не призвело до помилок скрипту, вам можна або ігнорувати попередження, що може призвести до можливих проблем у майбутньому, або встановити відсутні компоненти і використовувати новий скрипт, щоб отримати додаткову функціональність і уникнути можливі проблеми.

Також якщо не знайдені, наприклад, бібліотеки apache, то скомпілювати сервер не вдасться.

Після успішного виконання скрипта потрібно запустити команду:

boincadm@boincserver:~/server_stable> sudo make install

компіляція компонентів сервера займе деякий час.

Віртуальна машина BOINC-сервер

Це віртуальна машина для використання як сервер BOINC. Вона має всі передумови сервера BOINC встановлені, програмне забезпечення BOINC-установки та компіляції та облікові записи користувачів та права доступу налаштувати. Він готовий працювати

Ця віртуальна машина створена як BOINC сервер. На ній встановлено всі необхідні бібліотеки, програмні пакети BOINC вже зібрані та встановлені, акаунти користувачів та групи доступу так само вже налаштовані. Все вже готове до запуску ~/boinc-master/tools/ make_project.

  • · Паролі зберігаються у файлі README-vbox-image, який знаходиться в архіві з образом віртуальної машини. Root (або su) пароль "rootpw". Також встановлений користувач "boincadm" з паролем "boincadmpw". Ці паролі повинні бути замінені більш надійними. Створюйте програмне забезпечення під цим користувачем.
  • · Програмне забезпечення на віртуальній машині BOINC необхідно оновити, оскільки можливо, що на образі є застарілі пакети, використовуйте:
  • · $~/update_master.sh
  • · $~/configure_server.sh
  • · $ ~/make_server.sh
  • · Програмне забезпечення Linux/PHP/MySQL/Apache на образі також необхідно оновлювати за допомогою "apt-get update" або "apt-get upgrade".
  • · Команди «sudo» доступні для користувача «boincadm» так само на сервері встановлено та запущено OpenSSH.

Мережевий доступ.

VirtualBox надає два шляхи мережного доступу VM: Bridged Ethernet та NAT (Network Address Translation). Один із способів можна вибрати у налаштуваннях VirtualMachine. Перед зміною цієї опції вимкніть VirtualMachine. Рекомендовано використовувати Bridged Ethernet.

Якщо ви змінили MAC адресу віртуальної машини (наприклад, клонуючи віртуальну машину), змініть файл /etc/udev/rules.d/70-persistent-net.rules після запуску віртуальної машини. Файл має виглядати приблизно так:

$cat /etc/udev/rules.d/70-persistent-net.rules

# Цей файл був автоматично генерований за /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

SUBSYSTEM== "net", ACTION== "add", DRIVERS=="?*", ATTR(address)== "08:00:27:bc:85:01", ATTR (dev_id)== "0x0 », ATTR (type) = = "1", KERNEL = = "eth *", NAME = "eth0"

# PCI device 0x8086:0x100e (e1000)

SUBSYSTEM== "net", ACTION== "add", DRIVERS=="?*", ATTR(address)== "08:00:27:bc:85:02", ATTR (dev_id)== "0x0 », ATTR (type) = = "1", KERNEL = = "eth *", NAME = "eth1"

Видаліть рядок, що містить NAME= «eth0» і перейменуйте eth1 на eth0. Використовуйте команду:

$ sudo nano /etc/udev/rules.d/70-persistent-net.rules

Після цього перезавантажте віртуальну машину.

Більше інформації про систему Debian можна знайти на сайті розробника.

Bridged Ethernet

У цьому випадку віртуальна машина поводиться як окрема ланка в мережі. Сканування мережі покаже дві окремі машини, вашу основну систему та віртуальну машину. Вихідні та вхідні з'єднання можливі.

# The primary network interface

iface eth0 inet static

address 121.132.134.0

netmask 255.255.255.0

gateway 121.132.134.1

dns-search yoursimpledomain.edu

dns-nameservers a.b.c.d

Де a.b.c.d це IP-адреса вашого DNS сервера (їх можливо кілька одночасно).

Змініть /etc/resolv.conf додавши

nameserver a.b.c.d

Де a.b.c.d це IP-адреса вашого DNS сервера.

Ви також повинні додати IP-адресу та ім'я хоста віртуальної машини у файл хостів. Щоб зробити це змініть C:Windowssystem32driversetchosts (якщо як хост використовується Windows) або /etc/hosts (як root; якщо в якості хост використовується Unix) використовуючи текстовий редактор додавши до прикладу:

121.132.134.0 debian6.localdomain

За допомогою цього ви можете підключити клієнта з вашої машини до віртуальної машини. Якщо ви використовуєте проксі-сервер для доступу до Інтернету, ви повинні додати "debian6.localdomain" до списку винятків у вашому браузері. Вам буде не потрібний проксі, щоб дозволити локальну адресу.

Крім того, ви можете отримати IP-адресу за допомогою DHCP. Не рекомендується робити це, оскільки клієнти будуть плутатися, якщо зміни IP-адреси. Щоб зробити це, редагувати /etc/network/interfaces, додавши:

iface eth0 inet dhcp

Це буде працювати, якщо у вашій мережі є сервер DHCP, налаштований на додавання IP-адреси нових хостів.

Щоб зміни набули чинності, необхідно перезапустити віртуальну машину:

У цьому режимі, віртуальна машина роздає IP адреси хост машини для того, щоб створити вихідні з'єднання (доступ до інтернету через віртуальну машину). У цьому випадку сканування мережі покаже лише одну машину. Вхідне з'єднання до віртуальної машини в цьому випадку неможливе, тому цей режим не рекомендується.

Тим не менш, це обмеження можна обійти за допомогою перенаправлення портів. Щоб це зробити, використовуйте VirtualBox Manager (Edit > Network), змінити Attached to:на NAT, натиснути Advancedпотім Port Forwarding.

Це короткий варіант налаштування 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 розташований тут: (Тут буде посилання, коли цей повний варіант буде готовий)