Добровольные вычисления

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Участие в проекте добровольных вычислений с помощью клиента BOINC

Добровольные вычисления (англ. Volunteer computing) — распределённые вычисления с использованием предоставленных добровольно вычислительных ресурсов. Современные вычислительные системы для добровольных вычислений строятся на базе GRID-систем.

История[править | править вики-текст]

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

В 1994 году Дэвидом Джиди была предложена идея по организации массового проекта распределённых вычислений, который использует компьютеры добровольцев — SETI@home[1]. Научный план проекта который разработали Дэвид Джиди и Крейг Каснофф из Сиэтла был представлен на пятой международной конференции по биоастрономии в июле 1996 года[2].

В январе 1996 года стартовал проект GIMPS по поиску простых чисел Мерсенна.

28 января 1997 года стартовал конкурс RSA Data Security на решение задачи взлома методом простого перебора 56-битного ключа шифрования информации RC5. Благодаря хорошей технической и организационной подготовке проект, организованный некоммерческим сообществом distributed.net, быстро получил широкую известность[3].

17 мая 1999 года стартовал SETI@home на базе Grid, а в начале 2002 года завершилась разработка Калифорнийского Университета в Беркли открытой платформы BOINC (Berkeley Open Infrastructure for Network Computing), разрабатываемой с апреля 2000 года первоначально для SETI@Home, но первым на платформе BOINC стал проект Predictor@home запущенный 9 июня 2004 года.

Такие проекты распределённых вычислений в интернете, как SETI@Home и Folding@Home обладают не меньшей вычислительной мощностью, чем самые современные суперкомпьютеры. Интегральная производительность проектов на платформе BOINC по данным на 16 апреля 2012 года составляет 6,1 петафлопс[4]. Для сравнения, пиковая производительность самого мощного суперкомпьютера («Cray Titan», США) — 17,59 петафлопс[5]. До середины 2011 года самым мощным суперкомпьютером являлся Тяньхэ-1А с производительностью «всего» 2,57 петафлопс[6]. Проект отмечен в Книге рекордов Гиннеса как самое большое вычисление[7].

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

Участие в проектах распределённых вычислений[править | править вики-текст]

Общая схема участия[править | править вики-текст]

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

Привлечение и мотивация участников[править | править вики-текст]

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

Многие проекты создают среду для соревнования участников по объёму проделанных вычислений, как в личном, так и в командном зачёте. Вероятно, стимулом для участия в таких проектах является возможность «похвастаться» перед другими участниками доступными вычислительными ресурсами. Немаловажным фактором здесь является наличие подробной и красиво оформленной статистики о проделанной участниками работе, таблиц рейтингов, форумов для обсуждения проекта и т. п. — всё это образует социальную сеть для общения участников в среде единомышленников. При этом собственно цель вычислений проекта для многих из них уходит на второй план и становится не так важна, как, например, детали оформления сайта и клиентского программного обеспечения. Успешность такого подхода доказывает существование множества сайтов команд-участниц того или иного проекта (см. ссылки), которые добровольно и самостоятельно рекламируют выбранный проект и привлекают новых участников.

Некоторые проекты распределённых вычислений так или иначе финансируются и предлагают своим участникам денежное вознаграждение при достижении определённых результатов. В частности, проекты, занимающиеся поиском редких объектов (например, чисел специального вида), могут награждать конкретных участников, нашедших на своём компьютере очередной объект поиска. Такие проекты можно рассматривать как лотерею, в которой участники платят своими компьютерными ресурсами, вычисляя что-то полезное (или бесполезное), и имеют шанс выиграть приз. При этом шанс на успех прямо пропорционален вложенным мощностям — как и в лотерее: чем больше покупаешь лотерейных билетов, тем больше вероятность выигрыша.

Критика проектов распределённых вычислений[править | править вики-текст]

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

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

Организации, участвующие в проектах распределённых вычислений[править | править вики-текст]

Список проектов добровольных вычислений[править | править вики-текст]

Информация о ходе вычислений в рамках проекта Seti@home

Ниже приведен список наиболее популярных проектов распределённых вычислений в интернете. Более полный список практически всех существующих и существовавших проектов распределённых вычислений в интернете доступен на сайте Distributed Computing (англ.).

Биология и медицина[править | править вики-текст]

  • Biochemical Library — проект университета Вандербилта, основными целями которого являются выяснение структуры мембранных белков (мишени для лекарств), проектирование белков с новой структурой и функциями (фолдинг), понимание количественных отношений между химической структурой и биологической активностью (синтез лекарств).
  • CommunityTSC Drug Design Optimization Lab (D2OL)[8] — проект, прекративший исследования 15 апреля 2009 года. Был разработан Институтом Детских Болезней Ротберга (англ. Rothberg Institute For Childhood Diseases). Цель проекта заключалась в поиске лекарства от туберозного склероза, для чего проводилось моделирование «кандидата» и проверка его лекарственных свойств.
  • Correlizer — проект, целью которого является исследование корреляций между последовательностями в трехмерной структуре генома.
  • DrugDiscovery@Home — Российский проект, фолдинг белка (вычисление его структуры), скрининг баз данных биологически активных соединений.
  • DNA@Home — поиск последовательностей в молекулах ДНК, отвечающих за различные гены, с использованием вероятностных алгоритмов; исследование механизма транскрипции генов с использованием молекул полимеразы; исследование ДНК бактерий, вызывающих туберкулез и бубонную чуму[9].
  • evo@home — проект распределённых вычислений, целью которого является применение генетических алгоритмов для фолдинга белков.
  • grid.org — проект по поиску лекарства от рака (завершен 27 апреля 2007 года вследствие его передачи в сеть World Community Grid в качестве её первого проекта).
  • Find-a-Drug — проект по поиску лекарств от различных болезней путём расчёта докинга белков с различными молекулами (завершен в 2005 году).
  • FightMalaria@Home — моделирование докинга протеинов малярии.
  • Folding@Home — проект по расчёту третичной структуры белков.
  • Neurona@Home — моделирование поведения больших клеточных автоматов, составленных из нейронов[10].
  • NRG — проект в области молекулярного распознавания, вычислительной биологии и докинга[11].
  • Proteins@home.
  • Rosetta@home — фолдинг белка с самой низкой энергией.
  • Volpex@UH — имитация поведения белков в клеточной среде с целью разработки лекарственных препаратов[12].
  • Wildlife@Home — анализ видеоданных записи жизни в дикой природе.
  • World Community Grid — исследования, связанные с генетикой, а также с различными тяжёлыми заболеваниями человека. Решение научно-технических проблем, связанных с экологией, здоровьем, питанием и другими проблемами человечества.

Математика и криптография[править | править вики-текст]

  • Криптовалюты: Bitcoin, Litecoin, NXT и прочие, с помощью вычислений (proof-of-work и/или proof-of-stake) обеспечиваются процессинг и безопасность платёжной системы.
  • ABC@home[13] — проект по поиску ABC-троек, связанных с abc-гипотезой. Проект поддерживается Лейденским математическим институтом и Kennislink. По состоянию на февраль 2010 года, насчитывается более 5800 активных участников из 100 стран, с вычислительной мощностью 18,4 терафлоп (18,4 триллионов операций в секунду).[14]
  • AndrOINC — проект, направленный на взлом криптосистемы RSA (ключ — 1024 бит) для изделий Motorola.
  • Convector — проект, направленный на решение задачи оптимизации конструкции 10-элементной строительной фермы.
  • distributed.net — проекты по взлому RC5 полным перебором, поиск оптимальных линеек Голомба.
  • EulerNet — проект, связанный с поиском решений, подтверждающих справедливость обобщений гипотезы Эйлера.
  • Gerasim@Home — проект, направленный на исследование эвристических методов построения разбиений параллельных граф-схем алгоритмов.
  • GIMPS — проект по поиску простых чисел Мерсенна.
  • OProject@Home — проект, целью которого является анализ алгоритмов и доказательство проблемы Гольдбаха.
  • RainbowCrack.
  • SAT@home — проект, направленный на решение задачи о выполнимости булевых формул.
  • Seventeen or Bust — проект, занимающийся решением задачи Серпинского.
  • SZTAKI Desktop Grid[15] — проект, организованный венгерскими специалистами из SZTAKI — Számítástechnikai és Automatizálási Kutató Intézet (Научно-исследовательского института кибернетики и автоматизации Венгерской Академии Наук). Относится к области теории информации и помогает в изучении систем счисления. Занимается поисками матриц вплоть до 11 порядка (то есть 11 на 11 элементов), пригодных в качестве основания систем счисления. В качестве основания систем могут использоваться не только натуральные числа. Например, в двоичной системе нельзя непосредственно записать отрицательные числа и приходится вводить дополнительные условия или признаки. Данную проблему можно решить взяв за основание число «-2». Тогда при чётных степенях числа будут получаться положительные числа, а при нечётных отрицательные. Ещё более интересные математические возможности даёт использование в качестве основы не числа, а матрицы. В этом случае любой целочисленный вектор можно представить как конечное число нулей и единиц. Однако нахождение подходящих матриц дело не простое. На данный момент нет универсального и эффективного метода нахождения таких подходящих матриц. При успешном нахождении искомых систем счисления они могут найти эффективное применение в таких областях как сжатие данных, кодирование и шифрование информации. Кроме того, они интересны с геометрической точки зрения для изучения фрактальных наборов данных — одного из перспективных современных математических направлений. Несмотря на огромный объём необходимых вычислений, проект хорошо поддаётся распараллеливанию и удачно вписывается в концепцию распределённых вычислений.
  • SubsetSum@Home — решение задачи о нахождении подмножества среди элементов заданного множества целых чисел, сумма элементов которого равна искомому значению.
  • ZetaGrid — проверка гипотезы Римана (окончен в 2005 г.).

Естественные науки[править | править вики-текст]

Прочие[править | править вики-текст]

  • Ideologias@Home[16] — испанский проект, целью которого являются исследования в области социальных явлений (исследуется то, как люди в определённом регионе развиваются идеологически с течением времени по отношению к новым идеям).
  • Majestic-12[17] — английский проект распределённых вычислений одноименной компании, направленный на создание поисковой системы, способной составить «конкурентоспособную альтернативу Google»[18], но с более полной и глубокой базой данных проиндексированных интернет страниц. Работа Majestic-12 основана на использовании не процессорного времени, как большинство проектов распределённых вычислений, а интернет-канала пользователя, для того, чтобы его компьютер служил «сервером», собирающим информацию о различных интернет-сайтах, для предоставления поиска по ним.
  • Optima@home[19] — российский проект, целью которого является поиск минимума функции в различных задачах (например, расчет атомных кластеров молекул с использованием потенциала Морзе).
  • Surveill@Home[20] — проект, целью которого является мониторинг предопределённого множества web-сайтов с целью диагностики отказов и составления статистики производительности.

ПО для организации добровольных вычислений[править | править вики-текст]

  • Apache Hadoop
  • BOINC — открытая инфраструктура для распределённых вычислений Университета Беркли (Berkeley Open Infrastructure for Network Computing), распространяемая под лицензией LGPL.
  • Condor (англ.)
  • Globus Toolkit (англ.) — набор программ, значительно упрощающий создание и управление распределёнными вычислениями.

Статистика участия в BOINC-проектах[править | править вики-текст]

По состоянию на 7 апреля 2013 года зарегистрировано 2 563 466 участников BOINC-проектов, которые подключили 8 812 982 компьютеров (хостов).

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

Всего Активные
Участники 2 563 466 259 791
Хосты 8 812 982 442 507
Команды 98 055 22 649
Страны 251 238
Всего очков 1 436 484 956 800
Среднее количество очков за день (BOINC) 1 864 300 911
Операций с плав. точкой. В среднем в секунду 9 321 504,6 гигафлопс / 9 321,505 терафлопс

По данным основного сервера статистики BOINC-проектов в общем зачёте лидируют участники, зарегистрированные за США. Следом за ними идут Германия и Япония. Россия продолжает динамично развиваться, в настоящее время занимает 11-е место по сумме очков и 13-е по количеству зарабатываемых очков в день.[21]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]

Статьи о распределённых вычислениях[править | править вики-текст]