Идея использовать персональные компьютеры для того, чтобы решать ресурсоемкие задачи всем миром, начала витать в воздухе в середине девяностых. Одной из «первых ласточек» стал проект по поиску простых чисел Мерсенна (Great Internet Mersenne Prime Search, или GIMPS), запущенный в 1996 году — за год к сети GIMPS присоединилась тысяча участников. Однако большую известность добровольным распределенным вычислениям принес другой, более оригинальный проект. Один из подходов поиска внеземных цивилизаций, radio SETI (Search for Extra-Terrestrial Intelligence), основан на анализе данных с радиотелескопов. Специализированные суперкомпьютеры искали в эфире повторяющиеся узкополосные радиосигналы из космоса — естественные источники таких сигналов не известны, поэтому их обнаружение может дать подтверждение существования внеземной технологии. Дэвид Геди из Калифорнийского университета в Беркли предложил переложить обработку данных на виртуальный суперкомпьютер, состоящий из множества машин, подключенных к интернету. Идея нашла живейший отклик у пользователей: через полтора года после запуска, в октябре 2000 года, проект SETI@home (поиск внеземного разума на дому) насчитывал почти два с половиной миллиона активных участников сети.
Несмотря на перспективность технологии, найти инопланетян энтузиастам пока не удалось, и популярность SETI@home постепенно пошла на спад. Однако проект SETI@home показал, что глобальные задачи можно решать на добровольных началах, и разработчики созданного программного комплекса открыли возможность добавлять сторонние проекты. Благодаря этому BOINC (Berkeley Open Infrastructure for Network Computing, открытая платформа университета Беркли для распределенных вычислений) сегодня является универсальной площадкой для коллективного решения научных задач. На базе BOINC работают такие проекты, как WorldCommunityGrid, направленный на поиск методов лечения туберкулеза, рака и ВИЧ, Rosetta@home для вычисления трехмерной структуры белка по аминокислотным последовательностям, Einstein@home, участники которого ищут гравитационные волны, ClimatePrediction для построения прогноза того, как будет меняться погода на Земле в будущем. Полный список проектов доступен на сайте BOINC, а результаты завершенных исследований организаторы проектов публикуют на их официальных страницах.
Механизм участия в проектах везде одинаков: задача, сформулированная научным коллективом, разбивается на простые части, рассылается пользователям, у которых установлена специальная программа, персональные компьютеры проводят вычисления без участия пользователей и отсылают результат обратно на сервер. Для того чтобы присоединиться к одной из глобальных инициатив и пожертвовать свои вычислительные мощности ученым, пользователю придется потратить всего пять-десять минут. Достаточно загрузить BOINC Manager, зарегистрироваться в одном из понравившихся проектов и настроить клиент на комфортный режим работы — к примеру, чтобы вычисления запускались только во время простоя компьютера или велись постоянно, но задействовали только часть процессорного времени. Есть и проекты добровольных вычислений, не связанные с BOINC, к примеру, Folding@home. Тут вам потребуется установить еще одну программу для того, чтобы вместе с 85 тысячами других волонтеров сворачивать белки в поиске лекарств для таких нейродегенеративных заболеваний, как болезни Альцгеймера, Гентингтона и Паркинсона.
Инженер НИИ наукоемких компьютерных технологий Университета ИТМО Александр Вишератин отмечает, что при всех плюсах у платформ для добровольных вычислений есть существенные ограничения: они не дают никаких гарантий по производительности и времени вычислений. Одна и та же задача может считаться как неделю, так и год в зависимости от количества участников и того, сколько своих ресурсов они готовы предоставить.
«В динамично развивающихся научных проектах результат нужен чем быстрее, тем лучше, и крайне важно понимать сроки, чтобы планировать дальнейший ход исследования. Работая с суперкомпьютерами или GRID-кластерами, гарантирующими доступность и производительность ресурсов, мы всегда знаем и зачастую контролируем, сколько и каких ресурсов будет отдано в наше распоряжение. И здесь в игру вступает планирование вычислительных процессов, которым мы занимаемся на кафедре высокопроизводительных вычислений, — объясняет Александр Вишератин. — Надо не просто дать пользователю время, когда его задача будет выполнена, а максимально оптимально распорядиться доступными ресурсами так, чтобы удовлетворить различные запросы пользователей: минимизация времени выполнения, стоимости вычислений, если речь идет о платных ресурсах, соблюдение дедлайнов, обеспечение заданных показателей качества и так далее. О решении подобных задач для платформ добровольных вычислений речи не идет, поэтому основное направление их использования — это длительные исследования, такие как malariacontrol.net или Einstein@Home».
Студент кафедры информатики и прикладной математики Университета ИТМО и участник Science Slam ITMO University Максим Скороходов добавляет, что кроме распределенных вычислений, при которых добровольцы просто предоставляют свои вычислительные мощности, существуют проекты, активно вовлекающие пользователя в процесс решения научной задачи. К примеру, это игры Fold.It, участники которой сворачивают белковые молекулы вручную, и EyeWire, где геймеры создают трехмерную карту нейронов и связей между ними по реальным снимкам срезов сетчатки человеческого глаза.
«Структуру белка достаточно сложно подобрать алгоритмическими методами, поэтому для решения этой проблемы сделали такую игру. Или другой пример: в одном из хакатонов Science Hack Day участвовала команда, которая создает программу для удобного просмотра поверхности Марса, они это делали для поиска потерянного марсохода. Мне кажется, такими проектами проще заинтересовать людей, так как они видят цель, понимают, в чем будет заключаться их вклад», — комментирует Максим Скороходов.
Добавим, что на момент написания материала в сети BOINC насчитывалось около 500 тысяч активных участников, производительность компьютеров которых составляет 10,954 петафлопс. Это мощнее, чем японский K computer, занимающий сейчас пятую строчку рейтинга суперкомпьютеров TOP 500: его производительность составляет 10,51 петафлопс.