Умная толпа
Шрифт:
Сегодня миллионы людей и их ПК уже заняты не только поиском посланий из космоса и обменом музыкой, но и исследованием раковых клеток, отысканием простых чисел, созданием фильмов, прогнозом погоды, разработкой синтетических лекарств, моделированием миллионов всевозможных молекул — решением столь громадных вычислительных задач, которые и не снились прежде ученым.
Распределенные вычисления используют преимущества огромного и долгое время остававшегося невостребованным силового источника [4]. Это своего рода нежданный подарок технического прогресса. В определенном смысле это сэкономленная энергия, подобная сбереженной при создании более совершенных электроприборов и возведении зданий с улучшенной теплоизоляцией. Производительность вычислений можно повысить без создания новых компьютеров, задействовав нерачительно используемый прежде ресурс — разницу в быстроте счета человека и машины.
При печатании со скоростью два знака в секунду мы используем ничтожную часть мощи своей машины. В течение этой секунды большинство ПК способно одновременно производить сотни миллионов сложений. ЭВМ 1960-х годов с распределением времени располагали такой возможностью. Сейчас же миллионы ПК по всему миру, в тысячи раз мощнее мейнфреймов, соединяются между собой через Интернет. По мере расширения сети участвующих в интерактиве ПК и увеличения их мощности, а также скорости обмена информацией между ними, растет как снежный ком их общая производительность, что наверняка приведет к качественным изменениям в пользовании самими компьютерами.
Пиринговые коллективы, повсеместная компьютеризация, социальные сети и мобильная связь взаимно усиливают свое действие: теперь не только миллионы людей соединяют свои общественные сети через устройства мобильной связи, но и микросхемы процессоров внутри этих мобильных устройств уже в состоянии общаться с оборудованными радиосвязью микросхемами, встраиваемыми в окружающую обстановку. Можно представить социальные последствия, когда 1500 людей, пересекающих перекресток Сибуя при каждом переключении светофора, станут временным сосредоточием распределенной вычислительной мощи.
Летом 2000 года я решил навестить Дэвида П. Андерсона, технического зачинателя проекта по поиску внеземного разума SETI (Search for Extraterrestrial Intelligence). Увидев на двери надпись «Добро пожаловать всем тварям», я понял, что не прогадал. Космологическая лаборатория (Space Sciences Laboratory) Калифорнийского университета на Берклийских холмах так и остается нервным центром крупнейшего в мире предприятия по организации совместных вычислений.
Поиск внеземного разума (SETI) — частным образом финансируемое научное исследование внеземных радиосигналов в поисках посланий от инопланетных цивилизаций. Свыше двух миллионов добровольцев со всего света предоставили время ЦП своих ПК при их простое для обработки сигналов, принимаемых радиотелескопом в Пуэрто-Рико. Сам телескоп ежедневно выдает около 50 млн байтов информации, которую Не в состоянии обработать одни серверы SETI. И здесь на помощь приходят совместные вычисления. Участники проекта SETI@home устанавливают клиентское ПО (программу, загружаемую пользователями из Сети и запускаемую ими на своем компьютере; программа-клиент автоматически связывается с центральной «серверной» ЭВМ в Беркли). Клиентское ПО загружает небольшой объем данных от радиотелескопа и обрабатывает их, выискивая сигналы, которые могли бы указывать на разумную жизнь. По завершении задачи программа пересылает полученные результаты в штаб-квартиру проекта SETI@home и забирает новую порцию оцифрованных космических сигналов для последующего поиска. При обращении пользователя ПК к своей машине клиентская программа SETI@home переходит в «спящий» режим, «пробуждаясь», когда тот отлучается на время.
День выдался солнечный, так что мы с Андерсоном уселись на террасе вне стен Космологической лаборатории. Калифорнийские холмы летом порыжели. До нас доносился запах эвкалиптового леса, я мог любоваться заливом Сан-Франциско. Если бы я работал в этом здании, то проводил бы все встречи на террасе. Андерсон, высокий, темноволосый, поджарый, под стать бегуну на длинные дистанции, отвечает на вопросы не сразу, его слог можно назвать чеканным.
Я спросил его, как начался проект SETI@home. «В 1995 году, — вспоминает Андерсон, — я общался с бывшим выпускником Калифорнийского университета в Беркли по имени Дэвид Геди. Находясь под впечатлением от просмотра документального фильма о посадке на Луну космического аппарата „Apollo“, события, позволившего всем живущим на Земле ощутить свою причастность к совершенному человечеством прорыву, Геди задался вопросом: какой современный проект мог бы оказать подобное действие? И ему пришла мысль воспользоваться повальным увлечением Интернетом и программой SETI, направив их в одно русло».
В середине 1990-х клиентские программы SETI@home были выложены в Сеть для свободного скачивания. «Что тут началось! — рассказывает Андерсон. — Мы рассчитывали, что, если откликнется хотя бы 100 тысяч человек со всего света, овчинка стоит выделки. Через неделю в нашем распоряжении было 200 тысяч добровольцев, а через четыре-пять месяцев их число перевалило за миллион; сейчас преодолен двухмиллионный рубеж».
Хотя распределенные вычисления своей известностью обязаны SETI@home, это была далеко не первая попытка объединить компьютеры в сеть, где они могли бы сотрудничать. В начале 1980-х годов я пытался заглянуть в будущее, роясь в библиотеке Центра научных исследований в Пало-Альто 1 (ЦНИПА) компании Xerox. Наиболее любопытными оказались научные отчеты Центра. Один из документов, написанный достаточно простым языком, имел интригующий заголовок: «Заметки по поводу программ-"червей" — кое-что из раннего опыта работы с распределенными вычислениями» («Notes on the 'Worm' Programs — Some Early Experience with a Distributed Computation»); авторами значились Джон Ф. Шох и Джон Хапп [5]. Это был отчет об опытах с вычислительной программой, «крадущейся» по локальной сети от машины к машине в поисках простаивающих ЦП для использования их вычислительной мощи и затем, после того как машины вновь включались в работу, возвращающейся на «базу» с полученными результатами.
Меня заинтересовало признание авторов, что их подвиг на это один научно-фантастический роман 1975 года: «В своей книге „Оседлавший волну шока“ (The Shockwave Rider) Джон Брайнер придумал некую всемогущую программу-"червь", беспрепятственно гуляющую по сети ЭВМ, довольно пугающее зрелище, но при нынешних наших возможностях такое вряд ли достижимо. Однако исходная мысль весьма заманчива: программа или вычисление, способные переходить от машины к машине, управляя по мере надобности ресурсами и размножаясь при необходимости» [6].
Понадобилась пара десятков лет, чтобы скорости соединяющих ЭВМ линий связи и мощности самих ЭВМ хватило для создания пригодных для практических нужд распределенных вычислений. В 1985 году Майрон Ливни предложил использовать рабочие станции для рассредоточенной работы [7]. Через несколько лет Ричард Крандалл, ныне заслуженный деятель науки (Distinguished Scientist) компании Apple, начал поиск огромных простых чисел на объединенных в сеть компьютерах NeXT.
«Однажды в конструкторском бюро NeXT, — вспоминал Крандалл в телефонном разговоре со мной в 2000 году, — глядя на простаивающие там компьютеры, я подумал, что машинам непозволительно спать. Я установил программу, позволившую производить вычисления при простое компьютеров и объединять их усилия в сети, и назвал ее Годзиллой (Godzilla). Однако этому воспротивилась компания, обладавшая правами на имя «Годзилла». Поэтому мы переименовали ее в Зиллу (Zilla)».
Крандалл хотел заняться поиском больших простых чисел. С двумя сотрудниками после невиданных прежде вычислений ему удалось ответить на вопрос, является ли 24-е число Ферма, состоящее из пяти миллионов цифр, простым [8]. «Это потребовало 100 квадриллионов машинных операций, — с гордостью сообщает Крандалл. — Примерно такое же количество вычислений понадобилось киностудии Pixar при создании мультипликационного фильма с компьютерной анимацией Bug's Life (в российском прокате — «Приключения Флика»). При такой вычислительной мощи можно снять полнометражную картину или определить, простое число или нет». В теории чисел, заверил он, многие идеи интересовали лишь математиков своего времени, но затем оказывалось, что они важны при решении задач, появившихся спустя столетия. Позже я узнал, что интерес Крандалла к простым числам привел его к изобретению защищенного патентом алгоритма, используемого компанией Apple для шифрования [9].
Классический пример задачи с огромным объемом вычислений — машинное моделирование погоды. При всей его технической сложности моделирование погоды выступает важным инструментом в жарких политических спорах относительно глобального потепления и иных вызванных деятельностью человека климатических изменений. Майлс Аллен из Эпплтонской лаборатории Резерфорда (Rutherford Appleton Laboratory) в Чилтоне, Англия, предложил использовать распределенные вычисления для моделирования погоды [10]. Аллен решил апеллировать к гражданскому чувству посетителей своего веб-узла: «Данный эксперимент представляет собой совершенно новый вид прогноза погоды: нечеткое прогнозирование, отражающее всевозможные риски и вероятности, а не „единственно верный“ прогноз. И для этого у нас нет других вычислительных ресурсов. Так что, если вы счастливый обладатель мощного ПК, просьба поспособствовать принятию верных решений с учетом происходящих климатических изменений». На призыв Аллена за две недели откликнулось 15 тысяч человек.