Системы распределенных вычислений. Путь интернет-самаритянина
Когда-то люди жили жутко примитивно. Если надо было что-то посчитать — загибали пальцы и складывали палочки. Позже появились продвинутые абаки, на которых можно было подсчитывать десятки, сотни и даже тысячи. Потом научились вычислять в столбик. Прошло еще немного времени, и уже калькуляторы не
справлялись с теми числами, которые нужно было складывать, вычитать, умножать, делить, извлекать корни. Зато когда появились и начали развиваться компьютеры — люди на время успокоились. ЭВМ с лихвой покрывали потребность в вычислении. А там, где один компьютер не справлялся, ставили многопроцессорную станцию. Понятно, что до бесконечности такая, мягко говоря, лафа продолжаться не могла. Человечество продолжало двигаться по спирали эволюции, и вот уже даже десятипроцессорные станции не справляются с расчетами, которые нам — людям — хочется сделать побыстрее и подешевле. Например, чтобы найти лекарство от рака, надо перебрать миллиарды вариантов веществ. Так ведь еще, оказывается, и рак разный бывает. Да и чтобы геном человека расшифровать, хорошо бы мощностей подтянуть (тут, слава богу, уже справились). А нельзя ли как-нибудь схитрить?! Воспользоваться мощностями, которые никто не использует. Может, при этом еще и не платить получится? По всему выходило, что не получится, но тут появился интернет — и ситуация изменилась. Почесали ученые и предприниматели тыковку и смекнули: а ведь есть компьютеры рядовых пользователей, а через интернет они теперь как бы объединены в общую сеть. А ресурсы сети — правда, в более миниатюрном варианте — использовать уже научились. Не привлечь ли интернетчиков к решению великих задач?! Идея — гениальная. Раскручена пока не на все сто, но даже то, что уже есть, внушает уважение. Самый обычный пользователь, практически ничего не делая (нужно-то всего скачать и установить у себя небольшую утилитку да иногда выходить в интернет), может поучаствовать в исследованиях мирового, можно даже сказать — планетарного масштаба. Но давайте обо всем поподробнее.
Принципы работы “распределенок” __ Некоторые задачи являются настолько требовательными к вычислительным мощностям, что даже мощнейшие из современных суперкомпьютеров не справляются. Немаловажным фактором является и стоимость оборудования (если требуется создать новую суперсистему) или стоимость машинного времени (в случае использования какого-либо суперкомпьютера). В первом случае стоимость исчисляется сотнями, во втором — десятками… миллионов, разумеется. При таком ценовом раскладе проект имеет все шансы стать нерентабельным и лишиться всякого финансирования. Изящное решение не заставило себя ждать. Системы распределенных вычислений. В их основу положен принцип разбиения одной задачи на множество подзадач, с решением которых легко справится среднестатистическая система. Данные, подлежащие обработке, рассылаются по Сети, обрабатываются и затем отсылаются на главный сервер, где происходит “сборка” результатов обработки. Преимущества такого подхода очевидны: легкая масштабируемость (читайте — расширяемость) Сети, производительность, соизмеримая с производительностью суперкомпьютеров, размер вложенных средств. Такие системы применяются не только в интернет-проектах, но и на уровне локальных сетей, например при сетевом рендеринге. Если требуется отрендерить много больших изображений, то данные рассылаются по сети и рендерингом занимаются сетевые компьютеры, а финальная картинка собирается на сервере.
Исторические тернии Идея создания систем распределенных вычислений родилась в далеком 1970 году, когда компьютеры занимали комнаты, гудели многоваттными блоками питания, лениво поедали тонны перфокарт и неторопливо подмигивали системщикам лампочками на панелях. Первые эксперименты с сетевыми программами вылились в создание первого вируса, распространяющегося по сети под именем Creeper (“Вьюнок”), и последовавшим за ним его убийцы Reaper (“Жнец” или “Потрошитель”). Распространяясь по прародителю современного интернета — сети ARPAnet , обе программки эффективно загружали память сетевых машин и отнимали драгоценное процессорное время. “Вьюнок” делал это из вредности, выдавая текстовые сообщения, а “Жнец” сканировал память машины на предмет наличия паразита. Под покровом тайны остался факт, какая же программка больше загружала машину.
Человечество построило космический корабль и слетало на Луну… …вышло в космос в скафандре и подумывает о том, как сделать это без скафандра. Но инопланетян люди нашли только в компьютерных играх. В космосе супостаты умело маскируются.
В 1973 году детище компании PARC ( Xerox Palo Alto Research Center ), являвшееся по своей сути первым “червем”, последовательно и обстоятельно загрузило 100 компьютеров в Ethernet-сети компании таким образом, что все свободное (!) процессорное время было отдано под деятельность червя: создание и рассылку себе подобных. Такая на первый взгляд неполезная вещь, как вирус, дала идею для создания систем сетевого рендеринга на базе компьютеров Apple. Затем последовало затишье… Новый прорыв в области систем распределенных вычислений пришелся на период экспансии интернета в начале 90-х. В первом проекте, получившем широкую огласку, были задействованы несколько тысяч компьютеров по всей глобальной Сети. Целью проекта был взлом алгоритма шифрования методом прямого перебора. Но вторым и значительно более популярным проектом стал SETI@home.
Широта поиска __ Под системами распределенных вычислений скрываются крайне любопытные и полезные проекты. Самый известный — SETI@home — призывает простых пользователей искать жизнь в других звездных системах и даже галактиках при помощи радиотелескопа Arecibo Radio Telescope. Это первый проект, использовавший технологию распределенных вычислений, который получил всемирную известность. Второй глобальный проект, набирающий обороты в данный момент, — United Devices Against Cancer. Проект, разработанный компанией United Devices , специализирующейся на системах распределенных вычислений, направлен на поиск лекарства против рака.
Чудо-радиотелескоп __ Радиотелескоп, на котором основана программа SETI@home , называется Arecibo Radio Telescope и расположен в Пуэрто-Рико. Радиус этого, с позволения сказать, изделия превышает 300 метров. Вот такой милый блинчик — белоснежного цвета и чертовски фотогеничный. Ежедневно радиотелескоп отправляет на обработку около 40 гигабайт данных. Даже если учитывать, что из-за интерференции сигналов на первом этапе
отсекалось 2,31% поступающих от радиотелескопа данных, с таким потоком информации не справлялись компьютеры, задействованные в проекте. Руководитель проекта обратился за помощью к добровольцам с просьбой пожертвовать свободное процессорное время своих машин во благо науки. Впрочем, радиотелескоп занимается не только тем, что денно и нощно ищет признаки разумной жизни во Вселенной. В сентябре 2004 года на Arecibo установили четыре новейших скан-модуля, и телескоп приступил к новой задаче — составлению детальнейшей карты нашей с вами Галактики (Млечный путь). Причем на нее будут нанесены даже самые мелкие объекты с указанием всех свойств и характеристик. Программа исследования называется ALFA , время окончания — не определено. Это что касается настоящего и будущего, а в прошлом с помощью Arecibo уже сделали немало мегаважных астрономических открытий. Например, именно с помощью этого телескопа была обнаружена первая планета за пределами Солнечной системы. Через него же удалось “подсмотреть”, что на поверхности Меркурия есть лед. И, конечно же, такой огромный телескоп не мог не привлечь внимание голливудских режиссеров. Гигантский белый “блин” появлялся на киноэкранах в огромном количестве фильмов.
**Есть ли жизнь на Марсе?!**Вопрос “есть ли жизнь на Марсе” да и во Вселенной вообще — занимает умы ученых и простых граждан с незапамятных времен. Построены огромные телескопы, через которые ученые пристально рассматривают доступные оптике участки галактики. Развернуты гигантские радары, сканирующие самые
Первичная структура белка определяется достаточно быстро даже на одной машине.
потаенные уголки Вселенной: а не спрятался ли там в каком-нибудь закоулочке коварный инопланетянин?! И все было бы хорошо, если бы телескопы и радары могли сами оценить полученную информацию и сказать ученым — вот, вот он, коварный зеленый человечек. Ловите его. Но информация от приборов поступает в необработанном виде, и информации этой много. Радары, например, сканируют Вселенную вообще без перерыва. Вот тут-то система распределенных вычислений и понадобилась. Проект SETI@home (официальный сайт — http://setiathome.ssl.berkeley.edu ) своей задачей как раз и ставит поиск внеземных цивилизаций путем сканирования небосклона радиотелескопом и анализа полученных данных. Просто (на уровне идеи, а не реализации), увлекательно, перспективно… Датой запуска стал май 1999 года, и к настоящему моменту программное обеспечение SETI@home проинсталлировали более 3 млн. добровольцев! Вот и подумайте, какова суммарная производительность такой сети. По данным разработчиков (хотя и они говорят, что это не точно, возможно, больше) — 14 триллионов операций с плавающей точкой в секунду. Это сухим научным языком. А если попроще, чтобы не пришлось
Для просчета маленькой белковой молекулы уже нужна мощная станция.
перенапрягать извилины, то за последние полтора года просчитано было столько информации, сколько пришлось бы считать 500000 лет. Если бы считали только на одном современном компьютере. Если бы разработчики вздумали создавать суперкомпьютерную станцию для расчетов, то потребовались бы десятки миллиардов долларов. А так — получается почти бесплатно, а главное — зеленые человечки ищутся значительно быстрее. Понятно, что для привлечения пользователей-участников нужна была не просто идея ловли зеленых человечков, а что-то еще. И разработчики сделали программу-клиент SETI@home в виде симпатичного скринсейвера. Когда ваш компьютер не занят работой, скринсейвер демонстрирует симпатичные графики обрабатываемых электромагнитных сигналов, производит их перерасчет в понятный формат в виде пиковых, пульсирующих и волновых сигналов. Обработанная информация (пакет) отправляется обратно на сервер. Один момент даже сложилась ситуация, когда пользователей оказалось больше, чем данных, которые нужно обрабатывать. Но создатели быстро сообразили и подключили дополнительные мощности радара. Лекарство от ракаЗеленые человечки — это, конечно, очень хорошо. Но любой пользователь все-таки нет-нет да и задается вопросом “а есть ли она вообще, эта инопланетная жизнь”. Может, зря ищем. Совсем другое дело — рак. Злокачественными опухолями заболевает с каждым годом все больше и больше народа. И если зеленые человечки могут подождать, пока их найдут, то страдающие люди ждать не могут. А
Чтобы просчитать молекулу сложного белка, уже требуется система распределенных вычислений.
что нужно, чтобы успешно лечить рак? В теории — все просто. Нужно подобрать лекарство, которое сможет успешно нейтрализовывать патологические белковые молекулы-маркеры патологических раковых клеток. Маркеры, которые иммунная система организма не воспринимает как что-то чужеродное и потому не уничтожает. Но чтобы найти такое лекарство, надо перебрать многие миллионы и даже миллиарды вариантов химических соединений. Проект United Devices (официальный сайт — www.ud.com ) как раз занимается просчитыванием всех этих реакций за счет мощностей компьютеров простых пользователей. UD — на сегодня второй по популярности проект после SETI@home, разработан Оксфордским университетом и спонсируется компанией Intel. Дистрибутив тоже выполнен предельно симпатично в виде скринсейвера, моделирующего различные химические молекулы. Просчет ведется, только когда вы на машине не работаете, так что не стоит опасаться за снижение производительности — игры будут бегать не менее шустро. После установки клиента его необходимо зарегистрировать на сайте разработчиков, и дальше он начнет планомерно выполнять поставленную задачу: просчитывать химические реакции. Деятельное участиеРассказав о таких суперпроектах, было бы странно не упомянуть, как же самому поучаствовать в исследованиях. Сделать это совсем не сложно. Если ваш компьютер — не совсем уж допотопный (все, что выше P-166, подходит). Чтобы принять участие в любом из вышеописанных проектов, необходимо скачать клиентскую программу с соответствующего сайта (адреса приведены при описании проектов) или взять с наших CD/DVD (там лежат дистрибутивы United DevicesSETI@home ). Установить программы-менеджеры, подключиться к интернету и зарегистрироваться. После этого утилиты можно либо включить в постоянную фоновую работу, либо определить в качестве скринсейверов. В этом случае вычисления будут проводиться только в “спящем” режиме компьютера. И не забывайте почаще подключаться к интернету, чтобы программы могли скидывать обработанную информацию на сервер и получать новые данные для расчетов.
В свое время для изучения генома человека была задействована система распределенных вычислений. Просчет сложного белка на одном современном компьютере занимает около месяца. Лекарство от рака пока не могут найти даже несколько миллионов компьютеров простых пользователей.
Белковые кущи Еще один забавный проект, пускай и не такой привлекательный, зато великолепно оформленный графически, — Distributed Folding (официальный сайт — www.distributedfolding.com ). Ученые ведут исследования в области белковых структур. Исследуются в основном вторичная и третичная структура протеинов. Компьютеры интернета используются для моделирования миллионов возможных конфигураций. На первый взгляд смущает достаточно объемный дистрибутив (около 7 Мб), но когда видишь красоту, происходящую на экране во время работы программы, про все объемы забываешь. Объемные многоцветные молекулы парят в пространстве, поворачиваясь то одним боком, то другим. В общем, лучше один раз увидеть.
Дела статистические __
__ За время существования проекта SETI@home было обработано: 445800039 положительных результатов (в среднем — 107,93 результат на пользователя); 2647483147 пиковых сигналов (6,39 на пользователя); 231759222 гаусс-сигналов (0,51 на пользователя); 212191970 пульс-сигналов (0,47 на пользователя); 226136809 строенных сигналов (0,50 на пользователя); Сложите все цифры слева и получите количество вычислений, которые провели машины интернетчиков, участвующих в проекте. Цифра, мягко говоря,
*** * *** Системы распределенных вычислений находятся только на ранней стадии развития. Самый первый виток эволюции. Можно сказать, они еще не осознали себя, а их создатели до конца не поняли, какие на самом деле мощности открывает перед ними интернет. Рекламные акции во всех случаях проводились довольно скромные, и при этом удалось набрать такое количество добровольных помощников. А если провести нормальную рекламную кампанию, снабдить дистрибутивы аналитических программ какими-нибудь вкусностями вроде мини-игр или бесплатного доступа к какому-нибудь музыкальному серверу… Придумать более рациональную систему сбора информации и задействовать компьютеры не только простых пользователей, но и учреждений, которые, как показывает практика, большую часть времени все равно стоят без дела… В любом случае — в будущем, возможно, не самом близком, но и не таком уж далеком, подобные виртуальные сети будут расти и множиться, а наука получит отличное подспорье для новых важных открытий. Удачи вам в благом самаритянском труде. Возможно, благодаря именно вашему участию в одном из проектов, в самом ближайшем будущем тысячи больных раком людей смогут излечиться или на Землю наконец-то высадится миротворческий десант рыбочервебабуинов из соседней галактики с плазмаганами наперевес и дружественными улыбками на мордах.