Павел Иевлев

Текст

Уравнение ресурсного неравенства невозможно решить простым перемещением слагаемых. Но из этого правила есть исключение: чтобы поделиться мощностью своего компьютера со всем миром, достаточно просто подключить его к Сети

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

Большинство вычислительных задач можно разбить на части. Поэтому современные процессоры имеют по несколько ядер, а более сложными вычислениями занимаются многопроцессорные системы. На этом фоне идея разделить большую задачу между множеством отдельных устройств выглядит естественной: если один компьютер молотит на разрыв, а другой лениво гоняет по экрану скринсейвер, то второй может помочь первому.

Так работают грид-вычисления (от англ. grid — ​решетка, сеть): тысячи и даже миллионы удаленных компьютеров с помощью интернета объединяются в единое целое. И если цель благородна, то и сила добровольцев будет велика. Так, под флагом борьбы с COVID‑19 был установлен абсолютный мировой рекорд производительности. Система Folding@home, в задачи которой входит поиск лекарства от коронавируса, в апреле 2020-го разогналась до 2,4 экса­флопса (Флопс — ​количество операций с плавающей точкой, выполняемых за одну секунду. Единица измерения, удобная для сравнения мощности вычислительных систем). Приставка «экса» означает число с восем­надцатью нулями, или миллион триллионов. Для сравнения: самый мощный суперкомпьютер «Фугаку» выжимает лишь 442 петафлопса, почти на три порядка меньше. А общая мощность всех машин из Top500, вместе взятых, достигла тех же 2,4 экса­флопса только к концу 2020 года.

Впрочем, цели у распределенных вычислений могут быть самые разные. Недаром англоязычный термин crowd computing (crowd — ​толпа) созвучен с краудфандингом — ​распространенной практикой финансирования стартапов через микроинвестиции частных лиц. С миру по нитке собирали средства и на Oculus VR, ныне ведущего производителя VR-очков, и на странное мыло против зомби. Распределенные вычисления стали популярны благодаря поиску инопланетян.

Читать на ЦО.РФ

Пища для размышлений Климатические изменения и еще 5 мировых проблем, которые может решить ваш компьютер

Процесс, когда тысячи и даже миллионы удаленных компьютеров с помощью интернета объединяются в единое целое, называется crowd computing. Получаемые колоссальные суммарные мощности позволяют замахнуться на самые сложные задачи.

Инопланетный след

Volunteer Computing, или волонтерские вычисления, — ​явление почти такое же старое, как сам интернет. Как только первые персональные (в значении «личные») компьютеры объединились в сеть, возникли распределенные хранилища данных. Исторический пример такого хранилища — ​FIDO, современный — ​пирин­говые сети вроде торрентов, в которых кусочки пиратских фильмов и программ можно скачивать с десятков компьютеров разных пользователей, никакого центрального хранилища не существует.

От распределенного хранения до децентрализованных вычислений был один шаг. Первым по-настоящему массовым проектом стал романтичный SETI@home. Выйдя из лабораторий NASA, он перешел на волонтерскую схему в 1999 году. С тех пор уже больше двадцати лет раскиданные по миру компьютеры пытаются вычленить в полученных из космоса радиошумах сигналы разумных цивилизаций. Увы, несмотря на колоссальные суммарные мощности, никаких следов инопланетной жизни энтузиасты пока не обнаружили.

Отец-основатель - ДЭВИД П. АНДЕРОН. Исследователь и изобретатель, сотрудник Лаборатории космических наук Калифорнийского университета в  Беркли. Помимо SETI@home и BOINC работал над системой «распределенного мышления» Stardust@home, в которой добровольцы распознавали и отмечали объекты на фотографиях, сделанных автоматической станцией «Стардаст».

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

Сейчас к BOINC подключено приблизительно 100 тыс. участников. В распоряжении проекта от 400 до 800 тыс. устройств, суммарная мощность которых превышает 40 тыс. петафлопсов. Если бы BOINC был суперкомпьютером, он занял бы шестую строчку в Top500. Платформа заслуженно включена в Книгу рекордов Гиннесса как самая мощная вычислительная сеть в мире.

Главный конкурент: Суперкомпьютер «КРИСТОФАРИ». Суперкомпьютеры — классическая альтернатива распределенным вычислениям. Владельцы сверхмощных систем, как правило, делятся компьютерным временем с учеными. Например, установка «Кристофари» была построена «Сбербанком» для обучения нейросетей, но используется и для анализа снимков компьютерной томографии легких.

Kурс Флопса

Современный домашний компьютер, на минуточку, выдает порядка 100 млрд флопсов. Пожертвовать их на благо науки проще, чем лететь в Африку с медицинской миссией или ехать в тайгу тушить лес. Достаточно лишь установить приложение.

Системы Volunteer Computing мультиплатформенные. Они устанавливаются даже на игровые консоли, а иногда и вовсе отдают им приоритет. Ведь приставка — ​это полноценный компьютер с мощной видеосистемой, а приложения для распределенных вычислений предпочитают именно графические ядра, как программы для майнинга криптовалют. Упрощенно это объясняется так: центральный процессор компьютера содержит несколько сложных ядер, предназначенных для решения комплексных задач; на видеокарте размещены сотни простых ядер, заточенных на параллельное выполнение элементарных операций. Последнее — ​то что надо и для майнинга, и для науки.

Проект Folding@Home направлен на создание компьютерной модели свертывания белка. Белки — ​это молекулярные машины, из которых строятся живые организмы. До недавнего времени ученые не могли предсказать пространственную структуру белка, даже зная его полную химическую формулу. Как если бы мастер имел полный набор деталей, но не мог собрать из них часовой механизм. Понимание того, как свертываются белки, позволило бы создавать новые лекарства на компьютере, а не подбирать вещества опытным путем. В декабре о решении «проблемы белка» объявила компания Google. Выполнить задачу помогла нейросеть DeepMind.


Приложения для распределенных вычислений поддерживают Windows, Mac OS и Linux. Некоторые из них запускаются на телефонах и планшетах. Даже копеечные микрокомпьютеры Raspberry Pi, которые встраивают в детские игрушки и устройства домашней автоматизации, ​и те в деле.

Как и любая благотворительность, распределенные вычисления не бесплатны для волонтеров. Работающий компьютер потребляет примерно в полтора раза больше энергии, чем спящий. По подсчетам BOINC, месяц участия в исследованиях в среднем обойдется добровольцу в 40 лишних киловатт-часов электроэнергии. По московским тарифам это примерно 200 рублей.

Эдуард Ватутин
Эдуард Ватутин, Научный руководитель проекта распределенных вычислений GERASIM@HOME

Феномен добровольных вычислений довольно распространен в России и за ее пределами, хотя и объединяет вокруг себя достаточную долю скептиков. Общая идея организации подобного вида параллельных вычислений следующая: во время серфинга в интернете или просмотра фильмов на YouTube процессор и видеокарта компьютера обычно не нагружены на 100 %, что позволяет отдать избыточные вычислительные мощности на благо науки (разумеется, с согласия пользователя, или, по устоявшейся терминологии, кранчера).Существует множество проектов добровольных распределенных вычислений, отличающихся своей научной направленностью: биология, астрономия, математика, физика и др. В проекте Gerasim@Home, научным руководителем которого я являюсь, производятся вычисления в области дискретной математики, эвристических методов и перечислительной комбинаторики. В настоящее время основные наши усилия сфокусированы на исследовании свойств диагональных латинских квадратов. Благодаря распределенным вычислениям мы получили ряд фундаментальных результатов.



Себе в карман

Одна из причин, по которым люди отказываются заниматься благотворительностью, — ​недоверие. Фонды регулярно публикуют отчеты о расходовании средств, однако шанс, что часть сборов расходуется не по назначению, всегда остается.

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

Любое приложение для Volunteer Computing представляет собой чужое программное обеспечение, которому разрешен доступ в Сеть. А значит, это потенциальная дыра в безопасности компьютера — ​еще один повод доверять только проверенным проектам.

Концепцию распределенных вычислений критикуют не только из-за возможных злоупотреблений. Рассчитывая модель изменений климата, волонтеры сами же ускоряют глобальное потепление, увеличивая общемировой расход электроэнергии. Ранее Greenpeace предсказывал, что вклад облачных вычислений в парниковый эффект с 2007 по 2020 год будет эквивалентен выбросу в атмосферу 1000 мегатонн углекислого газа.

Но есть и противоположная точка зрения. Свежее исследование, проведенное по заказу Microsoft, показало, что применение распределенных вычислений для повседневных задач может снизить вклад дата-центров в глобальное потепление на величину от 30 до 90 %. Это связано с тем, что отдельные операторы создают собственные мощности для ресурсоемких задач, таких как стриминг видео или облачные сервисы. Если бы они делились друг с другом работой, суммарные мощности можно было бы значительно снизить.

ГРАФИЧЕСКИЕ КАРТЫ Видеокарты создавались для игр. Их задача — выполнять максимальное количество рутинных операций в  единицу времени. В 2000-х программисты заметили, что графические карты хорошо справляются с более общими задачами, например с обработкой числовых массивов. А в 2010-х видеокарты стали главным орудием майнеров — добытчиков криптовалют.


Bысшая цель

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

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

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

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