четверг, 15 июля 2010 г.

А вместе - мы сила

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

Что это такое? Это сложная математическая задача, разбитая на части так, что каждую часть можно обсчитать на отдельном компьютере. Если какой-то амбициозный проект не имеет достаточно вычислительных мощностей для решения задачи собственными силами, он может обратиться за помощью к сообществу. Каждый человек, желающий учавствовать в проекте, устанавливает на свой компьютер специальную программу, и подключается к тому проекту, который по его мнению интересен. После этого с головного сервера проекта на Ваш компьютер приходят задания, они обсчитываются на мощностях центрального процессора (CPU) и/или графического процессора (GPU), и результат отправляется назад на головной сервер. Далее приходит новое задание и т.д. Для использования Вашего GPU для рассчётов, Вам необходима одна из перечисленных видеокарт:
  • nVidia - с поддержкой CUDA;
  • ATI - чипсет как минимум AMD R600;
Популярные проекты могут насчитывать тысячи вовлечённых компьютеров по всему миру.

На данный момент самой используемой платформой для участия в распределённых вычислениях является BOINC. Версия, доступная на данный момент в Debian Squeeze - 6.10.17. Имеются также версии под Windows и Mac. Установить её просто:

sudo aptitude install boinc-manager boinc-client

BOINC состоит из двух компонентов:
  1. программа-демон, которая запускается во время старта системы и работает в фоне. Она-то и занимается обсчётом задач;
  2. графическая программа-менеджер, через которую можно подключаться к различным проектам, регулировать использование процессора, сети, и т.д.
Производительность компьютера от участия в распределённых вычислениях страдает не сильно. Во первых, использование ресурсов настраивается. Во вторых, все рассчётные задачи запускаются с nice приоритетом 19.

Итак, после установки выполняем команду "boincmgr", переключаемся в "Advanced View" ("Расширенный Вид"). В меню "Дополнительно => Настройки клиента" можно настроить использование процессора, GPU, сети, расписания и т.д. Чтобы подключиться к какому-либо проекту, выбераем из меню "Сервис => Attach to project or account manager...". В появившемся меню выбираем "Подключение к проекту", появится список проектов. Выбираем понравившееся проекты.

Наиболее известные на сегодня проекты:
  • SETI@Home - поиск радиосигналов внеземных цивилизаций;
  • Einstein@Home - проверка гипотезы Эйнштейна о существовании гравитационных волн;
  • Climate Prediction - прогноз изменений климата Земли в ближайшие 50 лет;
  • Docking@Home - поиск лиганд-белковых соединений, подавляющих развитие в организме вируса иммунодефицита человека (ВИЧ);
  • Cosmology@home - сравнение теоретических моделей Вселенной с современными астрономическими и физическими данными и поиск модели, наилучшим образом описывающей нашу Вселенную;
  • MilkyWay@home - попытка создания высокоточной трёхмерной динамической модели звёздных потоков в нашей Галактике;
  • Rosetta@home - вычисление третичной структуры белков из их аминокислотных последовательностей;
  • Folding@Home - компьютерная симуляция свёртывания молекул белка;
  • и другие.
Я пока что подключился к четырём проектам: Climate Prediction, Einstein@Home (недавно нашли новый радиопульсар), MilkyWay@home, Docking@Home.

Если задачи не приходят сразу, как было у меня с MilkyWay@home, не расстраивайтесь - это может быть связано с нагрузкой на серверы. Задачи через какое-то время всё равно начнут приходить.

В менеджере можно наблюдать за процессом обработки. На вкладке "Проекты" видна общая статистика по проектам. На вкладке "Задания" видны конкретные выполняющиеся задачи и их статус.



Можно также настроить потребление ресурсов.



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

Ссылки:

Комментариев нет: