Машина справедливости Вслед за краудфандингом приходит «крауд компьютинг»

Парадоксально, но человечество располагает одновременно крайне избыточными и крайне недостаточными вычислительными ресурсами. Сегодня даже телефон с инстаграмом и «злыми птичками» мощнее компьютера, при помощи которого запустили человека на Луну. В то же время даже суперкомпьютеры из списка Top500 (рейтинг самых мощных нераспределенных компьютерных систем мира) недостаточно хороши для решения ряда научных проблем. При этом очередь задач на суперкомпьютеры расписана на годы вперед, а наши личные десктопы и ноутбуки обычно загружены лишь на пару процентов.
Большинство вычислительных задач можно разбить на части. Поэтому современные процессоры имеют по несколько ядер, а более сложными вычислениями занимаются многопроцессорные системы. На этом фоне идея разделить большую задачу между множеством отдельных устройств выглядит естественной: если один компьютер молотит на разрыв, а другой лениво гоняет по экрану скринсейвер, то второй может помочь первому.
Так работают грид-вычисления (от англ. grid — решетка, сеть): тысячи и даже миллионы удаленных компьютеров с помощью интернета объединяются в единое целое. И если цель благородна, то и сила добровольцев будет велика. Так, под флагом борьбы с COVID‑19 был установлен абсолютный мировой рекорд производительности. Система Folding@home, в задачи которой входит поиск лекарства от коронавируса, в апреле 2020-го разогналась до 2,4 эксафлопса (Флопс — количество операций с плавающей точкой, выполняемых за одну секунду. Единица измерения, удобная для сравнения мощности вычислительных систем). Приставка «экса» означает число с восемнадцатью нулями, или миллион триллионов. Для сравнения: самый мощный суперкомпьютер «Фугаку» выжимает лишь 442 петафлопса, почти на три порядка меньше. А общая мощность всех машин из Top500, вместе взятых, достигла тех же 2,4 эксафлопса только к концу 2020 года.
Впрочем, цели у распределенных вычислений могут быть самые разные. Недаром англоязычный термин crowd computing (crowd — толпа) созвучен с краудфандингом — распространенной практикой финансирования стартапов через микроинвестиции частных лиц. С миру по нитке собирали средства и на Oculus VR, ныне ведущего производителя VR-очков, и на странное мыло против зомби. Распределенные вычисления стали популярны благодаря поиску инопланетян.
Инопланетный след
Volunteer Computing, или волонтерские вычисления, — явление почти такое же старое, как сам интернет. Как только первые персональные (в значении «личные») компьютеры объединились в сеть, возникли распределенные хранилища данных. Исторический пример такого хранилища — FIDO, современный — пиринговые сети вроде торрентов, в которых кусочки пиратских фильмов и программ можно скачивать с десятков компьютеров разных пользователей, никакого центрального хранилища не существует.
От распределенного хранения до децентрализованных вычислений был один шаг. Первым по-настоящему массовым проектом стал романтичный SETI@home. Выйдя из лабораторий NASA, он перешел на волонтерскую схему в 1999 году. С тех пор уже больше двадцати лет раскиданные по миру компьютеры пытаются вычленить в полученных из космоса радиошумах сигналы разумных цивилизаций. Увы, несмотря на колоссальные суммарные мощности, никаких следов инопланетной жизни энтузиасты пока не обнаружили.

Зато проект SETI@home оставил очень значительный след в сфере распределенных вычислений. Ради него была создана платформа BOINC, на сегодняшний день это наиболее удобный инструмент и для волонтеров, и для нуждающихся в их помощи ученых. Разработку SETI@home и BOINC возглавлял один и тот же человек — Дэвид Андерсон. Платформа напоминает всем известный «Кикстартер», на котором любой стартап может объявить краудфандинговую кампанию. BOINC позволяет научным группам привлекать волонтерские вычислительные мощности для своих исследований.
Сейчас к BOINC подключено приблизительно 100 тыс. участников. В распоряжении проекта от 400 до 800 тыс. устройств, суммарная мощность которых превышает 40 тыс. петафлопсов. Если бы BOINC был суперкомпьютером, он занял бы шестую строчку в Top500. Платформа заслуженно включена в Книгу рекордов Гиннесса как самая мощная вычислительная сеть в мире.

Kурс Флопса
Современный домашний компьютер, на минуточку, выдает порядка 100 млрд флопсов. Пожертвовать их на благо науки проще, чем лететь в Африку с медицинской миссией или ехать в тайгу тушить лес. Достаточно лишь установить приложение.
Системы Volunteer Computing мультиплатформенные. Они устанавливаются даже на игровые консоли, а иногда и вовсе отдают им приоритет. Ведь приставка — это полноценный компьютер с мощной видеосистемой, а приложения для распределенных вычислений предпочитают именно графические ядра, как программы для майнинга криптовалют. Упрощенно это объясняется так: центральный процессор компьютера содержит несколько сложных ядер, предназначенных для решения комплексных задач; на видеокарте размещены сотни простых ядер, заточенных на параллельное выполнение элементарных операций. Последнее — то что надо и для майнинга, и для науки.
Приложения для распределенных вычислений поддерживают Windows, Mac OS и Linux. Некоторые из них запускаются на телефонах и планшетах. Даже копеечные микрокомпьютеры Raspberry Pi, которые встраивают в детские игрушки и устройства домашней автоматизации, и те в деле.
Как и любая благотворительность, распределенные вычисления не бесплатны для волонтеров. Работающий компьютер потребляет примерно в полтора раза больше энергии, чем спящий. По подсчетам BOINC, месяц участия в исследованиях в среднем обойдется добровольцу в 40 лишних киловатт-часов электроэнергии. По московским тарифам это примерно 200 рублей.
, Научный руководитель проекта распределенных вычислений GERASIM@HOMEФеномен добровольных вычислений довольно распространен в России и за ее пределами, хотя и объединяет вокруг себя достаточную долю скептиков. Общая идея организации подобного вида параллельных вычислений следующая: во время серфинга в интернете или просмотра фильмов на YouTube процессор и видеокарта компьютера обычно не нагружены на 100 %, что позволяет отдать избыточные вычислительные мощности на благо науки (разумеется, с согласия пользователя, или, по устоявшейся терминологии, кранчера).Существует множество проектов добровольных распределенных вычислений, отличающихся своей научной направленностью: биология, астрономия, математика, физика и др. В проекте Gerasim@Home, научным руководителем которого я являюсь, производятся вычисления в области дискретной математики, эвристических методов и перечислительной комбинаторики. В настоящее время основные наши усилия сфокусированы на исследовании свойств диагональных латинских квадратов. Благодаря распределенным вычислениям мы получили ряд фундаментальных результатов.
Себе в карман
Одна из причин, по которым люди отказываются заниматься благотворительностью, — недоверие. Фонды регулярно публикуют отчеты о расходовании средств, однако шанс, что часть сборов расходуется не по назначению, всегда остается.
Нецелевое использование вычислительных мощностей тоже случается: можно сконцентрированные ресурсы направить как на поиск антивирусного препарата, так и на создание нового вируса или же просто майнить биткойны за чужой счет. Волонтер не может проконтролировать, над чем конкретно работает его компьютер.
Любое приложение для Volunteer Computing представляет собой чужое программное обеспечение, которому разрешен доступ в Сеть. А значит, это потенциальная дыра в безопасности компьютера — еще один повод доверять только проверенным проектам.
Концепцию распределенных вычислений критикуют не только из-за возможных злоупотреблений. Рассчитывая модель изменений климата, волонтеры сами же ускоряют глобальное потепление, увеличивая общемировой расход электроэнергии. Ранее Greenpeace предсказывал, что вклад облачных вычислений в парниковый эффект с 2007 по 2020 год будет эквивалентен выбросу в атмосферу 1000 мегатонн углекислого газа.
Но есть и противоположная точка зрения. Свежее исследование, проведенное по заказу Microsoft, показало, что применение распределенных вычислений для повседневных задач может снизить вклад дата-центров в глобальное потепление на величину от 30 до 90 %. Это связано с тем, что отдельные операторы создают собственные мощности для ресурсоемких задач, таких как стриминг видео или облачные сервисы. Если бы они делились друг с другом работой, суммарные мощности можно было бы значительно снизить.

Bысшая цель
При всех возможных минусах модель Volunteer Computing приносит пользу, причем не только исследователям, но и самим волонтерам. Стать ученым довелось далеко не каждому, но облачные вычисления способны подарить людям чувство причастности к самым продвинутым достижениям науки. Организаторы распределенных сетей работают над мотивацией участников, создают сообщества по интересам, присваивают им награды, раздают поощрительные призы. Участвовать в исследовании можно не только в фоновом режиме. Процесс бывает геймифицирован. Например, подключившись к моделированию климатических изменений, можно воочию наблюдать, как на Земле тают ледники и повышается уровень Мирового океана.

Есть что-то привлекательное и в самой идее свободного распределения ресурсов от тех, у кого они в избытке, к тем, кто в них нуждается. Из разряда теорий всеобщей справедливости, которые так и не смогли реализоваться в социальных сферах нашей жизни. Некоторые добровольцы надеются, что компьютерная модель послужит людям примером.
Использованные источники: Материал опубликован в журнале «Цифровой океан» № 4, 2021, AFP / East News, VCG / Getty Images, SPL / Legion-media, Andrey Rudakov/Bloomberg via Getty Images, Alamy, Imago / Legion-media, Chiradech / iStock, из архива ЭДУАРДа ВАТУТИНа
