Библиотека сайта rus-linux.net
Добровольные вычисления на вашей Linux-машине
Оригинал: Using your Linux box for volunteer computing
Автор: Peter Enseleit
Дата: 31 марта 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 3 апреля 2008
Любой из нас может помочь человечеству в решении глобальных проблем, таких как слежение за болезнями и прогнозирование погоды, просто задействуя свои компьютеры в решении сложных вычислительных задач. Концепция, известная под названием добровольные вычисления, помогает по всему миру университетам и исследовательским институтам, создающим проекты с зачастую гуманитарными целями, такими как прогнозирование и контроль распространения малярии в Африке.
Чтобы принять участие в этом добром деле, нужно скачать и установить клиентское программное обеспечение, которое будет время от времени подгружать новые вычислительные задания для вашего компьютера, который вне всякого сомнения иногда простаивает без дела. После завершения задания, компьютер отсылает результат на центральные компьютеры проекта, где он становится частицей решения одной большой вычислительной задачи. Задействуя компьютеры по всему миру, такие проекты получают гигантскую вычислительную мощь, которая иначе не была бы доступна. Таким образом, решения будут найдены быстрее, и проект быстрее достигнет своих целей. Такая форма распределенных вычислений стала популярной благодаря проектам SETI@home и Folding@home, на данный момент для участия открыто огромное количество проектов. Задачи их разнятся от поиска лекарств от болезней до рендеринга трехмерной анимации. Давайте посмотрим, как можно поучаствовать в таких добровольных проектах, если у вас установлена ОС Linux.
BOINC
Berkeley Open Infrastructure for Network Computing (BOINC) - это полноценная платформа для распределенных вычислений, которая включает как продвинутое клиентское ПО, позволяющее пользователям участвовать в добровольных вычислениях, так и серверную часть для организации таких проектов. Таким образом, любой может организовать свой проект, лишь бы были навыки администрирования Linux и целеустремленность. Довольно много добровольных вычислительных проектов по всему миру основаны на платформе BOINC. В их числе и World Community Grid. Список всех доступных BOINC-проектов и проектов World Community Grid настолько велик, что удовлетворит запросы любого человека, желающего задействовать свой компьютер в каких-либо благих целях.
Для запуска BOINC-клиента необходимо как минимум процессор Pentium 500 МГц, 64 Мб оперативной памяти и 50 Мб места на диске. BOINC-клиент доступен для скачивания из репозиториев Linux, таких как Gentoo, Fedora, Debian и Ubuntu. В Debian и Ubuntu для установки можно воспользоваться либо графической утилитой Synaptic, либо установить пакеты из командной строки:
sudo apt-get install boinc-client boinc-manager
Эта команда установит BOINC-клиент как службу, которая будет работать в фоновом режиме. Если в вашем репозитории нет BOINC-клиента, можно скачать его с веб-сайта проекта BOINC; для установки следуйте инструкциям в Release notes.
Если у вас Ubuntu, то свежеустановленный BOINC-менеджер можно запустить из меню Applications -> Accessories -> BOINC Manager. В отличие от версий BOINC-клиента для Windows и Mac, Linux-версия поставляется без хранителя экрана. Вся работа проделывается молча и ненавязчиво, в фоновом режиме, независимо от вашего хранителя экрана.
Присоединиться к проекту можно прямо из BOINC-менеджера. Выберите пункт меню Advanced View -> Advanced -> Attach to Project. Введите URL-адрес проекта, к которому хотите присоединиться, свой email-адрес и пароль. Если не возникнет проблем, вы присоединитесь к проекту. Произойдет загрузка первого задания от проекта, и ваш BOINC-клиент начнет его обработку.
Настройте, какую долю вычислительных ресурсов вашего компьютера будет использовать BOINC. Это делается в BOINC-менеджере в диалоговом окне Preferences. Можно ограничить количество часов работы клиента, установить какую долю процессорного времени занимать вычислениями, ограничить использование места на диске, оперативной памяти и сетевого трафика.
Чтобы задействовать ресурсы своего компьютера сразу в нескольких проектах, нужно воспользоваться менеджером аккаунтов. На данный момент их два: это BOINC Account Manager и GridRepublic. Менеджер аккаунтов - это веб-сайт, позволяющий настраивать BOINC-клиент, выбирать в каких проектах участвовать и просматривать статистику по работе, выполненной вашими клиентами. Также можно настроить так, чтобы один аккаунт использовался на нескольких компьютерах, причем у каждого будут свои настройки по ограничению на количество используемых ресурсов и время работы.
После установки менеджера аккаунтов нужно настроить локальный BOINC-менеджер на соединение с ним. После установки соединения BOINC-клиент на вашем компьютере заберет настройки, указанные в менеджере аккаунтов и будет работать уже согласно им. Эта схема удобна, когда вы установили BOINC-клиенты как на рабочем, так и на домашнем компьютере - ведь таким образом получается некий центр управления ресурсами.
Я настроил свой BOINC-клиент так, чтобы он начинал работать спустя три минуты бездействия, так что он совсем не будет мешать моей работе с компьютером. Даже после того, как он начинает свою работу, я все еще могу с комфортом пользоваться OpenOffice.org Writer и GIMP, путешествовать по интернету и слушать музыку. Когда нагрузка процессора и потребление памяти достигает определенной границы, BOINC-клиент переходит в спящий режим до тех пор, пока снова не встретится трехминутная пауза.
Folding@home
Клиент Folding@home для Linux - это консольное приложение, у которого нет какого-либо пользовательского интерфейса или хранителя экрана, в отличие от версий для Windows и Mac. Он способен обрабатывать задания лишь от одного проекта, целью которого является "понимание процессов сворачивания белка и связанных с этим заболеваний". Установка клиента включает в себя загрузку исполняемого файла, выставление права на выполнение и запуск. Вики проекта Folding@home содержит исчерпывающие указания.
При первом запуске клиента вам зададут несколько конфигурационных вопросов, включая и то, сколько памяти следует использовать и с каким приоритетом запускать процесс вычисления. Затем как и в BOINC, произойдет загрузка первого задания и начнется его выполнение, т.е. вычисление.
Клиент Folding@home не столь гибок в настройке, как BOINC-клиент. На моей машине он работает постоянно, вне зависимости от нагрузки процессора в каждый момент времени. При запуске моего "тяжелого" процесса клиент не переходит в спящий режим. Но в любом случае, выполнении таких повседневных задач, как работа с текстами, путешествия по интернету и прослушивание музыки мало требовательны к ресурсам компьютера, так что такую легкую агрессию со стороны клиента Folding@home можно и перетерпеть.
distributed.net
Клиент distributed.net для Linux - также консольное приложение. Он используется лишь в двух проектах: поиск оптимальных линеек Голомба (хотите узнать подробности, добро пожаловать на страницу проекта) и взлом алгоритма шифрования RC5-72.
При первом запуске клиента вам будет предложено изменить конфигурацию. Здесь надо будет ввести свой email, который будет ассоциировать вас с проектом, определить режим работы при использовании батарей (если у вас ноутбук), заполнить список приложений, которые должны блокировать работу клиента, установить приоритет вычислительного процесса, выбрать количество задействованных процессоров и нагрузку сети.
В соответствии с показаниями моего системного монитора, клиент distributed.net полностью использует ресурсы моего процессора. Он нагружает оба ядра моего процессора и не уходит в спящий режим при запуске приложений. Но удивительно, хотя системный монитор и показывает загрузку процессора 95-100%, но заметного ухудшения производительности не наблюдается - я спокойно использую обычные приложения. Однако будем объективными - под такой нагрузкой Baobab (анализатор свободного места на диске) затрачивает больше времени на сканирование моей файловой системы, чем обычно.
Вопросы безопасности
Фактически добровольные вычисления дают внешним приложениям доступ к ресурсам вашего компьютера, поэтому есть смысл задуматься о безопасности. Организаторы проекта Folding@home заверяют своих пользователей в том, что прилагают все усилия для обеспечения безопасности. Среди них есть и 2,048-битная цифровая подпись на все данные, которые поступают и исходят от вашего компьютера. С другой стороны, организаторы distributed.net открыто заявляют, что их клиенты одно время были использованы злоумышленниками для распространения троянских программ. На странице безопасности BOINC упомянуты опасности, которые подстерегают компьютер добровольного участника вычислений. Компания борется с каждой из них, для борьбы против вирусов используется шифрование с открытым ключом. В любом случае, организаторы проекта BOINC заявляют, что "участники должны понимать, что участвуя в проектах BOINC, они подвергают свои компьютеры угрозе". Очевидно, есть смысл самому поискать информацию о проекте, в котором вы хотите поучаствовать, а также о соответствующих клиентах.
Заключение
Можно найти больше информации по добровольным вычислениям на сайте GridCafe. Там же проводятся дискуссии по поводу других форм распределенных вычислений, в том числе и коммерческих.
Все описанные в статье клиенты позволяют участвовать в добровольных вычислениях, имея машину с установленной ОС Linux. Клиент Folding@Home задействует ваш компьютер в благородных целях, а именно в разработке лекарства от болезней, связанных с белками. Среди всех клиентов, описанных здесь, он является наименее конфигурируемым, но на моем компьютере он честно выполняет свою работу и при этом оказывает наименьшее влияние на мою работу. Клиент distributed.net делает упор на решение математических задач. Я указал ему, что требуется задействовать оба ядра, и были задействованы оба, причем на полную мощность. Однако это не помешало мне работать с обычными настольными приложениями. В легкости установки и использования несомненным победителем выходит BOINC-клиент. Его доступность во многих репозиториях пакетов означает, что можно установить его с минимальными затратами времени и сил. Платформа BOINC предоставляет простой пользовательский интерфейс с гибкими настройками, касающимися использования вычислительных ресурсов. Наконец, любой человек может сделать свой выбор из огромного числа проектов, основанных на этой платформе, и начать таким образом содействовать решению мировых научных проблем.