Распределенное время

Автор: Владимир Николаевич
Опубликовано в журнале "Компьютерра" №22

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

В начале 1997 года распределенные вычисления впервые привлекли внимание широкой публики. Компания RSA Data Security, продвигающая на рынок свой криптоалгоритм, объявила, что заплатит десять тысяч долларов тому, кто взломает небольшое сообщение, зашифрованное старомодным алгоритмом DES. Перебор ключей для DES-шифровки на одной машине был безнадежен (количество вариантов равнялось 7х1016), но RSA ожидала, что солидный приз заставит энтузиастов объединится в команды, связанные по Сети, и перебирать ключи совместно. Расчет оправдался — за дело взялось множество групп, и одна из них — DESCHALL — нашла ключ (и получила приз) уже в июне 1997 года. Таким образом RSA

продемонстрировала, что общепринятая DES-криптография устарела и надо использовать новую, разработанную ею. Кроме DES-шифровки RSA предложила взломать свою собственную, и вот вокруг одной из команд, собравшейся для решения этой задачи, само собой сложилось крупное сетевое сообщество, координировавшее усилия через сайт Distributed.net. Сайт предлагал новичкам понятную инструкцию, удобную статистику и хорошую программу для подбора ключей, работавшую в фоновом режиме. В уставе сообщества заявлялось, что если денежный приз достанется им, то большая часть будет передана в Project Gutenberg, занимающийся переводом книг в электронную форму1.

В течение 1997 года количество участников Distributed.net росло как на дрожжах. Интернет-бум был в самом разгаре, проект часто освещали масс-медиа (включая «КТ»), а множество веб-сайтов размещали у себя баннеры сервера. В результате этот стихийно образовавшийся коллектив быстро перевалил за 10 тысяч человек, потом за 50, потом за сто и между делом бил прежние рекорды распределенных вычислений. Компания RSA вовремя подкидывала новые задания с денежными призами, но уже в начале 1998 года многим стало ясно, что затея переросла в нечто большее и взлом какой-то шифровки мало кого интересует, — не будь этого задания, было бы другое.

Сообщество Distributed.net стало первым, набравшим более ста тысяч участников. Оно же первым превратилось в своеобразную самоподдерживающуюся реакцию, которая длится по сей день. Его размеры со временем не уменьшаются: хотя большинство зарегистрировавшихся теряет к проблеме интерес и уходит — расширение Интернета обеспечивает постоянный приток новичков, которые полностью компенсируют потери. Из-за этого даже спустя семь лет сообщество активно работает и периодически берется за новые задачи2.

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

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

Если мы внимательно приглядимся к окружающему миру, то заметим, что сплошь и рядом в нем действует довольно странное правило степенного распределения. Все мы интуитивно знаем его и нередко формулируем в расхожих выражениях, вроде: «меньшинство людей совершает большинство преступлений» или: «20% книг получают на рынке 80% читательской аудитории». На деле, конечно, кривая распределения не всегда настолько крутая, и цифры не такие круглые, но, по большому счету, они верны. Например, наша речь состоит из крошечной группы самых употребимых слов, а остальные десятки тысяч слов мы произносим всего пару раз в жизни. И это вовсе не человеческая особенность. Более 9/10 видимой массы нашей Вселенной приходится на один элемент — водород. Небольшая часть людей контролирует большую часть денег и ресурсов. Основная энергия нашего Солнца излучается в очень узком диапазоне волн…

Сеть подчиняется этому правилу. Если мы рассмотрим любую группу ее ресурсов — поисковики или почтовые серверы, игровые или новостные ресурсы, веблоги или форумы, — везде увидим степенное распределение, по которому (очень упрощенно) занимающий N-ное место получает 1/N чего-либо3. Например, ссылок с других веб-сайтов. Или ежедневных посещений, хакерских атак, денег рекламодателей и пр. Какой бы показатель мы ни взяли, нарисовав график его распределения (между веб-ресурсами), увидим, что никакого равенства в свободной Сети нет.

Как легко догадаться, распределенные вычисления не являются исключением. Первое место держит проект SETI@home, за пятилетнюю историю привлекший 4,8 млн. участников. На втором месте — Grid.org компании United Devices, созданный для поиска лекарств от рака (около двух миллионов человек). А следующие места занимают сообщества, насчитывающие всего по несколько сотен тысяч участников. Так, Distributed.net за пять лет взлома шифровки RSA-64 привлек 330 тысяч человек (взлом завершен в 2002 году). Участников Folding@home, ведущих4 распределенный фолдинг белков (проект начат в октябре 2000 года), сегодня насчитывается около полутораста тысяч, не в последнюю очередь из-за встраивания кода проекта в Google.Toolbar известного поисковика Google. Это чистое степенное распределение, где кучка мегазвезд получает львиную долю, а остальное большинство находится ниже срединной линии.

Как изменится эта ситуация в будущем? Например, через десять лет, когда доступ в Сеть будет у миллиарда человек и проекты будут исчисляться сотнями? Здравый смысл говорит нам, что многообразие сгладит различия и неравенство станет менее острым. Однако в действительности все будет наоборот! По мере развития Интернета его пользователи вовсе не растекаются ровным слоем по всем доступным ресурсам. Их миллионные массы группируются лишь в нескольких местах, и с годами меняются только лидеры этой стихийной иерархии. Сама же она не выказывает никаких признаков размывания. А поскольку размеры аудитории растут, то растет и пропасть между верхушкой и серединой, между Альфой и Омегой. И если сегодня сообщество лидера (SETI@home) в тысячу раз больше сообщества аутсайдера (например, российского MD@home), то через десять лет разрыв может стать десятитысячным.

О причинах этой странной тенденции — почему свобода рождает неравенство (а гиперсвобода — гипернеравенство), можно говорить долго и интересно, но в отдельной статье5. Мы же заметим, что кроме объективных факторов в популярности одних распределенных проектов и забвении других большую роль играют иррациональные мотивы.

Примечательна судьба двух нынешних лидеров — SETI@home и Grid.org. Оба родились довольно поздно и были вынуждены соперничать с проектами-ветеранами. Оба активно рекламировали себя в сетевых масс-медиа. Однако SETI@home менее чем за год стал бесспорным лидером, а Grid.org, стартовав 3 апреля6 2001 года, повторить этот успех так и не смог. Несмотря на активную рекламу и солидное финансирование (поначалу среди участников регулярно разыгрывались приставки PlayStation 2), проект компании United Devices сегодня более чем вдвое отстает от лидера. Наверняка UD рассчитывала на большее. Она вообще выделяется на общем фоне Distributed Computing, действуя основательно и с американским размахом.

Созданная Дэвидом Андерсом (стоявшим у истоков SETI@home), UD сразу зарегистрировала как торговую марку сочетание «Global MetaComputer» и заняла домен grid.org. Программная платформа UD, координирующая нынешние антираковые вычисления, рекламируется как гибкий механизм использования компьютерных ресурсов в маленьких фирмах и больших корпорациях. Об успехах этого бизнеса судить трудно, но важны сами попытки заработать деньги на внедрении распределенных вычислений. Кстати, своей главной целью UD считает не поиск лекарства от рака (это лишь пробный шар), а создание огромного сообщества для решения самых разных вычислительных задач. На сайте grid.org можно ознакомиться с планами компании на будущее: миллиарды компьютеров соединены в огромную сеть, и все желающие получают из нее столько вычислительной мощности, сколько хотят. Как электричество из розетки — дешево, много и в любую секунду. Именно отсюда термины «Grid» (power grid — электросеть) и «глобальный метакомпьютер»7.

В сравнении с усилиями UD, SETI@home выглядит студенческим утренником. Однако именно эта затея с, мягко говоря, эксцентричной целью — поймать радиосигналы от инопланетян — привлекает вдвое больше людей, нежели поиск лекарств от рака8. Наверняка и участники SETI@home, если поставить вопрос ребром, согласятся, что борьба с раком неизмеримо благороднее их игры в бисер. Тем не менее, ряды искателей братьев по разуму множатся быстрее всего. За четыре последних года мощность виртуального метакомпьютера этого проекта почти удесятерилась, увеличившись с 8 до 70 Тфлопс. За пять лет существования он утилизировал (иначе не скажешь) без малого два миллиона машино-лет вычислений. Не часов, а лет! Два миллиона! Если принять, что один клиент SETI@home потребляет при работе 10 Вт9, то окажется, что всего на эту затею было потрачено почти 200 гигаватт-часов электроэнергии. Даже по нашим, далеко не калифорнийским ценам они тянут на сотню миллионов долларов. И конца тратам не видно — сообщество SETI@home продолжает расти…

Распределенные вычисления, не привлекшие должного внимания публики

MD@home. Первый и пока единственный российский проект распределенных вычислений. Проводится при поддержке кафедры биофизики МГУ и ставит целью моделирование свойств очень коротких цепочек аминокислот. Запущен в 2002 году. Насчитывает чуть более полутысячи активных участников, которые уже просчитали все возможные комбинации из трех и четырех аминокислот. Сейчас обрабатываются пятичлены (пентапептиды). Результаты будут выложены в открытый доступ и использованы для создания искусственных белков, а также лекарств нового типа. Пример такого лекарства — гекса-D-аргинин, созданный в 2002 году для лечения сибирской язвы и состоящий всего из шести молекул одной аминокислоты — аргинина. По «доброй» российской традиции MD@home хронически страдает от неустойчивого хостинга. Подробнее см. на www.md-at-home.ru.

D2OL — Drug Design Optimization Lab (www.d2ol.com ). Распределенный поиск новых лекарств от малярии, лихорадки Эбола и некоторых форм склероза. Проект насчитывает несколько десятков тысяч участников и спонсируется крупными университетами.

Find-a-drug (www.find-a-drug.com ). Поиск лекарств от рака, СПИДа, поиск безопасных гербицидов и т. д. В проект регулярно добавляются новые направления исследований, а участники могут свободно выбирать, на что тратить ресурсы своего компьютера.

Distributed Folding (www.distributedfolding.org ). Моделирование свертывания белков (фолдинг) и одновременно отладка алгоритма моделирования. Проект имеет программы-клиенты для самых разных операционных систем, включая Linux для Sony PlayStation. Зачем нужен фолдинг белков, «КТ» рассказывала в теме номера «Биоконструктор» (#483).


1 Project Gutenberg тоже распределенный проект, хотя не столько вычислений, сколько распознаваний. В октябре 2003 года силами его участников была выложена в свободный доступ десятитысячная книга.
2 Участники Distributed.net (как и большинства других проектов) могут образовывать команды, и одна из них ноcит название «Команда Компьютерры». 159 ее участников занимают 21-е место в командном рейтинге проекта. Подробнее см. www.myportal.ru/team.
3 По такой (1/N) формуле первый номер списка должен забрать себе все. Но эта дробь задает только изначальную форму базовой кривой.
4 folding.stanford.edu.
5 Интересующиеся этим вопросом могут прочесть в «Русском Журнале» статью Клэя Ширки «Веблоги и неравенство» (www.russ.ru/netcult/20030217 ), где кроме примеров и попыток анализа даются ссылки на академические работы по данной теме.
6 www.ud.com .
7 Заметим, что UD не является автором подобных идей, а Grid-вычисления в целом — крайне модная сегодня тема. Так, в конце мая в Филадельфии прошла конференция Grid Today 2004 с участием компании Boeing, American Airlines и торговая сеть Wal-Mart. Тема обсуждения — Commercial Business Applications of Grid Computing.
8 Сравнить эти проекты можно и по количеству машино-часов, которые ежесуточно тратятся на расчеты. По официальной статистике, у SETI@home их 3,2 млн., а у Grid.org 2,3 млн. Но это необъективный показатель, поскольку предполагает выбор некоей усредненной машины, которая в разных проектах всегда разная.
9 Цифра занижена, для удобства расчетов. Большинство процессоров потребляет десятки ватт, а распределенные расчеты максимально загружают процессор. В обычных же офисных задачах потребление составляет лишь несколько ватт.

стр. 2 >>


<<C++ulture
Все материалы номера
Вопросы и ответы >>