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

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

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

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

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

sudo apt-get инсталирайте boinc-клиент boinc-мениджър

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

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

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

# Задайте това на 1, за да разрешите и на 0, за да забраните началния скрипт. ENABLED="1"

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

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

Кликнете СЛЕДВАЩИЯбутон

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

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

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

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

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

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

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

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

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

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

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

sudo apt-get инсталирате ia32-libs libstdc++6 freeglut3

След това инсталирайте главния клиент:

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

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

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

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

boinccmd --project_attach URL удостоверяване

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

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 клиента

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

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

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

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

Избор на проекти въз основа на наличните ресурси

При извършване на научни изчисления производителността на FPU единиците, които извършват изчисления с плаваща запетая, играе важна роля. Точността на изчисленията може да варира. Обикновено се говори за три типа, прилагани на практика:

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

Последният тип изчисления (FP64 или binary64 според стандарта IEEE 754) е най-търсен в BOINC и други изчисления. научни програми, тъй като ви позволява да работите със стойности в диапазона от ≈ 10 -308 до 10308 с точност до 15 знака след десетичната запетая. Делът на изчисленията с единична точност обаче също е много голям и дори достатъчен за отделни проекти.

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

Архитектура и изчислителна скорост на типове FP32 и FP64 на някои видеокарти

Ако по-рано nVidia доминираше в този сегмент (включително чрез пускането на ускорители на Tesla със същата архитектура), сега все повече и повече проекти гледат към AMD (ATI).

Пример за стартиране на BOINC проекти на AMD видеокарта

Има и проекти, които поддържат ускорение на видеокарти AMD, но не работят с продукти на nVidia.

BOINC проекти с ексклузивна поддръжка за AMD графични карти

Вероятно това се дължи на факта, че при висока скорост на изчисления FP32 видеокартите на nVidia на чипа GK104 демонстрират силен спад в производителността при изчисления тип FP64. Например, ако Radeon HD 6930 извършва изчисления с двойна точност четири пъти по-бавно, отколкото с единична точност (съответно 480 и 1920 гигафлопа), тогава GeForce GTX 680 е двадесет и четири пъти по-бавен (128 и 3090 гигафлопа).

Когато „Последно“ не означава „Най-добро“

Използването на по-модерни чипове само по себе си не винаги означава увеличение на скоростта. Например, HD 6850 не е способен на изчисления с двойна точност, но HD 5850 извършва изчисления FP64 с до 418 гигафлопа.

Видеокартите от най-висок клас често имат производителността на многопроцесорен сървър. Например видеокарта с чип HD 7970 съдържа 2048 изчислителни ядра, комбинирани в 32 блока. Теоретичната му производителност е 3789 гигафлопа за операции с единична точност и 947 гигафлопа за операции с двойна точност.

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

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

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

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

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

Например, ефективността на евтина видеокарта Radeon HD 7770 е 16 гигафлопа на ват при изчисления FP32, но използването й за изчисления FP64 е неоправдано - тук ще демонстрира резултат от само 1,0 гигафлопа на ват. Дори чипът 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:

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

Mac OS X

  • инсталатора.
  • Ако вашият браузър все още не го е направил, разгънете zip архива, като щракнете двукратно върху него във Finder.
  • Щракнете двукратно върху Инсталатор на BOINприложение, за да стартирате инсталатора, след което следвайте подканите.
  • Затворете инсталатора, когато приключи. Това автоматично ще стартира BOINC Manager.
  • Ако искате BOINC да бъде ваш скрийнсейвър, отворете Системни предпочитанияот менюто на Apple. Изберете Десктоп и скрийнсейвъри изберете BOINCSaver.
  • Местоположението по подразбиране за директория с даннина BOINC е /Library/Application Support/BOINC Data . Може да искате да изключите тази папка от системата за архивиране на 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 памет и да стартирате от него. В момента е налично едно такова изображение: PADOLF@home е базиран на Debian. Той включва 7.8.3 BOINC клиент и GUI и има скорошни видео драйвери за поддръжка на AMD и Nvidia GPU. Забележка: това се предоставя от доброволци, а не от BOINC.

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

The Инсталатор на Бърклие на разположение. Това е саморазархивиращ се архив. Този тип инсталация изисква да сте запознати с интерфейса на командния ред на 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 Скрипт, който се вписва в директорията BOINC и изпълнява основния клиент. run_manager Скрипт, който се вписва в директорията 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. The 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 инсталирайте 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 инсталирате ia32-libs libstdc++6 libstdc++5 freeglut3

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

Sudo apt-get инсталирате gcc-4.7-multilib libstdc++6 libstdc++5 freeglut3 lib32z1 lib32ncurses5 lib32bz2-1.0

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

Sudo apt-get инсталирате 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=--disable-сървър --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
    2. на 64-битова FreeBSD го променете на
      CONFIGURE_ARGS=--disable-сървър --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 server 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 трябва да имат umasks, което позволява на групата да чете и променя файлове. Къде трябва да добавите тази опция зависи от вашата операционна система. Обикновено можете да използвате umasks 0002 или 0007.

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

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

chmod 02770 качване

chmod 02770 html/кеш

chmod 02770 html/вкл

chmod 02770 html/езици

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

chmod 02770 html/потребителски_профил

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

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

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

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

mysql - u root - p

СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ "boincadm"@"localhost" ИДЕНТИФИЦИРАН ОТ "foobar";

Това дава на boincadm достъп до всички MySQL бази данни, разположени на хоста; ако използвате MySQL за други цели на хоста, задайте разрешенията да бъдат по-рестриктивни.

Други бележки:

  • · Добавяне на MySQL програми към променливата на средата PATH на boincadm. (обикновено се намират в /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 приложение/октетен поток

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

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

AddHandler imap-файл карта

Apache има ограничение за размер на заявката по подразбиране от 1 MB. Ако вашият проект има вероятност да надвиши този размер (големи изходни файлове, големи съобщения за планиране на заявки), увеличете го до 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->Хост = "smtp.gmail.com";

$mail->Порт = 587;

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

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

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

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

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

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

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

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

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

Връзката /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, в който можете да влезете, но няма да имате root права. Ако приложението или скриптът трябва да имат права на суперпотребител, вие сте принудени да въведете паролата, която сте въвели по време на инсталацията. В прозореца на конзолата можете да получите 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-данни

Конфигурация на MySQL сървър

Създайте нова MySQL база данни за потребителя.

$ mysql - h localhost - u корен - p

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

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

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

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

Можете също да инсталирате това чрез интерфейса phpmyadmin, достъпен чрез http:// (сървър-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" работи... не

конфигуриране: ПРЕДУПРЕЖДЕНИЕ: fcgi-stdio.h не е намерен.

Деактивиране на FCGI. Няма да създава компоненти, които изискват 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

# програма, изпълнявана от файла с правила 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(type)== "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-name servers 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 (Edit > Network), променете Приложен към:към NAT, щракнете Разширенотогава Пренасочване на портове.

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

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


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

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


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

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

4. В раздела „използване на мрежата“, в колоната „Допълнителен работен буфер XX дни“, задайте размера на кеша на задачите:


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

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