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

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

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

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

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

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

Такие проекты распределённых вычислений в Интернете, как SETI@Home и Folding@Home обладают не меньшей вычислительной мощностью, чем самые современные суперкомпьютеры. Интегральная производительность проектов на платформе BOINC по данным на 17 декабря 2016 года составляет 28,7 петафлопс. Для сравнения, пиковая производительность самого мощного суперкомпьютера (на 2016 год) Sunway TaihuLight — 93 петафлопс. До середины 2011 года самым мощным суперкомпьютером являлся Тяньхэ-1А с производительностью «всего» 2,57 петафлопс. Проект отмечен в Книге рекордов Гиннеса как самое большое вычисление.

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

Участие в проектах распределённых вычислений

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

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

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

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

В 2013 году запущен проект Gridcoin — криптовалюты, использующей технологию блокчейн, эмиссия которой связана с участием в научных распределённых вычислениях платформы BOINC, т.е. пользователи получают вознаграждение за «вычислительный вклад» в науку.

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

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

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

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

По данным основного сервера статистики BOINC-проектов в общем зачёте лидируют участники, зарегистрированные за США. Следом за ними идут Германия и Япония.

Примечания

Литература 
 Леонид Дурман «Гонки по вертикали. Числа Ферма от Эйлера до наших дней: начало, продолжение, окончание». Компьютерра, № 393—395, 2001.
 Региональные grid-сети, Мир ПК, № 08, 2005.

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