Fакел - журнал для тех, кому больше всех надо. - Распределенные мозги
На главную страницу >>>
  

 

 

Распределенные мозги

Единица - ноль.
Владимир Маяковский



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


Групповая ломка

Не знаю, кто как, а я лично использовал распределенные вычисления еще в средней школе. Типичная ситуация: контрольная. Одни и те же пять задачек решает весь класс. Конечно, 90% класса - дебилы. Но есть пара-тройка человек с мозгами. Поэтому берем каждый по задачке, а потом обмениваемся решениями. Можно и остальным дебилам дать списать в обмен на какие-нибудь услуги - например, за то, что они работали транспортом для передачи наших шпаргалок.
Примерно в то же время (70-е и 80-е годы) аналогичные технологии стали использовать люди, работающие в проекте ARPAnet, в лаборатории Xerox PARC, в компаниях Apple и Intel - в общем, везде, где появились локальные компьютерные сети. Отдельный компьютер, подобно ученику средней школы, устроен очень нерационально: большую часть времени работает вхолостую. Но если несколько машин объединены сетью, а одна из них замучена сложной задачкой, можно облегчить ей жизнь, если разбить задачу на части и использовать простаивающих "соседей по сети". Все проекты распределенных вычислений с тех пор работают по похожей схеме: каждый из участников ставит на свой компьютер программу, которая в "свободное время" связывается с главным сервером, получает свою часть задачи, решает ее и посылает результаты обратно.

До широких масс эта технология добралась в 90-х с появлением Интернета. Началось, конечно, с любимых программистских задач шифрования и дешифрования, при решении которых необходим перебор большого числа вариантов. Проект Distributed.net, стартовавший в 1997-м, сегодня объединяет вычислительные мощности, эквивалентные 160 000 "Пентиумов", работающих круглые сутки. Сейчас участники проекта взламывают файл, зашифрованный с помощью криптоалгоритма RC5. Тот, чей компьютер первым подберет ключ длиной 72 бита, получит от компании RSA Lab приз в 10 000 долларов.

Более крупную сумму можно заработать через Great Internet Mersenne Prime Search (GIMPS). 130 000 участников этого проекта, основанного в 1996-м, решают противоположную задачу: они ищут самые большие простые числа, которые затем можно использовать для генерации криптографических ключей. Организация Electronic Frontier Foundation учредила призы в 50 000, 100 000, 150 000 и 250 000 долларов за отыскание простых чисел, в записи которых используется соответственно миллион, десять миллионов, сто миллионов и миллиард знаков. Первый из этих призов уже получен в 2000 году участником проекта GIMPS Наяном Хаджратвалой из США.

Следующее простое число, выскочившее в 2001 году на компьютере канадца Майкла Камерона, имело в своей записи только 4 053 946 цифр. Так что очередные призы EFF еще ждут своих героев.


Суперкомпьютер для инопланетян

С развитием Интернета распределенные вычисления стали использовать и для решения более "жизненных" задач. Проект SETI@Home, стартовавший в 1999-м, всего за три года собрал четыре миллиона добровольцев по всему миру, которые теперь отдают нерастраченные вычислительные мощности своих компьютеров на поиск сигналов внеземных цивилизаций. Поиск состоит в обработке космических радиошумов, записанных самым крупным радиотелескопом мира Arecibo в Пуэрто-Рико. Записи нарезаются на кусочки по 107 секунд и раздаются отдельным персоналкам для выявления в них упорядоченных сигналов. На сегодня вычислительная мощность этой "любительской" сети, при стоимости проекта в $500 000, достигает 50 терафлопс (триллионов операций с плавающей точкой в секунду). Это в четыре раза больше, чем дает суперкомпьютер ASCI White ценой $150 000 000. И даже больше, чем дает самый мощный суперкомпьютер мира, установленный в японском государственном центре исследования Земли в Йокогаме - у него 35 терафлопс. В позапрошлом году соучредитель Microsoft Пол Аллен пожертвовал на SETI еще 11,5 миллиона долларов. Теперь руководители проекта обещают, что после введения в строй в нового телескопа Allen Telescope Array внеземная жизнь будет найдена в ближайшие 25 лет.

Справедливости ради стоит заметить, что все эти красивые цифры пока не принесли никакой пользы: на момент написания этой статьи инопланетяне не найдены. Однако бешеный успех SETI@Home привел к тому, что идея "вычислений на дому" набрала популярность. United Devices, Entropia, Distributed Science, Parabon, Popular Power - неполный список компаний, которые бросились внедрять системы распределенных вычислений для предсказания погоды, поиска новых лекарств или просто для сбора мощностей "на заказ". Весной этого года в игру включилась даже поисковая система Google - в ее "примочке" для браузеров Google Toolbar появилась кнопка проекта Folding@Home, участники которого (более 200 000 компьютеров) заняты моделированием процесса формирования протеинов.

Более того, уже есть и успешно завершенные проекты. Весной сеть Anthrax Project, координируемая из Оксфорда, выбрала из 3,5 миллиардов молекулярных формул те 300 000, которые являются наиболее вероятными кандидатами на роль лекарства от сибирской язвы. С помощью более миллиона персоналок эта задача была решена всего за месяц вычислений "в свободное время". А в Канаде 4 ноября был создан четвертый по мощности суперкомпьютер мира, который проработал всего один день, решил поставленную перед ним задачу по моделированию химической реакции - после чего снова "распался" на 1360 обычных компьютеров, стоящих в 20 разных научных центрах.


Вычисления как валюта

На сегодня самая мощная сеть распределенных вычислений, SETI@Home, использует всего 1% компьютеров, подключенных к Интернету (сразу вспоминается, что человек использует только 5% своего мозга). Однако таких проектов становится все больше. Что они будут делать, чтобы убедить пользователей отдать свои ресурсы именно им, а не кому-то другому?

Как это ни смешно, но одной из движущих сил до сих пор были картинки: программы распределенных вычислений распространялись в виде экранных заставок-скринсейверов, рисующих что-нибудь забавное на экранах простаивающих компьютеров. Однако не всякую задачу можно эффектно визуализировать. Хорошо, если ты моделируешь океан, как в системе DALiWorld (www.daliworld.net) - тогда твой экран превращается в аквариум с рыбками, связанный с множеством других таких же аквариумов. Но далеко не всякий пользователь найдет сексуально-привлекательным изображение протеина, как в случае Folding@Home. Да и само рисование картинок тратит вычислительные мощности компьютера. Не меньше проблем и с сетями на "чистом энтузиазме" - наиболее привлекательными могут оказаться не самые важные или просто нерешаемые задачи. Например, можно ожидать, что проект предсказания погоды Climateprediction.com будет столь же популярным, как SETI@Home - однако он может оказаться настолько же бесполезным.

Кроме того, даже если ты добровольно включился в проект, который считаешь наиболее полезным, - вовсе не факт, что твой компьютер действительно работает над указанной задачей. Из 1,35 миллиона участников Anthrax Project, вычислявших лекарство от сибирской язвы, 1,2 миллиона составляли люди, изначально загрузившие скринсейвер для поиска лекарства от рака. Компания United Devices самовольно переключила пользователей с одного вычисления на другое, в связи с чем последовали массовые протесты. "Я подписался на этот проект, потому что мои родители умерли от рака, и я ненавижу эту болезнь, - сообщил один из канадских участников. - Сколько всего людей умерло от сибирской язвы? Пятеро? А представьте, сколько людей умирает от рака за то время, пока я пишу это письмо!"

В связи с этими проблемами многие Сети распределенных вычислений скорее всего будут использовать более универсальный стимул - деньги. Это могут быть призы за отдельные достижения, как в случае GIMPS, либо более продвинутые схемы повременной тарификации. В частности, руководитель научного отдела United Devices и директор SETI@home Дэвид Андерсон уже вынашивает проект "Всемирной операционной системы" на основе Интернета (Internet-scale Operating System). Предполагается, что ISOS будет аккуратно отслеживать использование ресурсов каждого участника вычислительной Сети и перечислять ему деньги в зависимости от расценок, установленных "покупателем вычислений".

Наконец, сами вычисления могут стать валютой для взаиморасчетов между владельцами сайтов и их посетителями. Технология, разработанная отечественным математиком Михаилом Корманом, предполагает, что при загрузке веб-страницы твой компьютер выполняет небольшое дополнительное вычисление, "спрятанное" в самой странице на языке JavaScript - например, вычисление дискретного преобразования Фурье над вещественным сигналом (hash.dorms.spbu.ru/jsexchange/). Конечно, время загрузки страниц при этом увеличивается, как и при загрузке рекламных баннеров. Но зато, в отличие от баннеров, невидимые вычисления хотя бы не насилуют глаза.


Зомби хорошие и разные

Неизвестно, как скоро мы научимся оценивать наши капиталы в "килофурье", а не в архаичных рублях. Но совершенно точно известно, что эту валюту уже давно и с успехом крадут. Метод кражи описан в старинном анекдоте: "Господин Эдиссон, почему у вас садовая калитка такая тугая? Вы же изобретатель, придумайте что-нибудь! - А я уже придумал: пока вы открывали эту калитку, вы накачали мне полный бак для поливки сада".

Можно предположить, что если бы изобретатель не рассказывал о своем трюке, посетители качали бы ему воду гораздо дольше - как в случае с 28-летним программистом Аароном Блоссером, работавшим на телефонную компанию US West. В 1998 году Блоссер подключил 2585 компьютеров своей компании к поиску очередного простого числа рекордного размера - как раз того числа, за которое EFF обещало $50 000. Изобретение Блоссера оставалось незамеченным несколько месяцев, пока задержки на телефонных линиях не начали достигать нескольких минут. "Когда я пришел на работу US West, вся эта вычислительная мощь просто искушала меня", - заявил Блоссер, когда к нему пришли из ФБР.

С тех пор прошло четыре года. Число компьютеров и программ выросло во много раз, так что сегодня распределенные сети для "паразитических" или "пиявочных" вычислений (leech computing) могут прятаться где угодно. Например, этой весной модуль системы распределенных вычислений был найден в популярной программе KaZaa, которая используется миллионами интернетчиков для обмена музыкой через Интернет. Гениальное решение! Ведь если пользователь часами скачивает сотни мегабайтов музыки, он и не заметит, что его компьютер потратил лишние несколько минут на какую-то другую задачу. Кстати, не только персоналки можно использовать в качестве "интеллектуальных зомби". В прошлом году по СМИ разнесся слух, что Саддам Хусейн закупил 4000 игровых приставок Playstation 2, чтобы объединить их в суперкомпьютер для разработки ядерного оружия. Правда, специалисты сразу заявили, что ничего у него не выйдет, - лучше было купить приставки Sega Dreamcast, благо они поддерживают высокоскоростные линии связи и на них ставится Linux, что может обеспечить многопроцессорный режим. Но мы-то понимаем - в наши дни нельзя доверять даже пейджеру. Думаешь, почему в последнее время стало так модно подключать к Интернету всяких там роботособак или стиральные машины? Да им просто жалко, что твои мощные компьютерные чипы простаивают между стирками! Что же касается систем для моделирования нового оружия, то ими могут оказаться практически все сети распределенных вычислений, упомянутые и не упомянутые в этой статье. И радует в этом лишь то, что пока они воюют только за компьютерные ресурсы.