Подготвителни стъпки за разполагане на BOINC сървър. Разпределени изчисления: Настройка на BOINC клиента и избор на проект, когато „Най-ново“ не означава „Най-добър“

Използвайте времето на престой на вашия компютър, за да лекувате болести, да изучавате глобалното затопляне, да откривате пулсари и да правите много други видове научни изследвания. Като "квази-суперкомпютърна" платформа, BOINC има около 570 000 активни компютъра (хостове) по целия свят, обработващи средно 2 petaFLOPS към юли 2009 г., което надхвърля процесорната мощност на настоящата най-бърза суперкомпютърна система (IBM Roadrunner, с постоянна скорост на обработка от 1,026 PFLOPS). Това е безопасно, сигурно и лесно:

Инсталиране на BOINC

Можете да инсталирате BOINC от терминала, като издадете следните команди.

Инструкциите по-долу са изпробвани успешно с Ubuntu 9.04 (Jaunty Jackelope), 8.10 (Intrepid Ibex) и 8.04 (Hardy Heron). Те също трябва да работят с Ubuntu 7.10 (Gutsy Gibbon).

sudo apt-get инсталирайте boinc-client boinc-manager

Забележка: На моята машина, работеща 9.04, тази команда също инсталира libwxbase2.8-0 и libwxgtk2.8-0

След като инсталацията приключи, демонът се стартира автоматично. След това можете да стартирате BOINC Manager от падащото меню Приложения -> Системни инструменти -> BOINC Manager. Първият път, когато направите това, ще бъдете подканени да прикачите към един или повече BOINC проекти (вижте Прикачване към BOINC мениджър).

След като инсталацията приключи, демонът е конфигуриран да се стартира автоматично при всяко включване на компютъра. Можете временно да деактивирате или активирате отново, като промените настройка във файла /etc/default/boinc-client:

# Задайте това на 1, за да активирате и на 0, за да деактивирате скрипта за инициализиране. АКТИВИРАН = "1"

Прикрепете към проект Boinc

Когато стартирате BOINC Manager за първи път, ще бъдете посрещнати от диалоговия прозорец Прикачване към проекта.

Щракнете върху СЛЕДВАЩИЯбутон

Забележка:На някои системи с Ubuntu 10.10, особено 64-битови, щракването върху NEXT води до срив на скрипта на BOINC Manager --- той се изключва дори без съобщение за грешка.

Ще се появи диалоговият прозорец Избор на проект. Това има списък на някоиот проектите, в които можете да участвате, както и поле за URL адрес на проекта, където ще поставите адреса на проекта, в който искате да участвате.

За да се присъедините към проект в списъка, щракнете върху името на проекта и URL адресът на проекта ще се появи в полето за URL адрес на проекта. За да се присъедините към проект, който не е в списъка, ще ви трябва URL адреса на проекта. е по-изчерпателен списък с проекти.

След въвеждане на URL щракнете ENTER

Следва диалоговият прозорец Информация за потребителя. Преди да се свържете с проект, трябва да се регистрирате в този проект. Ако вече сте се регистрирали с проекта, който сте избрали в предишния диалогов прозорец, изберете „Да, съществуващ потребител“. Ако не сте регистрирали потребителско име и парола с проекта, изберете "Не, нов потребител".

Ако сте избрали „Да, съществуващ потребител“, ще бъдете подканени за потребителското име и паролата, които сте прикачили към този проект. Ако сте избрали „Не, нов потребител“, ще трябва да въведете своя имейл и парола.

щракнете върху СЛЕДВАЩИЯбутон.

Ако всичко е успешно, ще ви бъде представен екранът за прикачване на успешен проект. щракнете върху ЗАВЪРШЕКбутон.

Инсталиране на boinc-client на ubuntu сървър (без GUI)

Тази процедура е тествана на 64-битов сървър на ubuntu 10.10 след дълга серия от неуспешни опити.

Ако използвате 64-битов Linux и 64-битов BOINC, тогава може да имате проблем с проекти, които издават 32-битови приложения, а не 64-битови приложения. За да позволите на 32-битови приложения да работят на 64-битов Linux, трябва да инсталирате 32-битови версии на определени споделени библиотеки (както е обяснено)

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

След това инсталирайте mainclient:

sudo apt-get install boinc-client

За предпочитане рестартирайте, в противен случай рестартирайте boinc-client

sudo /etc/init.d/boinc-client рестартиране

След това добавете вашия проект(и) с помощта на

boinccmd --project_attach URL auth

Тествайте дали boinc работи с

boinccmd --get_state

Повече информация за boinccmd

BOINC-Клиентски конфигурационен файл - BOINC 6.2.12 в Ubuntu 8.10

Можете да направите някои промени в конфигурационния файл на BOINC-Client. Файлът, който трябва да се промени, е cc_config.xml, който се намира в /etc/boinc-client/cc_config.xml

Първо, архивирайте оригиналния cc_config.xml

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

След това редактирайте файла /etc/boinc-client/cc_config.xml

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

Файлът BOINC 6.2.12 /etc/boinc-client/cc_config.xml по подразбиране е по-долу

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

Промяната на графика на процесора и настройките за отстраняване на грешки ще предостави повече информация, докато работата е свършена. Опциите във файла имат само две настройки: 0 за "изключено" и 1 за "включено". Целият списък с опции вече е на http://boinc.berkeley.edu/wiki/Client_configuration

1 1

Елементи на задачи (преместете към страницата за разговор или изтрийте, когато сте готови)

* актуализирайте информацията за конфигурацията до Jaunty/6.2.18 и по-нататък.

  • да запазите няколко по-стари версии?

* Искам: обсъждане на мъдрост / възможни проблеми с надстройката директно от сайта на Boinc.

  • ? първо трябва ли да деинсталираме? има ли технически/конфигурационни проблеми, уникални за Ubuntu
    • (освен риск от версии, които все още не са тествани тук)

Те използват платформата BOINC, която е разработена преди около десет години в Калифорнийския университет в Бъркли. Първата стъпка за участие в един от тях е да инсталирате софтуера BOINC Manager.

Инсталиране и конфигуриране на BOINC клиента

След като изтеглите и инсталирате клиентската програма, можете да посочите един или повече проекти, към които искате да се присъедините. Започвайки с шестата версия, клиентът BOINC поддържа гъвкави настройки за изчисление, които ви позволяват да посочите точно каква част от хардуерните ресурси човек е готов да пожертва за нуждите на науката. Освен това можете да настроите BOINC Manager автоматично да прави пауза, когато стартирате някои програми, или да изчислява само през определени часове. Изчисленията могат да бъдат напълно или избирателно преустановени ръчно по всяко време и също толкова лесно възобновени.

Изчислителни настройки на CPU и GPU в BOINC Client

В допълнение към опциите на самото клиентско приложение се предоставят настройки за всеки проект чрез уеб интерфейса на личната страница на участника.

Настройки на проекта 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).

Сега определено има смисъл да изберете онези проекти, които могат да бъдат изчислени с помощта на видеокарти или поне интегрирани графични ядра. Въпреки това, между теоретичната граница на производителност и практически постижимия резултат често има разлика не в проценти, а няколко пъти. Това се дължи на квалификацията на програмистите и ограниченията за оптимизация за всяка конкретна задача.

Например, проектни задачи [защитен с имейл]на компютър с Core-i3 2100 и видеокарта Radeon HD 6850, те се изчисляват при скорост от 49,5 гигафлопса и [защитен с имейл]- 71,4 гигафлопса със същите настройки. И двата проекта декларират поддръжка за ускоряване на изчисленията от AMD видеокарти.

Разходи за електроенергия

Важен момент е енергийната ефективност на различните системи. Сега той е от 1 до 20 гигафлопса на ват и този параметър пряко влияе върху това как се увеличава сметката ви за ток. От гледна точка на ефективността атрактивни са не само специализираните ускорители и сървърни решения, но и APU и отделни масово произведени видеочипове. Най-интересните чипове на AMD са разположени по-близо до началото на ценовия диапазон, докато nVidia са предимно в горната му трета.

Например, евтината графична карта Radeon HD 7770 е 16 гигафлопса на ват при изчисления на FP32, но използването й за изчисления на FP64 е неоправдано - тук тя ще покаже резултат от само 1,0 гигафлопса на ват. Дори чипът HD 4750, пуснат през 2009 г., имаше много по-добра цифра - 2,5 гигафлопса на ват.

GeForce GTX 660Ti принадлежи към горния край на средния ценови диапазон, но използва мощността по-ефективно: 16,4 гигафлопса на ват при изчисления на FP32 и 2,1 гигафлопса на ват при изчисления с двойна точност.

Ако (теоретично) поддържате BOINC в режим на постоянна обработка и не изключвате компютъра, тогава с консумация на енергия ≈ 200 W, той ще добави по-малко от 150 kWh на месец към показанията на измервателния уред. При типичен сценарий на използване (когато BOINC е активен само в неактивен режим и компютърът работи няколко часа на ден и е изключен през нощта), по-малко от десет киловатчаса.

Може би тези малки разходи в подкрепа на изследователските екипи на водещите световни университети ще изглеждат на мнозина по-оправдани от прехвърлянето на дарения към съмнителни благотворителни организации.

Инсталационната програма, след което щракнете двукратно върху иконата на инсталатора.

Опции за инсталиране

Можете да зададете опции за инсталиране, като щракнете върху бутона "Разширени" на екрана за конфигурация. Опциите са:

  • програмна директория- където ще се съхраняват програмните файлове на BOINC.
  • директория с данни- където ще се съхраняват файловете с данни на BOINC. Това ще бъде скрита директория; местоположението му се показва в съобщенията за стартиране на BOINC.
  • Използвайте скрийнсейвър BOINC- Използвайте скрийнсейвъра BOINC за текущия потребител.
  • сервизна инсталация- Стартирайте проектни приложения под непривилегирован акаунт. Това осигурява повишена защита срещу дефектни приложения, но не позволява на BOINC да използва вашия графичен процесор и може да доведе до това, че графиката не работи с по-стари приложения.
  • Позволете на всички потребители на този компютър да контролират BOINC- ако е избран( публичен режим), всички потребители могат да контролират BOINC (прикачване/откачване на проекти и т.н.). ако не е избран( частен режим), единствените потребители, които могат да контролират BOINC, са: инсталиращият потребител, членове на групата администратори и членове на групата "boinc_users". Когато други потребители стартират BOINC Manager, ще им се покаже диалогов прозорец, който казва да се свържете с администратора, за да ги добави към групата "boinc_users".

Изпълнение на BOINC невидимо

За да стартирате BOINC невидимо, изберете опцията „Инсталиране на услуга“, след което изтрийте прекия път на BOINC от Старт/Програми/BOINCи Старт/Програми/Стартиранеменюта (намерете BOINC във всяко меню, щракнете с десния бутон, изберете Изтриване). Все още можете да стартирате BOINC Manager, като отидете на C:\Program Files\BOINCи щракнете двукратно върху boincmgr.exe

възстановяване на грешка

Ако получите грешка грешка 1714- старияинсталацията не може да бъде премахнатапри инсталиране на нова версия на BOINC:

  • Преинсталирайте предишната версия.
  • Деинсталирайте предишната версия.
  • Инсталирайте отново новата версия.

MacOS X

  • инсталатора.
  • Ако вашият браузър все още не е направил това, разширете zip архива, като щракнете двукратно върху него в Finder.
  • Щракнете двукратно върху Инсталатор на BOINCприложение, за да стартирате инсталатора, след което следвайте подканите.
  • Затворете инсталатора, когато приключи. Това автоматично ще стартира BOINC Manager.
  • Ако искате BOINC да бъде вашият скрийнсейвър, отворете Системни предпочитанияот менюто на Apple. Изберете Работен плот и скрийнсейвъри изберете BOINCSaver.
  • Местоположението по подразбиране за директория с даннина BOINC е /Библиотека/Поддръжка на приложения/BOINC данни. Може да искате да изключите тази папка от системата за архивиране на Time Machine, за да предотвратите увеличаване на размера на архивните данни.

Може да се изгради със следните команди

Разархивирайте 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 и gittag) може да бъде изтеглена със следната команда:

Изпълняване на BOINC с помощта на Docker

Можете да стартирате това изображение с помощта на Docker на всеки 64-битов компютър на Intel (Linux, FreeBSD, Mac или Windows).

Изображението съдържа само клиента. Можете да го управлявате с помощта на BOINC GUI, работещ локално или отдалечено.

Използване на стартиращо изображение

Можете да изтеглите стартиращо изображение, съдържащо Linux и BOINC клиента, да го запишете на USB памет и да стартирате от него. В момента има едно такова изображение: [защитен с имейл]е базиран на Debian. Той включва клиента 7.8.3 BOINC и GUI и има най-новите видео драйвери за поддръжка на AMD и Nvidia GPU. Забележка: това се предоставя от доброволци, а не от BOINC.

Инсталаторът на Бъркли

В Инсталатор на Бърклие на разположение. Това е саморазархивиращ се архив. Този тип инсталация изисква да сте запознати с интерфейса на командния ред на UNIX. Файловете за изтегляне имат имена като boinc_7.2.23_i686-pc-linux-gnu.sh.

Ето един пример. Архивът се изтегля на работния плот. След това се премества в началната директория (~). Накрая BOINC се разопакова и инсталира. Всичко това може да се направи в рамките на обикновен потребителски акаунт; root привилегии не са необходими.

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

Това създава директория, наречена BOINC/ в домашната директория, съдържаща следните файлове:

Boinc Основният клиент на BOINC. boincmgr Мениджърът на BOINC. boinccmd Инструмент на командния ред за управление на работещ основен клиент. run_client Скрипт, който cd "s в директорията BOINC и изпълнява основния клиент. run_manager Скрипт, който се cd" е в директорията BOINC и стартира мениджъра.

За да стартирате клиента ръчно, въведете следните терминални команди:

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

Работната директория BOINC може да бъде преместена другаде, както желаете, и дори може да бъде преименувана. Един често срещан избор е ~/.boinc , тъй като файловете и директориите с имена, които започват с "точка", не се показват по подразбиране в списъците на Unix директории. Каквото и да е името, всичко, свързано с BOINC клиента, се съдържа в тази директория и винаги трябва да стартирате клиента и мениджъра от тази работна директория.

Създайте BOINC от източник

Можете да създадете BOINC клиента от източник. Имайте предвид, че BOINC се състои от клиентски и сървърен софтуер. За да стартирате BOINC на вашия компютър, трябва само да изградите клиентсофтуер.

Инструкциите за изграждане на BOINC от източник са в отделно уики за разработчици. Започнете с тези страници:

Има допълнителна документация на други уеб сайтове:

  • Инсталиране и стартиране на клиента BOINC на Unix (от Spy Hill) - как да инсталирате и конфигурирате клиента, след като го изградите

64-битови съображения

Ако използвате 64-битов Linux, може да имате проблем с проекти, които издават 32-битови приложения, а не 64-битови приложения. За да позволите на 32-битови приложения да работят на 64-битов Linux, трябва да инсталирате 32-битови версии на определени споделени библиотеки. Имената на пакетите, съдържащи 32-битовите библиотеки, са различни за всяка дистрибуция.

N.B.Командите, дадени по-долу, се изпълняват в a терминалпрозорец. За да отворите, натиснете клавишната комбинация Ctrl+Alt+T. В sudoкомандите могат да поискат парола, за да дадат временно права за инсталиране на администратор за необходимите библиотеки. , затваряне на терминала или оставяне на терминала неактивен за 15 минути ще отмени тези права отново.

Fedora

За 64-битова съвместимост са необходими три пакета.

име Описание
compat-libstdc++-296.i686 Съвместимост 2.96-RH стандартни C++ библиотеки
compat-libstdc++-33.i686
compat-libstdc++-33.x86_64 Стандартни C++ библиотеки за съвместимост

Инсталирайте всичките 3 пакета наведнъж, като отворите терминал и напишете:

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

ubuntu

Необходими са четири пакета за 64-битова съвместимост (Прочетете целия раздел, преди да кандидатствате).

име Описание
ia32-libs описанието е недостъпно
libstdc++6 описанието е недостъпно
libstdc++5 описанието е недостъпно
freeglut3 описанието е недостъпно

Инсталирайте всичките 4 пакета наведнъж със следните стъпки:

  1. отворен терминал.
  2. Въведете (с интервал между всяко име на библиотека или копирайте реда както еи щракнете с десния бутон в терминала, за да поставите)
sudo apt-get install ia32-libs libstdc++6 libstdc++5 freeglut3

Ако горното не успее да получи 32-битова работа на напр. World Community Grid или изобщо да инсталирате, тези комплекти работят на по-нови Linux

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

или алтернатива за Test4Theory:

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

Промените няма да влязат в сила, докато клиентът/демонът не бъде рестартиран. Това също може да се направи в терминал, напр. на Ubuntu с

sudo service boinc-client рестартиране

FreeBSD

  1. отидете на /usr/ports/net/boinc-client/, отворете Makefile в текстов редактор
  2. променете CONFIGURE_ARGS=--disable-server, както следва:
    1. на 32-битов FreeBSD го променете на
      CONFIGURE_ARGS=--забрани-сървър --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
    2. на 64-битов FreeBSD го променете на
      CONFIGURE_ARGS=--забрани-сървър --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
  3. направете инсталацията чиста
  4. ако получите грешка като "ELF 0 ....", уверете се, че сте инсталирали
    1. /usr/ports/emulators/linux_base-fc4 или по-нова версия
    2. sysctl kern.elf32.fallback_brand=3

Има допълнителна информация за инсталиране, конфигуриране и стартиране на BOINC във FreeBSD.

Хардуерни конфигурации

Като експериментална станция за отстраняване на грешки можете да използвате всеки компютър като BOINC сървър. Преди да разгърнете приложението по-широко, уверете се, че сървърът ви има достатъчна производителност и сигурност.

Някои фактори:

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

Има и друг вариант, който ще ви позволи да разрешите и двата проблема, технически и софтуерен, е да разположите сървър в "облачното" пространство.

софтуер

Има няколко начина за внедряване на сървърния софтуер BOINC:

  • · Най-лесният начин да инсталирате BOINC сървър е да използвате "BOINC сървър VM", който вече има предварително инсталиран необходимия софтуер. Можете да стартирате "виртуална машина" с помощта на ?VirtualBox на всеки компютър, базиран на Intel (Windows, Linux или Mac OS X).
  • · Вградените хранилища на Debian и Ubuntu предлагат пакета "boinc-server-maker" за създаване на BOINC проект по по-лесен начин на локална или отдалечена машина.
  • · Можете да използвате всяка Unix система като BOINC сървър, с изключение на SELinux, препоръчително е да използвате най-новите версии на системата.

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

Виртуализацията е софтуерна технология, която позволява на устройство да изпълнява различни операционни системи в отделна „виртуална машина“. Например, той ви позволява да стартирате Linux на компютър с предварително инсталирана операционна система Windows, без да се налага да инсталирате Linux системата отделно на твърдия диск или да рестартирате, за да промените системата. Виртуалните системни изображения се наричат ​​VM приложения.

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

BOINC използва виртуализация, за да позволи на учените да разработват приложения на желаната от тях операционна система (обикновено Linux) и след това да ги изпълняват на Windows и Mac компютри на доброволци.

Виртуализацията BOINC използва система, наречена VirtualBox, която е с отворен код и се доставя от Oracle.

За да стартирате VM приложения, VirtualBox трябва да бъде инсталиран на вашия компютър. От версия 7.2.28 препоръчаният от BOINC инсталатор за Windows вече включва VirtualBox. Можете също да инсталирате VirtualBox отделно.

Предимства на виртуализацията

Използването на виртуализация в BOINC предоставя няколко предимства:

  • · Улеснява учените при разработването на приложения за BOINC, тъй като вече не им се налага да създават и поддържат Windows и Mac версии на своите програми.
  • · Повишена сигурност за доброволците. Виртуалните машини осигуряват силна бариера за сигурност; програма, работеща на виртуална машина, няма достъп до файлове на родителската операционна система.
  • · Приложенията за VM автоматично се възобновяват. Изображението на контейнера за виртуална машина се записва на диска на всеки няколко минути, ако компютърът ви е изключен за известно време, приложението може да бъде възстановено от мястото, където е било записано последно преди изключване.

Инсталиране на BOINC сървър на Unix

Групи и разрешения

Сървърните програми BOINC работят като двама различни потребители:

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

Останалите програми работят под нормални потребителски акаунти, наречени "собственици на проекти".

Собственикът на проекта може да бъде съществуващ акаунт или специално създаден акаунт, използващ useradd. По-нататък ще приемем, че собственикът на проекта е boincadm,с първична група boincadm.

Не използвайте root като собственик на проекта

По подразбиране директориите, създадени от потребителя на apache, не са налични в мрежата. Това създава проблеми, например манипулаторът създава директория в йерархията за зареждане, тя принадлежи на (Apache, Apache) и файловият деструктор (който работи като boincadm) няма да може да изтрие файловете.

И boincadm, и apache трябва да имат umask, което позволява на групата да чете и променя файлове. Къде трябва да добавите тази опция зависи от вашата операционна система. Обикновено можете да използвате umask 0002 или 0007.

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

За да коригирате разрешенията за съществуващ проект, направете следното:

chmod 02770 качване

chmod 02770 html/кеш

chmod 02770html/inc

chmod 02770html/езици

chmod 02770 html/езици/компилиран

chmod 02770 html/user_profile

Може също да се наложи да промените собствеността на тези директории и всички техни поддиректории в boincadm/boinc. Ако стартирате няколко проекта на един и същ сървър и искате да ги изолирате един от друг, можете да създадете различен потребител и група за всеки проект и да добавите разрешения на Apache за всички групи.

Когато изпълнявате вашите проектни файлове от Apache, имайте предвид, че всички директории до HTML директорията трябва да имат разрешения за изпълнение. Например, ако използвате make_project за създаване на шаблон на проект във вашата домашна директория, директорията трябва да има разрешения от 711, докато по подразбиране е 700. Ако е направено неправилно, ще има грешка 403 Забранено,в момента на свързване от браузъра към страницата на проекта.

Някои редакции на MySQL

След като инсталирате MySQL, създайте MySQL акаунт за собственика на проекта. Името ще бъде използвано като пример. boincadm, същото като Unix акаунт. Всички MySQL акаунти трябва да бъдат защитени с парола; паролата "foobar" се използва като пример (използвайте нещо друго).

mysql -u корен -p

СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ "boincadm"@"localhost" ИДЕНТИФИЦИРАН ОТ "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.
  • · Задайте своя LD_LIBRARY_PATH да се отнася до правилната библиотека.

Apache отбелязва

В httpd.conf задайте MIME типа по подразбиране, както следва (в противен случай ще получите грешка при зареждане на файла за проверка на подписа):

Приложение/октет-поток по подразбиране

За да намалите отказа на услуга, препоръчваме да изключите индексирането на директории, като добавите -Indexes към директивата Options.

Уверете се, че разширенията на файловете, използвани от вашето приложение или файлове с данни, не се третират по нежелан начин от Apache. Например, ако някои от вашите файлове имат разширение ".map", премахнете реда

AddHandler има карта на файла

Apache има ограничение за размера на заявката по подразбиране от 1MB. Ако е вероятно вашият проект да надхвърли този размер (големи изходни файлове, големи съобщения за планиране на заявки), увеличете го до 128 MB например:

LimitXMLRequestBody 134217728

LimitRequestBody 134217728

PHP настройки

Може да се наложи да добавите GD и XML библиотеките към вашия PHP; Можете да направите това със следната команда:

yum инсталирайте php-gd php-xml

след това рестартирайте Apache.

По подразбиране BOINC използва PHP за изпращане на имейли до членове. С sendmail. Ако това не работи, можете да използвате ?PHPMailer, която е много гъвкава пощенска система вместо предишната. Трябва да направите следното:

  • · Изтеглете PHPMailer и поставете пакета в директорията PROJECT/html/inc/phpmailer (т.е. файловете class.smtp.php и class.phpmailer.php трябва да са в тази директория).
  • Редактирайте html/project/project.inc чрез добавяне на функционални функции

make_php_mailer() (

$mail = нов PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = вярно;

$mail->SMTPSecure = "tls";

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

$mail->Порт = 587;

$mail->Username = "Този имейл адрес е защитен от спам ботове. Трябва да активирате JavaScript, за да го видите »;

$mail->Парола = "xxx";

$mail->SetFrom(" Този имейл адрес е защитен от спам ботове. Трябва да активирате JavaScript, за да го видите ", "някой");

$mail->AddReplyTo (" Този имейл адрес е защитен от спам ботове. Трябва да активирате JavaScript, за да го видите ", "някой");

(заменете подходящите стойности за вашия SMTP сървър).

Възможни проблеми

След като добавите нов потребител, трябва да проверите дали началната директория е създадена. Може да се наложи да го създадете ръчно.

$ mkdir /начало/(потребителско име)

$ chown (потребителско име): (потребителско име) /начало/(потребителско име)

Връзката /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 не можете да влезете като root. Вместо това има потребител notroot, от който можете да влезете, но няма да имате привилегии на суперпотребител. Ако дадено приложение или скрипт трябва да има права на суперпотребител, вие сте принудени да въведете паролата, която сте въвели по време на инсталацията. В прозореца на конзолата можете да получите root достъп или със su (Debian) или sudo (Ubuntu, Fedora). Забележете единичните кавички около командата, когато използвате su - c!

$ su -c("команда")

$ sudo (команда)

Ако имате проблеми с изпълнението на sudo команди, трябва да добавите потребителя към файла /etc/sudoers. За да редактирате този файл, просто използвайте тази команда:

В този файл трябва да добавите още един ред след реда за notroot. Можете да използвате това:

(потребителско име) ВСИЧКИ=(ВСИЧКИ) ВСИЧКИ

Инструкции за инсталиране на допълнителни пакети за сървъра на Debian 6.0.

Следващите инструкции включват списъци с пакети, предоставени като пример, поради възможността за актуализиране на пакети, което може да доведе до промени, както в инструкциите, така и в работата с пакети като цяло.

Необходим софтуер за инсталиране

Общи пакети за изграждане на BOINC (въз основа на изискванията (Unix/Linux)):

Необходими пакети за сървъра BOINC:

libapache2-mod-php5

mysql-сървър-5.1

libmysqlclient-dev

python-mysqldb (или 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 корен -p

> ПРЕДОСТАВЯ ВСИЧКИ НА *.* НА "boincadm"@"localhost";

> ЗАДАЙТЕ ПАРОЛА ЗА "boincadm"@"localhost"="";

Разрешенията могат да бъдат ограничени само до база данни за проекти, по-късно; Дефинирането на празна парола опростява инсталацията, може да бъде променена по-късно.

Капсулирането на база данни на проекта е възможно само по-късно; Като зададете паролата на празна, вие ще опростите инсталацията, паролата може да бъде променена по-късно.

Можете също да инсталирате това с помощта на интерфейса phpmyadmin, достъпен чрез http:// (server-IP)/phpmyadmin

2. Инсталиране на сървъра

Изтегляне на изходния код на BOINC

Най-новата версия за разработка може да бъде изтеглена чрез:

$ git клонинг git://boinc.berkeley.edu/boinc-v2.git boinc-src

За да актуализирате изходния код, просто трябва да отидете в главната директория и да въведете:

$ cd ~/boinc-src

Най-новата версия на клиента може да бъде получена от уебсайта на BOINC. Обикновено не е необходимо сами да създавате клиентското приложение, тъй като сайтът предоставя автоматичен инсталатор.

Съвет, проверете за най-новите актуализации.

Компилиране на изходния код на проекта BOINC

Въведете следните команди в прозореца на конзолата:

$ cd ~/boinc-src

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

Скриптът за конфигуриране означава, че ще бъдат компилирани само сървърната част и допълнителните библиотеки - ако инсталацията е успешна, последният ред, отпечатан с помощта на скрипта, ще разкаже за това:

Компоненти за изграждане: (сървър на библиотеки) -

Обърнете внимание на съобщенията, генерирани от скрипта за конфигуриране, може да видите предупреждения като това:

проверка дали CFLAG "-include fcgi_stdio.h" работи... не

configure: ПРЕДУПРЕЖДЕНИЕ: fcgi-stdio.h не е намерен.

Деактивиране на FCGI. Няма да изгражда компоненти, които изискват FCGI

Ако това не доведе до грешки в скрипта, можете или да игнорирате предупрежденията, което може да доведе до възможни проблеми в бъдеще, или да инсталирате липсващите компоненти и да използвате повторно скрипта, за да получите допълнителна функционалност и да избегнете възможни проблеми.

Също така, ако, например, библиотеките на apache не бъдат намерени, тогава сървърът няма да може да компилира.

След успешно изпълнение на скрипта, трябва да изпълните командата:

[защитен с имейл]:~/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 (Превод на мрежови адреси). Един от методите може да бъде избран в настройките на VirtualMachine. Деактивирайте VirtualMachine, преди да промените тази опция. Препоръчително е да използвате мостов Ethernet.

Ако по някакъв начин промените MAC адреса на виртуалната машина (например чрез клониране на виртуалната машина), променете файла /etc/udev/rules.d/70-persistent-net.rules след стартиране на виртуалната машина. Файлът трябва да изглежда така:

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

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

# програма, изпълнявана от файла с правила persistent-net-generator.rules.

# Можете да го модифицирате, стига да запазите всяко правило на едно

# ред и променете само стойността на ключа NAME=.

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

# PCI устройство 0x8086:0x100e (e1000)

SUBSYSTEM== "net", ACTION== "add", DRIVERS=="?*", ATTR(адрес)== "08:00:27:bc:85:02", ATTR (dev_id)== "0x0 "", ATTR(тип)== "1", KERNEL== "eth*", NAME= "eth1"

Изтрийте реда, съдържащ NAME="eth0" и преименувайте eth1 на eth0. Използвайте команда:

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

След това рестартирайте виртуалната машина.

Повече информация за системата Debian можете да намерите на уебсайта на разработчика.

Мостов Ethernet

В този случай виртуалната машина се държи като отделна връзка в мрежата. Мрежовото сканиране ще покаже две отделни машини, вашата основна система и виртуална машина. Възможни са изходящи и входящи връзки.

# Основният мрежов интерфейс

iface eth0 inet static

адрес 121.132.134.0

мрежова маска 255.255.255.0

шлюз 121.132.134.1

dns-търсете yoursimpledomain.edu

dns-nameservers a.b.c.d

Където a.b.c.d е IP адресът на вашия DNS сървър (може да има няколко едновременно).

Редактирайте /etc/resolv.conf чрез добавяне

сървър на имена a.b.c.d

Където a.b.c.d е IP адресът на вашия DNS сървър.

Трябва също да добавите IP адреса и името на хоста на виртуалната машина към файла hosts. За да направите това, модифицирайте 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 (Редактиране > Мрежа), променете Приложен към:на NAT, щракнете Разширенотогава Пренасочване на портове.

Това е кратка версия на настройките на клиента BOINC за тези, които не обичат да четат много и веднага „се втурват в битка“. Въпреки изобилието от опции и възможности на BOINC, в повечето случаи можете да оставите всички стойности по подразбиране, наистина важни опции, които всеки трябва да конфигурира, според мен има само 3, които сега ще конфигурираме само в 4 стъпки. Снимките на екрана са от английската версия на клиента 6.12.26, имената на опциите са дадени на английски и дублирани в скоби от руския превод в текущата му версия (преводът може леко да се различава от версия до версия).

1. По подразбиране BOINC Manager работи в "опростен" режим, в който много необходими функции не са налични. Ето защо, ако не сте направили това преди, превключете в режим „разширен“ (Разширен изглед), като натиснете съответния бутон:


2. Отворете настройките на BOINC Manager:
Във версиите на програмата, започващи от 6.12.xx, те се намират в елемента от менюто Инструменти --> Компютърни предпочитания (Услуга --> Настройки на клиента)
В по-стари версии, по-специално 6.10.xx, в елемента Разширени --> Предпочитания (Разширени --> Настройки)

3. В раздела „използване на процесора“ задайте следните опции:


„Докато използването на процесора е по-малко от XX процента“ = 0
Тази опция напълно спира изчисленията, когато процесорът е зареден от потребителски програми (което означава всички програми, различни от самия BOINC, включително тези, които работят във фонов режим) повече от XX%. 0% означава игнориране на използването на процесора от други програми. Препоръчително е да зададете точно 0, т.к. изчисленията се извършват с най-нисък приоритет и не пречат на работата на други програми при нормални условия (тъй като изчислителните ресурси се преразпределят динамично в тяхна полза с помощта на ОС). Или можете да зададете своя собствена стойност, например 80-90% (т.е. да спрете изчислението само когато натоварването е тежко). Стойността по подразбиране (25%) не е добра - изчисленията ще спрат при най-малката активност на потребителя, както и, например, стартиране на фоново антивирусно сканиране или паралелно използване [защитен с имейл]

В случай, че искате да използвате само част от наличните в компютъра процесори/ядра за изчисления на BOINC, задайте го в следната опция: „На милипроцесорни системи използвайте най-много XX % от процесорите“ (В многопроцесорните системи използвайте XX % от общия брой процесори). Стойността е дадена в %, т.е. за да използвате само 3 ядра на 4-ядрен процесор, настройте го на 75%, 1 ядро ​​на 2-ядрен процесор - 50% и т.н.
При многоядрени/многонишкови процесори този метод също е за предпочитане за дроселиране/намаляване на натоварването (например в случай на прегряване) в сравнение с „използвайте най-много XX % CPU време“ (Използвайте не повече от XX % от всеки процесорно време ), защото дава по-„плавно“ натоварване на процесора и допълнително спестява RAM (чрез намаляване на броя на процесите/изчислителните модули, работещи паралелно).
Ако се предполага да използва всички ядра, тогава просто оставяме стойността по подразбиране, т.е. 100%.

4. В раздела "използване на мрежата" (мрежови настройки) в колоната "Допълнителен работен буфер XX дни" (Допълнителен буфер XX дни) задайте размера на кеша на заданията:


Голям брой задачи ще ви позволи да избегнете престой в случай на продължителни проблеми с интернет или повреди на сървърите на проекта. Препоръчителните стойности са от 2 до 8 дни. В този случай, колкото по-редовно работи компютърът, толкова повече можете да зададете размера на кеша на заданията. Редовност означава режима на работа на компютъра, идеалната редовност е работа в 24/7 режим (24 часа в денонощието, 7 дни в седмицата) или всеки ден, например, точно 10 часа. Офис компютрите (около 9/5 режим) също могат да се считат за доста редовни. Но ако компютърът се включва спорадично - не всеки ден и продължителността на работа всеки ден е различна, тогава е нежелателно да зададете голям кеш на задачите, т.к. клиентът ще направи големи грешки при изчисляването на необходимия брой задачи (на парчета), за да осигури наличността, която сте посочили (в дни) и в резултат на това може да бъдат изтеглени повече задачи, отколкото сте в състояние да изпълните навреме. Не препоръчвам да използвате елемента „Зареждане на задачи за XX дни“, за да зададете размера на кеша, т.к в допълнение към размера на кеша, той също така задава честотата на свързване със сървърите на проекта (в оригинала този елемент се нарича „Свързване на всеки XX дни“) и като зададете голяма стойност там, получаваме ситуация, че клиентът ще изчака няколко дни, преди да изпрати преброените задачи на сървъра и ще получи порция нови.

Ако се интересувате от по-подробна настройка или описание на някои опции, тогава четем пълната опция за настройка на BOINC, която се намира тук: (ще има връзка, когато тази пълна версия е готова)