Установка boinc. Добровольные вычисления на вашей Linux-машине

BOINC клиент используется для расчётов заданий проектов добровольных распределённых вычислений на вашем компьютере. Подробнее об этом можно прочитать в нашей прошлой статье . Стандартный клиент поставляется с GUI интерфейсом, но, к сожалению, возможности конфигурирования в нём ограничены. Например, нет возможности использовать только некоторые видеокарты (GPU) в вашем компьютере.
Для решение этой проблемы можно настроить работу BOINC клиента, написав конфигурационный файл cc_config.xml и поместив его в основную папку с приложением (в которой находятся бинарные файлы boinc и boincmgr). Например, после установки BOINC из установочного файла с сайта, это будет ~/BOINC .
Создаём файл и открываем его для редактирования (естественно можно использовать и графический редактор):

touch ~/BOINC/cc_config.xml


nano ~/BOINC/cc_config.xml

Структура файла
Общий вид файла cc_config.xml таков:



...
...
...


...
...
...


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

Основные параметры, задаваемые в директиве options

1


Прерывать расчёт заданий и обновлять проекты (для подтверждения о приёме данных) при выходе. Этот параметр полезен, когда система работает с LiveCD/LiveUSB и при выключении данные не сохраняются. В обычной же системе этот параметр использовать не нужно.

1


Позволяет запускать несколько BOINC клиентов одновременно на одном компьютере (если есть разные директории с BOINC"ом). Обычно это не нужно т.к. удобнее считать всё в одном BOINC клиенте.

1


Разрешает управлять BOINC клиентом удалённо.

Имя_платформы


Задать имя платформы вручную. Обычно не требуется.

путь


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

filename


BOINC будет приостанавливать работу, когда запущено данное приложение. Нужно это если из-за BOINC"а ресурсоёмкие приложения начинают тормозить. Может быть задано несколько приложений.

filename


Тоже что и предыдущее, но приостановятся только GPU задания.

1


Выйти, когда все задачи будут посчитаны.

1


Получать только одно задание на каждое устройство. Полезно если не хотите нагружать компьютер на постоянной основе.

N


Не использовать заданный ATI GPU. Очень полезно. Если у вас несколько карт, то можно не считать на основной, но считать на всех дополнительных. Можно выбрать более одной карты. Нумерация с нуля.

N


Не использовать заданный nVidia GPU. Очень полезно. Если несколько карт, то можно не считать на основной, но считать на всех дополнительных. Можно выбрать более одной карты. Нумерация с нуля.

N

Задать произвольное количество потоков CPU. Можно ограничить количество используемых ядер. Также полезно для получения множества заданий разом, для их расчёта оффлайн (нахомячивание). После получения заданий, нужно удалить этот параметр, иначе будут считаться одновременно слишком много заданий.

1


Не использовать видеокарты для расчётов.

1


Обновлять проект сразу после отправки выполненных заданий. Позволяет уменьшить количество заданий в статусе ожидания подтверждения о приёме данных.

nseconds


Задержка в секундах до начала выполнения заданий после запуска клиента.

1


Использовать все доступные GPU. Помогает, если BOINC не хочет "видеть" какие-нибудь старые видеокарты.

Пример файла





0
2


Не выполнять расчёты на первой видеокарте. Использовать только два ядра ЦП (или потока при Intel HT).

Применение изменений
При изменении в директиве log_flags достаточно в BOINC Manager выполнить Дополнительно -> Перезагрузить файл спецнастроек. Для большинства изменений в Options необходим перезапуск BOINC.

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

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


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

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


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

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

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


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

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

Аппаратные конфигурации

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

Некоторые факторы:

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

Есть другой вариант, который позволит решить обе задачи, техническую и программную, это развернуть сервер на «облачном» пространстве.

Программное обеспечение

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

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

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

Виртуализация - это программная технология, которая позволяет устройству запускать различные операционные системы в отдельной «виртуальной машине» (virtual machine). Пример, она позволяет на компьютере с предустановленной операционной системой Windows запустить Linux, без необходимости установки системы Linux отдельно на жесткий диск, или же перезагрузки для смены системы. Виртуальные образы системы называются VM apps.

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

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

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

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

Преимущества виртуализации

Использование виртуализации в BOINC обеспечивает несколько преимуществ:

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

Установка сервера BOINC на Unix

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

Серверные программы BOINC работают как два разных пользователя:

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

Остальные программы запускается под обычными аккаунтами пользователей, называемыми «собственники проекта».

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

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

По умолчанию, директории созданные пользователем apache не доступны в сети. Это вызывает проблемы, к примеру, обработчик создает каталог в иерархии загрузки, он принадлежит (Apache, Apache), и файл деструктор (который работает как boincadm) не сможет удалить файлы.

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

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

Чтобы исправить права доступа на существующем проекте, сделайте следующее:

chmod 02770 upload

chmod 02770 html/cache

chmod 02770 html/inc

chmod 02770 html/languages

chmod 02770 html/languages/compiled

chmod 02770 html/user_profile

Вам также может понадобиться изменить владельца этих каталогов и всех их подкаталогов в boincadm/boinc. Если вы запустили несколько проектов на одном сервере, и хотите, изолировать их друг от друга, вы можете создать другого пользователя и группу для каждого проекта, и добавить права Apache для всех групп.

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

Некоторые правки MySQL

После установки MySQL, создайте аккаунт MySQL для владельца проекта. В качестве примера будет использовано имя boincadm , такое же как и у Unix аккаунта. Все MySQL аккаунты должны быть защищены паролем; в качесте примера использован пароль «foobar» (используйте что-то другое).

mysql - u root - p

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

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

Другие замечания:

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

MySQLclient замечания

  • · Настройте mysql с опцией - enable-thread-safe-client switch.
  • · Установите вашу LD_LIBRARY_PATH для обращения к правильной библиотеке.

Apache замечания

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

DefaultType application/octet-stream

Чтобы уменьшить частоту отказов в обслуживании, мы рекомендуем выключить индексацию каталогов, добавив - Indexes директиве Options.

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

AddHandler imap-file map

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

LimitXMLRequestBody 134217728

LimitRequestBody 134217728

Настройки PHP

Вам может понадобиться добавить GD и XML библиотеки на ваш PHP; Вы можете сделать это с помощью следующей команды:

yum install php-gd php-xml

затем перезагрузите Apache.

По умолчанию, BOINC использует PHP для рассылки писем участникам. С помощью sendmail. Если это не работает, вы можете использовать?PHPMailer, это очень гибкая система рассылки почты, вместо предыдущего. Необходимо сделать следующее:

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

make_php_mailer() {

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = true;

$mail->SMTPSecure = «tls»;

$mail->Host = «smtp.gmail.com»;

$mail->Port = 587;

$mail->Username = « Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script »;

$mail->Password = «xxx»;

$mail->SetFrom (" Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script ", "somebody");

$mail->AddReplyTo (« Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script », «somebody»);

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

Возможные проблемы

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

$ mkdir /home/{username}

$ chown {username}: {username} /home/{username}

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

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

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

В новых дистрибутивах linux, вы не можете войти в систему как суперпользователь. Вместо этого есть пользователь notroot, кем вы можете войти, но вы не будете иметь привилегии суперпользователя. Если приложение или скрипт должен обладать правами суперпользователя, вы вынуждены ввести пароль, который вы вводили при установке. В окне консоли вы можете получить правами суперпользователя либо с помощью su (Debian), либо sudo (Ubuntu, Fedora). Обратите внимание на одинарные кавычки вокруг команды при использовании su - c!

$ su - c {"command"}

$ sudo {command}

Если у вас есть проблемы выполнения команд sudo, необходимо добавить пользователя в файл /etc/sudoers. Чтобы отредактировать этот файл, просто используйте эту команду:

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

{username} ALL=(ALL) ALL

Инструкция установки дополнительных пакетов для сервера Debian 6.0.

Дальнейшая инструкция включает списки пакетов, представленные в качестве примера, по причине возможности обновления пакетов, что может привести к изменениям, как в инструкции, так и работы с пакетами в целом.

Необходимое ПО для установки

Обычные пакеты для сборки BOINC (основывается на требованиях (Unix/Linux)):

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

libapache2-mod-php5

mysql-server-5.1

libmysqlclient-dev

python-mysqldb (or MySQL-python)

libcurl4-openssl-dev

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

Пакеты необходимые для BOINC клиента и менеджера (В дополнение к библиотекам):

libcurl4-openssl-dev

libxcb-atom1-dev

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

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

Создание новой учетной записи пользователя BOINC

Лучший способ создания учетной записи пользователя boinc во время инсталляции в тот момент когда вас спрашивают имя пользователя и пароль. Введите "boincadm", или любое имя на ваше усмотрение, в качестве имени пользователя. В качестве имени по умолчанию будет использоваться "boincadm".

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

Следующий шаг, чтобы добавить пользователя "www-data" (сервер Apache) к группе вновь созданного пользователя:

$ usermod - G - a boincadm www-data

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

Создайте новую базу данных MySQL для пользователя.

$ mysql - h localhost - u root - p

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

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

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

Инкапсуляция базы данных проекта возможна только позже; Определив пароль пустым, вы упростите установку, пароль может быть изменен позже.

Вы так же установить это, используя интерфейс phpmyadmin доступны через http:// {server-IP}/phpmyadmin

2. Установка сервера

Скачивание исходного кода BOINC

Последняя версия разработок может быть скачена с помощью:

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

Чтобы обновить исходный код необходимо просто пойти в основной каталог и введите:

$ cd ~/boinc-src

Последняя версия клиента может быть получена с сайта BOINC. Обычно вам не надо самостоятельно собирать приложение клиент, так как на сайте представлен автоматический установщик.

Совет, проверяйте последние обновления.

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

Введите следующие команды в окне консоли:

$ cd ~/boinc-src

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

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

Build Components: (libraries server) -

Обратите внимание на сообщения, выдаваемые в ходе работы скрипта configure, возможно, будут выведены предупреждения наподобие этого:

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

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

Disabling FCGI. Will not build components that require FCGI

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

Так же если не найдены, к примеру, библиотеки apache, то скомпилировать сервер не удастся.

После удачного исполнения скрипта необходимо запустить команду:

boincadm@boincserver:~/server_stable> sudo make install

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

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

Это виртуальная машина для использования в качестве сервера BOINC. Она имеет все предпосылки сервера BOINC установлены, программное обеспечение BOINC-установки и компиляции и учетные записи пользователей и права доступа настроить. Он готов работать

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

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

Сетевой доступ.

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

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

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

# This file was automatically generated by the /lib/udev/write_net_rules

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

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

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

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

# PCI device 0x8086:0x100e (e1000)

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

Удалите строку, содержащую NAME= «eth0» и переименуйте eth1 на eth0. Используйте команду:

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

После этого перезагрузите виртуальную машину.

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

Bridged Ethernet

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

# The primary network interface

iface eth0 inet static

address 121.132.134.0

netmask 255.255.255.0

gateway 121.132.134.1

dns-search yoursimpledomain.edu

dns-nameservers a.b.c.d

Где a.b.c.d это IP адрес вашего DNS сервера (их возможно несколько одновременно).

Измените /etc/resolv.conf добавив

nameserver a.b.c.d

Где a.b.c.d это IP адрес вашего DNS сервера.

Вы также должны добавить IP-адрес и имя хоста виртуальной машины в файл хостов. Чтобы сделать это измените C:Windowssystem32driversetchosts (если в качестве хоста используется Windows) или /etc/hosts (в качестве root; если в качестве хоста используется Unix) используя текстовый редактор добавив к примеру:

121.132.134.0 debian6.localdomain

С помощью этого вы можете подключить клиента из вашей машины к виртуальной машине. Если вы используете прокси-сервер для доступа в Интернет, вы должны добавить «debian6.localdomain» в свой список исключений в вашем браузере. Вам будет не нужен прокси чтобы разрешить локальный адрес.

Кроме того, вы можете получить IP-адрес с помощью DHCP. Не рекомендуется делать это, поскольку клиенты будут путаться, если изменения IP-адрес. Чтобы сделать это, редактировать /etc/network/interfaces, добавив:

iface eth0 inet dhcp

Это будет работать, если в вашей сети есть DHCP сервер, настроенный на добавление IP-адреса новых хостов.

Чтобы изменения вступили в силу необходимо перезапустить виртуальную машину:

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

Тем не менее, это ограничение можно обойти, используя перенаправление портов. Чтобы сделать это, используйте VirtualBox Manager (Edit > Network), изменить Attached to: на NAT, нажать Advanced затем Port Forwarding .

The installer, then double-click the installer icon.

Install options

You can set install options by clicking the "Advanced" button on the configuration screen. The options are:

  • Program directory - where BOINC"s program files will be stored.
  • Data directory - where BOINC"s data files will be stored. This will be a hidden directory; its location is shown in the BOINC start up messages.
  • Use BOINC screensaver - Use the BOINC screensaver for the current user.
  • Service install - Run project applications under an unprivileged account. This provides increased protection against faulty applications, but it prevents BOINC from using your GPU, and it may cause graphics to not work with older applications.
  • Allow all users on this computer to control BOINC - If selected (public mode ), all users can control BOINC (attach/detach projects, etc.). If not selected (private mode ), the only users who can control BOINC are: the installing user, members of the Administrator group, and members of the "boinc_users" group. When other users run the BOINC Manager, they"ll be shown a dialog saying to contact the administrator to add them to the "boinc_users" group.

Running BOINC invisibly

To run BOINC invisibly, choose the "Service install" option, then delete the BOINC shortcut from the Start/Programs/BOINC and Start/Programs/Startup menus (locate BOINC in each menu, right-click, select Delete). You can still run the BOINC Manager by going to C:\Program Files\BOINC and double-clicking on boincmgr.exe

Error recovery

If you get an error error 1714 - the old installation can"t be removed when installing a new version of BOINC:

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

Mac OS X

  • the installer.
  • If your browser has not already done so, expand the zip archive by double-clicking on it in the Finder.
  • Double-click on the BOINC Installer application to run the installer, then follow the prompts.
  • Close the installer when it is finished. This will automatically launch the BOINC Manager.
  • If you want BOINC to be your screen saver, open System Preferences from the Apple menu. Select Desktop & Screen Saver and select BOINCSaver .
  • The default location for data directory of BOINC is /Library/Application Support/BOINC Data . You may want to exclude this folder from Time Machine backup system to prevent increase of backup data size.

It can the be built with the following commands

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

Alternatively a specific version (gitbranch and gittag) can be downloaded with the following command:

Running BOINC using Docker

You can run this image using Docker on any 64-bit Intel computer (Linux, FreeBSD, Mac, or Windows).

The image contains only the client. You can control it using a BOINC GUI running locally or remotely.

Using a bootable image

You can download a bootable image containing Linux and the BOINC client, write it to a USB stick, and boot from it. Currently one such image is available: PADOLF@home is based on Debian. It includes the 7.8.3 BOINC client and GUI, and has recent video drivers for AMD and Nvidia GPU support. Note: this is provided by volunteers, not by BOINC.

The Berkeley Installer

The Berkeley installer is available . It is a self-extracting archive. This type of installation requires that you be familiar with the UNIX command-line interface. The download files have names like boinc_7.2.23_i686-pc-linux-gnu.sh .

Here is an example. The archive is downloaded to the desktop. It is then moved to the home directory (~). Finally BOINC is unpacked and installed. All of this can be done within a regular user account; root privileges are not needed.

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

This creates a directory called BOINC/ under the home directory containing the following files:

Boinc The BOINC core client. boincmgr The BOINC Manager . boinccmd A command line tool for controlling a running core client. run_client A script that cd"s into the BOINC directory and runs the core client. run_manager A script that cd"s into the BOINC directory and runs the manager.

To start the client manually enter the following terminal commands:

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

The BOINC working directory can be moved elsewhere as you like, and can even be renamed. One common choice is ~/.boinc , since files and directories with names that begin with "dot" do not show up by default in Unix directory listings. Whatever the name, everything related to the BOINC client is contained within that directory, and you should always run the client and the manager from that working directory.

Build BOINC from source

You can build the BOINC client from source. Keep in mind that BOINC consists of both client and server software. To run BOINC on your computer you only need to build the client software.

Instructions for building BOINC from source are in a separate developer"s wiki. Start with these pages:

There is additional documentation on other web sites:

  • Installing and Running the BOINC client on Unix (from Spy Hill) - how to install and configure the client once you have built it

64 Bit Considerations

If you are running 64 bit Linux, you might have a problem with projects that issue 32 bit applications rather than 64 bit applications. To allow 32 bit applications to run on 64 bit Linux you must install 32 bit versions of certain shared libraries. The names of the packages containing the 32 bit libraries is different for each distro.

N.B. The commands given below are executed in a terminal window. To open, hit the key combination Ctrl+Alt+T. The sudo commands could ask for a password to temporarily give admin installation rights for the needed libraries. , closing the terminal or leave the terminal idle for 15 minutes will revoke these rights again.

Fedora

Three packages are required for 64 bit compatibility.

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

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

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

Ubuntu

Four packages are required for 64 bit compatibility (Read whole section before applying).

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

Install all 4 packages at once with the following steps:

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

If the above fails to get 32 bit work on e.g. World Community Grid or to at all install, these sets work on newer Linuxes

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

or alternate for Test4Theory:

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

The changes will not take effect until the client/daemon has been restarted. This too can be done in terminal, e.g. on Ubuntu with

Sudo service boinc-client restart

FreeBSD

  1. go to /usr/ports/net/boinc-client/, open the Makefile in a text editor
  2. change the CONFIGURE_ARGS=--disable-server as follows:
    1. on 32 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
    2. on 64 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
  3. do make install clean
  4. if you receive an error like "ELF 0 ....", make sure you have installed
    1. /usr/ports/emulators/linux_base-fc4 or higher
    2. sysctl kern.elf32.fallback_brand=3

There is additional information on installing, configuring and running BOINC on FreeBSD.

Используют платформу BOINC, которую разработали около десяти лет назад в Калифорнийском университете в Беркли. Первый шаг к участию в одном из них – установка программы BOINC Manager.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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