Помощь учёным, майнинг криптовалют, поиск далёких галактик: как использовать ресурсы «спящего» компьютера


c151eb51c0fb-original.jpg

Обозреватель vc.ru выяснил, как использовать ресурсы «спящего» компьютера — аппаратные и сетевые, — чтобы они не простаивали без дела.

Значительная часть ресурсов компьютера часто простаивает — владелец отходит заварить чай или участвует в планёрках; купил «игровой ноутбук», а времени вот уже третий месяц хватает только на работу; развернул небольшую ферму видеокарт, но бросили майнить или заниматься рендерингом — да мало ли что ещё.

Зачем это делать

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

Идейные основы распределённых вычислений были заложены уже давно. Первый опыт обращения к ресурсам «простаивающих» устройств относится ещё к 1973 году, когда двое сотрудников исследовательского центра Xerox PARC — Джон Хапп и Джон Шох — написали программу, которая по ночам проводила расчёты на компьютерах, подключённых к локальной сети центра.

Двадцать лет спустя, в 1993 году Эрик Шмидт, работавший тогда в Sun Microsystems, заявил: «Когда сеть станет такой быстродействующей, как процессор, компьютер как таковой перестанет существовать, он распространится по сети». Эта мысль легла в основу концепций облачных сервисов и гридов, при взаимодействии с которыми пользователю уже не важно, насколько быстро работает его устройство, а имеет значение только пропускная способность канала. 

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

Уже через год после выступления Шмидта была предложена идея проекта добровольных распределённых вычислений, ставшего в итоге самым известным из них — SETI@Home, занимающегося поиском сигналов от внеземных цивилизаций.

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

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

Например, Дэвид Андерсон — глава SETI@home — видит в развитии распределённых вычислений возможность создания того, что он называет «базирующейся на Интернете всемирной операционной системы» — Internet-scale Operating System (ISOS), в которой пользователи смогут не только делиться своими ресурсами, но и зарабатывать на этом.

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

Чем занять «спящий» компьютер

Участие в добровольных вычислениях — это не единственная возможность «по полной» использовать свои вычислительные мощности. 

Можно просто набрать торрентов с библиографическими раритетами или старыми играми и активно раздавать их, бороться за идеи свободного распространения контента, участвуя в P2P-передаче контента, сдавать свои ресурсы в аренду или майнить на них криптовалюты там, где это разрешено.

Даже если вы уверены в своей законопослушности, тут тоже не обойтись без подводных камней — например, в марте 2015 одно из обновлений μTorrent устанавливало на компьютеры пользователей программу Epic Scale, без ведома владельца занимавшуюся майнингом биткойнов, эмиссия которых в Российской Федерации и некоторых других странах запрещена.

Любые свободно простаивающие ресурсы интересуют хакеров, создающих «зомби-сети». С другой стороны, существует и ряд проектов, использующих DDoS-атаки как форму актов гражданского неповиновения, когда пользователи по собственной инициативе предоставляли свои ресурсы для создания искусственных нагрузок на определённые сайты.

Проекты добровольных вычислений

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

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

BOINC кроссплатформенен, относительно прост в настройке, и требует минимального внимания со стороны пользователя. Его клиент запускается «под скринсейвером» и не трогает ресурсы, которые нужны самому владельцу, обращаясь только к свободным (или, если настроить его иначе — к тем, которые ему выделили). 

За шесть лет интегральная производительность проектов на BOINC выросла с 5,2 петафлопс до 28,7, оставив далеко позади показатели пиковой производительности мощнейших мировых суперкомпьютеров (например, японский «K computer» обрабатывает 8,16 петафлопс данных).

Главные BOINC-проекты

SETI@home — проект Калифорнийского университета в Беркли, — занимается поиском инопланетных цивилизаций и с 1999 года обрабатывает радиосигналы, фиксируемые телескопом обсерватории Аресибо. За это время были исследованы сигналы, поступающие с 98% наблюдаемого небесного свода (правда, в довольно узком диапазоне). В проекте успело поучаствовать больше четырёх миллионов пользователей.

Einstein@Home ищет в космическом пространстве пульсары — источники особого рода электромагнитного излучения. Главной задачей проекта долгое время считалось подтверждение теории Эйнштейна о гравитационных волнах, но в итоге сигнал, доказавший их существование, оказался слишком коротким, чтобы попасть в область данных, обрабатываемую проектом. Несмотря на это Einstein@Home продолжает действовать, выявляя новые источники гравитационного излучения.

MilkyWay@Home — ещё один проект про далёкий космос. В его рамках распределённые вычислительные мощности используются для трёхмерного моделирования процессов формирования галактик.

Более близкие к Земле проекты — Asteroids@home, изучающий малые космические тела, и Climate Prediction, занимающийся моделированием погодных условий — на Земле ещё много мест, где у метеорологов недостаточно своих вычислительных мощностей для расчетов прогнозов погоды.

Есть на BOINC и проекты, работающие над задачами микромира. Так, LHC@Home призван помочь с расчетами физикам, работающим с Большим адронным коллайдером в CERN. Ресурсов собственной распределённой сети, хоть она и самая мощная в мире, им порой не хватает.

Rosetta@home моделирует структуры белков, что помогает в поиске средств лечения ВИЧ, рака, болезни Альцгеймера и малярии. Существуют и отдельные проекты, мощности которых направлены на борьбу с конкретными заболеваниями.

Математическими вычислениями занимаются, например, PrimeGrid и Yoyo@home.

Отдельная ветка проектов — WorldCommunityGrid корпорации IBM. В рамках WCG ведутся расчеты, связанные с возобновляемыми источниками энергии, поиском лекарств (например, от вируса Эбола) и расшифровкой генома.

Существуют и проекты, инфраструктура которых построена не на BOINC. Среди них TeraGrid, ищущая во Вселенной скопления «тёмного вещества», MoneyBee, рассчитывающий возможные колебания рынков акций или NEESgrid, позволяющая геологам и архитекторам моделировать сейсмические активности.

«Лотерейные» и коммерческие проекты

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

Distributed.net — сообщество, занимающееся проектами по взлому шифров (RSA Challenges). Статус проекта на август 2016 года — перебрано 20% из 264 ключей.

GIMPS, перебирающий специального вида простые числа, спонсируется Electronic Frontier Foundation, предлагающей $100 тысяч за нахождение простого числа Мерсенна с количеством цифр в 10 млн. Первый из призов был получен Наяном Хаджратвалой, рассчитавшим число длиной в миллион знаков в 2000 году. С тех пор были получены ещё три числа.

Такие проекты, как ProcessTree Network и Parabon Computation предлагают пользователям предоставлять свои ресурсы коммерческим заказчикам.

Как это работает

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

Продвинутый уровень

Если хочется быть не просто пользователем — можно попробовать начать свой проект. Есть множество задач, для которых достаточно даже сравнительно небольшого количества ресурсов. Пример тому — фильтрующее риэлторов и собственников на сайтах по поиску недвижимости расширение Sobnik для браузера Chrome, разработанное одним из пользователей «Хабрахабра», которое всего при двухстах участниках распределённой вычислительной системы обрабатывало больше 60 тысяч объявлений в день.

При заинтересованности и наличии навыков для распределённых вычислений можно использовать компоненты «интернета вещей» или игровые приставки — в PlayStation 3, например, программа для вычислений в рамках Folding@Home была предустановлена разработчиками.

Теги

Статьи по теме

©  vc.ru