Распределённые вычисления под Linux
Страница 2. BOINC


BOINC

Berkeley Open Infrastructure for Internet Computing (BOINC) – это весьма успешная, и уже очень популярная как среди авторов, так и среди участников проектов РВ вычислительная платформа, задача которой – унификация общих по функциональности модулей клиентского и серверного ПО различных проектов. Разработчикам распределённых научных проектов, учёным – специалистам в области биологии, медицины, криптографии и прочих наук – она пришлась по вкусу благодаря тому, что при её использовании им больше не нужно разбираться с такими скучными, и бесконечно далёкими от области их исследований вещами как организация системы регистрации пользователей, разработка системы статистики, отладка взаимодействия клиентского и серверного ПО, и т.д. Всё уже готово – придумано, написано и отлажено авторами BOINC. Остаётся брать и пользоваться. "Брать" предлагается любое ПО BOINC – от клиентского модуля до серверных PHP-скриптов – в исходниках, под лицензией GNU GPL, а "пользоваться" всем этим помогает доступная на сайте BOINC подробнейшая, GNU FDL-лицензированная, документация по созданию на основе этой платформы собственного проекта РВ с нуля.

Rosetta@home

Итак, пора перейти от теории к практике. Рассмотрим процесс присоединения к работающему на платформе BOINC проекту, на примере запущенного недавно Rosetta@home.

Rosetta@home – это научный проект, проводимый одной из лабораторий университета г. Вашингтона, результатами которого должны стать новые методы (алгоритмы), с помощью которых можно будет с высокой точностью заниматься моделированием, предсказанием и дизайном белков. Наличие проверенных алгоритмов моделирования поможет исследователям разрабатывать лекарства для различных вызываемых нарушениями их структуры болезней. Своим названием проект обязан лежащему в основе его клиентского ПО модулю Rosetta, который был изначально создан для предсказания трёхмерной структуры белка из его аминокислотной последовательности. Со временем, в Rosetta появились функции дизайна и предсказания белковых комплексов. Авторы проекта надеются продолжить постепенно улучшать используемые в Rosetta физическую модель и алгоритмы поиска. А помочь им в этом должны результаты проекта Rosetta@home.

Ядро Rosetta – это физическая модель макромолекулярных взаимодействий и алгоритмов поиска структуры с наименьшей энергией для заданной аминокислотной последовательности (при предсказании структуры белка), комлекса белок-белок (при расчёте стыковки белков), а также поиска аминокислотной последовательности с наименьшей энергией для заданной белковой структуры или комлекса белок-белок (при дизайне белков).

Для участия в проекте, нам прежде всего понадобится базовый клиент BOINC. Скачиваем с сайта https://boinc.berkeley.edu/ файл с самой свежей версией — на момент написания статьи это "boinc_5.2.7_i686-pc-linux-gnu" размером 3.4 МБ, и запускаем. Дистрибутив создаёт в текущем каталоге подкаталог BOINC, куда и распаковывает всё своё содержимое, после чего сообщает, что для запуска консольной версии BOINC следует использовать скрипт run_client, а для запуска версии с графическим интерфейсом – run_manager. Кроме того, он прописывает в этих скриптах полный путь к созданному подкаталогу, так что при необходимости куда-либо его его переместить, необходимо это учесть, и соответствующим образом их подправить.

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




Для подключения к проекту, прежде всего нужно указать URL его главной страницы
Зарегистрировать новый эккаунт теперь можно и из самого клиента - ранее, для этого приходилось идти на сайт
Всё готово!

На следующем экране мастера нужно либо указать E-Mail и пароль к уже созданному в проекте эккаунту, либо зарегистрировать новый (в этом случае пароль попросят ввести дважды).

Стоит отметить, что такая схема авторизации – по E-Mail и паролю – для BOINC относительно нова. Ранее, в основанных на нём проектах использовалась авторизация по секретному Account Key, выступавшему одновременно в роли и уникального идентификатора, и пароля на изменение информации. Кое-где такая схема используется и по сей день (в этом случае клиент BOINC корректно её обнаруживает, и вместо поля с вводом пароля появляется поле для Account Key); существенным её недостатком является отсутствие возможности зарегистрировать новый эккаунт прямо из клиента: необходимо идти на сайт проекта, регистрироваться там, ждать на почту заветный Account Key, и только после этого "подключаться" к проекту в клиенте BOINC.

После создания нового эккаунта, BOINC предложит настроить его параметры, открыв в браузере раздел настроек на сайте проекта. Впрочем, сделать это можно и позже, просто зайдя на сайте проекта в раздел Your Account и указав выбранные при регистрации адрес почты и пароль. Там настраивается выделяемое под проекты BOINC место на диске, можно установить режим работы клиента (допустим, можно сделать, чтобы он работал только в определённые часы), настроить отображаемую им графику (если она есть), и т.д. Во всех проектах BOINC есть не только личный "зачёт", в котором участники выстраиваются в порядке количества набранных ими за обработку блоков данных очков, но и командный, где соревнуются образованные ими команды. Поэтому там же, в разделе настроек эккаунта, есть возможность либо присоединиться к одной из команд (например к "Russia", объединяющей российских участников проекта), либо создать свою.

Вернёмся к "подключаемому" нами проекту. Сразу после присоединения можно открыть закладку Transfers, и увидеть, что BOINC уже вовсю занялся закачкой модулей, необходимых для участия в Rosetta@home. На сегодняшний момент – это около 17-ти мегабайт. Важно отметить, что подобный объём трафика довольно-таки нетипичен для проектов РВ. Обычно, совокупный объём всех скачиваемых даже во время первоначального присоединения к какому-либо проекту файлов в разы меньше этого значения, а для проектов, занимающихся криптографией или математикой — и вовсё, практически равен нулю.

Самым большим среди россыпи закачиваемых проектом Rosetta@home файлов является собственно расчётный модуль Rosetta – около 7 мегабайт. Очевидно, что загрузка этого модуля потребуется лишь при первоначальном подключении к проекту, ну и при выходе его более новых версий. Вторым по размеру является 6-мегабайтный файл с загадочным названием bbdep02.May.sortlib.gz не обновлялся аж с мая месяца (возможно даже 2002-го года), и не собирается, будем надеяться, слишком часто обновляться и в дальнейшем. Такое поведение довольно часто встречается среди распределённых проектов: скачанные при первоначальном подключении файлы в дальшейшем подвергаются повторному использованию настолько, насколько это является возможным.

На закладке Work уже отображается прогресс обработки текущего блока данных (пока нулевой, состояние – Downloading), затраченное на его обработку время, и так называемый дедлайн – т.е. финальная дата, до которой нужно обязательно посчитать этот блок и вернуть результат, иначе его отправят на обработку кому-нибудь другому.

К сожалению, каких-либо возможностей визуально оценить процесс моделирования (например, своими глазами увидеть создаваемую модель белка) Rosetta@home в данное время не предоставляет. Относится это не только к данному проекту, но и к большинству других, имеющих версии под Linux. Среди опробованных мною BOINC-проектов, графику под Linux на текущий момент показывает только Einstein@home. Однако, в скором времени наверняка можно ожидать изменения ситуации: последняя новость на сайте Rosetta@home сообщает о начавшемся тестировании новой версии скринсейвера (т.е. версии расчётного модуля с полноценной графической частью, наверняка и под Linux тоже). От других проектов тоже, логично ожидать выпуска в скором будущем Linux-версий с поддержкой визуализации расчётов, ведь в большинстве из них она написана под OpenGL, который портируется между платформами довольно просто.

Но, что-то мы отвлеклись. Возвращаемся к клиенту BOINC и видим, что закачка расчётных модулей Rosett'ы уже завершилась, и проект начал расчёты. Теперь можно свернуть окно BOINC Manager'а и заняться своими делами. Rosetta, равно как и любой другой современный проект распределённых вычислений, другим запущенным на компьютере программам никогда не помешает. Чтобы удостовериться, можно открыть top, и увидеть, что процесс rosetta_4.79 хотя и занимает 98% CPU, он при этом имеет самый низкий из возможных приоритет, а значит, как только CPU становится нужен любой другой программе, Rosetta тут же в нужном объёме его освобождает.


Окно BOINC Manager'а с информацией о назначенных компьютеру заданиях

Чтобы воспользоваться основным преимуществом BOINC — динамическим переключением между проектами, нужно присоединиться ещё хотя бы к одному проекту, а лучше — к нескольким. Не знаю кому как, но по-моему, участвовать одновременно в нескольких проектах гораздо интереснее, чем в каком-то одном. Тем более, что ничего сложного в этом нет: процесс подключения у всех BOINC-проектов идентичен с описанным на примере Rosetta@home.

 
« Предыдущая статья   Следующая статья »