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

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

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

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

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

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

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

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 петафлопс[4]. Для сравнения, пиковая производительность самого мощного суперкомпьютера Sunway TaihuLight — 93 петафлопс[5]. До середины 2011 года самым мощным суперкомпьютером являлся Тяньхэ-1А с производительностью «всего» 2,57 петафлопс[6]. Проект отмечен в Книге рекордов Гиннеса как самое большое вычисление[7].

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

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

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

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

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

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

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

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

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

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

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

Статистика участия в 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-е по количеству зарабатываемых очков в день.[8]

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

Литература[править | править вики-текст]