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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Участие в проекте добровольных вычислений с помощью клиента 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]

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

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

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

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