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

Постепенно к благому делу подключились несколько друзей, которые зарегистрировались с той же учетной записью. Именно тогда я понял, насколько важно правильно выбрать проект и настроить программу: иной раз маломощная машина с каким-нибудь Celeron или Turion вдруг вырывалась в локальный топ, если владелец позволял компьютеру работать без перебоев.

Фрагмент таблицы результативности компьютеров в одном аккаунте
Фрагмент таблицы результативности компьютеров в одном аккаунте
 

Выбираем проект

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

За пять лет я ознакомился с десятками проектов распределенных вычислений и принял длительное участие в восьми из них. Это астрофизические инициативы (theSkyNet POGS и Einstein@Home), медицинские (POEM@Home, Malaria Control, Rosetta@Home, SIMAP@Home, GPUGRID), а также студенческая сеть Leiden Classic, в которой моделируются различные задачи из области динамики в образовательных целях. Последняя примечательна тем, что любой участник может загрузить в нее свои расчетные задания.

Общая статистика учетной записи
Общая статистика учетной записи

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

Динамика наших вычислений в BOINC
Динамика наших вычислений в BOINC

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

Как официальный сайт, так и сам клиент BOINC отображает только 36 открытых проектов распределенных вычислений — самых известных и заслуживших хорошую репутацию. Всего же таких проектов больше сотни, и найти их бывает непросто. Многие анонсируются только внутри академической среды, на каких-то специализированных форумах и не находят широкой поддержки.

Сайт открытой статистики Free-DC сейчас показывает данные по 137 проектам на платформе BOINC, но и это не полный список. Например, российские проекты лучше всего искать на BOINC.ru.

 

Выбираем задания

У каждого проекта есть своя веб-страница с более подробным описанием. Здесь же можно задать индивидуальные настройки расчетов. Если в твоей учетной записи несколько компьютеров, то их можно распределить на группы (например, «дом» и «работа») и задать отдельные установки для групп.

Отдельные настройки для проекта Einstein@Home
Отдельные настройки для проекта Einstein@Home

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

Выбор приложений с ускорением на ГП
Выбор приложений с ускорением на ГП

Простые задания обрабатываются только на ЦП и ограничиваются базовым набором команд x86-64. Некоторые имеют специфическую оптимизацию для расширенных инструкций (например, AVX) и выполняются на таких процессорах гораздо быстрее.

Задание с AVX-оптимизацией
Задание с AVX-оптимизацией

Другие задания поддерживают архитектуру ARM и запускаются на смартфонах, планшетах, кластерах из Raspberry Pi, CubieBoard и прочих подобных девайсах. Единичные проекты (например, ЦЕРНа) выполняются в своей виртуальной среде и требуют установки VirtualBox.

Самые сложные задания используют для ускорения расчетов универсальные (шейдерные) процессоры видеокарты — uGPU. Иногда для этого подходит любая современная видеокарта, а иногда задание поддерживает, к примеру, только новые чипы AMD с архитектурой GCN или только GPU Nvidia с CUDA СС v.3.0 и новее.

 

BOINC как средство стресс-тестирования

В режиме постоянной обработки BOINC можно использовать для выявления сбоящего оборудования. Вместо пары часов прогрева в Prime’95 или OCCT он будет выполнять реальные задания и постоянно сверять правильность их решения. Никакой синтетический тест не сравнится с BOINC по эффективности длительного мониторинга

Один из компьютеров выполнил задание с ошибкой
Один из компьютеров выполнил задание с ошибкой

 

Делаем первые шаги

Клиент BOINC для Windows можно установить как приложение или как сервис. Второй вариант обеспечивает заданиям BOINC более стабильную работу, но опаснее в плане потенциальной угрозы для ОС. Также BOINC, работающий как сервис, не сможет использовать видеокарту для ускорения расчетов. В общем, это скорее вариант для серверов.

Упрощенный вид клиента BOINC
Упрощенный вид клиента BOINC

Сразу после установки BOINC он запустится с дефолтными настройками в упрощенном виде. Стоит переключиться на полный вид через верхнее меню или нажав Ctrl-Shift-A. Тогда на отдельных вкладках ты увидишь все уведомления, свои проекты, активные задания, сетевую активность, локальную статистику и использование дискового пространства.

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

 

BAM!

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

 

Время собирать Cobblestones

Если выделить любое задание в очереди и нажать на кнопку «Информация», то ты увидишь его описание. Каждая задача имеет свой расчетный объем вычислений — от нескольких тысяч до миллионов GFLOP (миллиардов операций с плавающей запятой одинарной точности).

Количество очков, которые начисляют за выполнение задания, завязано на эту сложность, а сами очки называются Cobblestones. Нужна эта величина в основном для сравнения трудозатрат. Один Cobblestone — это эквивалент объема вычислений, который выполняет эталонный процессор с производительностью 1 гигафлопс за 1/200 суток (то есть 432 миллиарда операций FP32).

При сравнимом объеме вычислений задания считаются с разной скоростью. Код может быть оптимизирован плохо, и тогда задание будет приносить тебе лишь пару очков в час, тогда как другие — десятки и сотни тысяч. Изначально эти очки не имели никакой ценности. Они лишь отражали относительный вклад в общее дело и помогали волонтерам подобрать задания, которые лучше всего раскрывают потенциал их железа. Ситуация изменилась с появлением криптовалют и проектов, в рамках которых выплачивают вознаграждение за научные расчеты.

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

Статистика расчетов
Статистика расчетов

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии