Ссылки для упрощенного доступа

logo-print

Метакомпьютеры




Сегодня мы расскажем о таком новом явлении, как метакомпьютинг и конкретных метакомпьютерах, в которых реализовались принципы метакомпьютинга. Метакомпьютер - это множество компьютеров, вплоть до нескольких миллионов, которые параллельно, то есть одновременно решают одну и ту же проблему. Бурно расцвел метакомпьютинг вместе с Интернетом и об одном подобном проекте SETI@Home мы уже рассказывали. Недавно в программе "Седьмой континент" речь шла о суперкомпьютерах, где тоже множество вычислительных комплексов, объединенных в локальную сеть, параллельно решают одну и ту же задачу. Чем тогда принципиально отличается метакомпьютер от суперкомпьютера и, если через Интернет можно в принципе связать десятки миллионов компьютеров в метакомпьютер, то нужны ли тогда вообще суперкомпьютеры?

Суперкомпьютер - это множество компьютерных блоков, связанных не просто сетью, а крайне высокоскоростной сетью. Каждый блок оснащен процессором, оперативной и дисковой памятью, которые по своим характеристикам часто ничем не отличаются от обычных персональных компьютеров. В самых больших современных суперкомпьютерах количество блоков приближается к десяти тысячам. Но главное и самое дорогое в суперкомпьютере - сверхбыстрая связь между блоками. Сверхбыстрая связь необходима потому, что в большинстве реальных задач, например, физико-химических, существенную роль играют не только внутренние процессы, но и обмен энергией, импульсом и веществом. Поэтому блоки суперкомпьютера должны через некоторые отрезки времени обмениваться данными. Чем более этот фактор важен, тем большую роль начинает играть не скорость счета каждого процессора, а обмен информацией между ними. Такие области исследований как автомобилестроение, нефте- и газодобыча, фармакология, прогнозирование погоды, сейсморазведка, проектирование электронных устройств, синтез новых материалов остро нуждаются в суперкомпьютерах.

Но существуют также важные задачи переборного и поискового типа, где вычислительные узлы практически не взаимодействуют во время счета и основную часть работы производят независимо друг от друга. Характерные примеры: подбор ключей к зашифрованному тексту или поиск в сверхбольшом информационном массиве. В подобных алгоритмах связь между узлами может быть медленной, и с такой ролью справятся практически любые локальные или глобальные сети. Этот важный раздел параллельных вычислений и получил название метакомпьютинг, а объединенные низкоскоростной сетью компьютеры, решающие одну задачу, именуются теперь метакомпьютером. Метакомпьютер можно считать крайним частным случаем суперкомпьютера, когда скорость связи между блоками мала. Таким образом, суперкомпьютеры имеют свою область применений, а метакомпьютеры - свою.

В первых метакомпьютерных проектах связь между узлами поддерживалась даже не в режиме реального времени, а по электронной почте. Так, в 1988-ом году ученые из компании DEC написали программу, которая позволяла распределить на множество машин решение математической задачи "факторизации числа". Hе останавливаясь на подробностях, заметим лишь, что она легко разделилась между множеством компьютеров. В 89-ом году в проекте участвовало более тысячи человек, и довольно быстро у него появились младшие братья.

Популярным стало нахождение в распределенных вычислениях новых простых чисел, которые делятся только на единицу и сами на себя. Было обнаружено самое большое из известных простых чисел, длиной примерно в миллион знаков. Кстати, по этому пути можно двигаться беспредельно долго, так как доказано, что простых чисел бесконечно много.

Другой проект из области теории чисел - нахождение чисел Мерсенна, названных так по имени французского ученого и проповедника Марена Мерсенна, жившего в 17 веке. Эти числа получаются, когда двойку возводят в степень какого-нибудь простого числа, а потом отнимают единицу. Если в результате получается простое число, это и есть число Мерсенна. Числа Мерсенна вызывают интерес математиков, так как позволяют найти новые, почитаемые еще с античности совершенные числа, то есть числа, равные сумме своих собственных делителей, кроме себя самого. Сложность заключается в том, что числа Мерсенна найти очень сложно, при всей простоте правил их нахождения, нужно проделывать огромные вычисления, перебирая множество вариантов. Гарантий, что вычисления обязательно приведут к успеху нет, ведь пока не известно, бесконечно ли количество чисел Мерсенна. Распределённый их поиск идет с середины 90х годов, в нем участвуют тысячи математиков-энтузиастов, но до сих пор известно всего 38 таких чисел, причём за последние три года найдено только два новых.

При всей, казалось бы, практической бесполезности, решение громоздких задач из области теории чисел позволило коренным образом усовершенствовать и отладить схему распределённых вычислений. Любопытно, что это лишний раз доказало тезис Леонарда Эйлера о полезности изучения простых чисел. Он писал в 18 веке:

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

Основная схема параллельных метакомпьютерных вычислений после этих проектов стала выглядеть так.

Разнородные компьютеры связаны через Интернет. Для них пишется специальное программное обеспечение. При этом надо учесть, что связь между вычислительными узлами имеет низкую скорость и высокие задержки. Сами узлы - неоднородны. Это разномощные компьютеры, оснащенные различными операционными системами. Все узлы, кроме основного "корневого сервера", ненадежны. Они могут взять на себя кусок работы и после этого никогда не выйти на связь.

Поэтому даже не всякая задача перебора и поиска пригодна для метакомпьютинга. Можно сказать даже резче: редкая задача пригодна для метакомпьютинга. Но замечательно, что такие задачи есть, и не только в области теории чисел, причем очень важные. Они оправдывают использование Интернета как вычислительной среды.

Сергей Абрамов остроумно заметил, что метакомпьютинг применим для задач легко формулируемых в модели "мастер - работяги". "Мастер" - программа, работающая на корневом сервере, "работяги" - программы, запускаемые на других машинах в Интернете. Мастер делит всю работу на части. По запросу работяг он выделяет им отдельный кусок работы. Работяги ее выполняют и, отчитавшись перед мастером, берут следующий кусок.

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

Время передачи задания от мастера к рабочим машинам и их отчет о проделанной работе должно быть как можно меньше, а время счета работягами как можно больше. Необходимо добиться, чтобы время передачи было в тысячи раз меньше времени счета. Иначе тысячи и сотни тысяч работяг завалят мастера своими отчетами. Мастер должен быть готовым к тому, что, взяв некий кусок, работяга может исчезнуть навсегда. Поэтому, мастер, отдав задание, должен его хранить, как отданное, но еще не выполненное, до прихода отчета. Если за разумное время ответ не поступил, то мастер считает работягу "умершим" и отдает его кусок задания другому. Кроме того, программное обеспечение для метакомпьютерных вычислений должно быть независимым от операционной системы, вернее реализовываться под всеми основными операционными системами: Linux, Macintosh, Windows. Таким образом, необходимо изготовить различные версии рабочих программ для каждой из возможных платформ, либо написать платформно-независимую версию для работяг, например, на языке Java.

Новым этапом для метакомпьютинговых вычислений стал 1997 год. В январе компания, разрабатывающая криптосистемы "RSA Data Securitу" для рекламы своего нового алгоритма шифрования, предложила всем желающим взломать его, назначив приз в 10 тысяч долларов. Для взлома надо было перебрать все варианты ключа, а поскольку, такой перебор легко разделялся между множеством машин, то появились профессиональные команды, начавшие эту работу, объединив десятки компьютеров своих локальных сетей.

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

Пожалуй, именно с этого проекта, успешно действующего до сих пор, распределённые вычисления с помощью Интернета получили широкую известность. Расчёты, которые вели тысячи машин этого проекта, были на порядок сложнее прежних. Благодаря открытой статистике развился дух соревнований, поскольку можно было сравнить свой вклад или вклад своей команды в общее дело с результатами других людей. Кроме того, весь проект пристально освещался сетевыми масс-медиа, и количество его участников быстро превысило все остальные проекты вместе взятые. Сейчас их около 200 тысяч человек. Проекту сопутствовала удача. Совместными усилиями удалось взломать за 250 дней 56-битный ключ. Теперь команда трудится над 64-битным ключом. Общими усилиями достигнута скорость перебора в 127 миллиардов ключей в секунду. С такой производительностью полный перебор можно осуществить за 4 года.

После успеха distributed.net подобные инициативы стали рождаться заметно чаще. Вершиной в этой области до сих пор остаётся проект поиска сигналов внеземных цивилизаций SETI@Home, с помощью большой микроволновой антенны в Пуэрто-Рико, начавшийся весной 99 года. На рабочих машинах обрабатываются полученные из космоса сигналы. Мы подробно рассказывали об этом проекте.

Можно лишь добавить, что всего в нём участвует более 3 миллионов человек. Это пока в разы больше любого другого проекта распределённых вычислений, координируемых через Интернет.

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

Количество компьютеров, имеющих выход в Сеть, измерялось сотнями миллионов. Принципиально можно довести число узлов метакомпьютера до десятков миллионов. Рабочих ресурсов достаточно. С другой стороны, существуют задачи, которые требуют огромных вычислений, таких как моделирование свойств новых химических веществ, поведение различных белков. Многие компании хотели бы ускорить подобное моделирование и готовы заплатить за это. Поскольку такие вычисления можно разделять на тысячи небольших частей, то остаётся лишь организовать фирму, которая бы координировала расчёты на машинах Интернет-пользователей и перепродавала их вычислительные ресурсы заказчикам. Для привлечения участников в коммерческие проекты предусмотрена небольшая оплата за сделанную работу, скажем, долларов 10 в месяц или чуть больше. Для многих обладателей доступа к персональным компьютерам, особенно в небогатых странах, такое вознаграждение может оказаться весьма кстати, тем более, что вычисления могут идти в фоновом режиме, одновременно с обычными программами, загружая компьютер только в паузах основной работы. Если учесть, что редактирование текстов и работа с таблицами требуют крайне мало компьютерных ресурсов, то машина может вполне производительно выполнять стороннюю работу.

К сожалению, рождение метакомпьютерных компаний совпало с прошлогодним кризисом Интернет-коммерции. Найти инвесторов для нового дела стало очень трудно, однако некоторым это удалось, и сейчас можно насчитать полдесятка фирм, работающих в сфере матакомпьютинга. Самих же проектов распределённых вычислений сейчас гораздо больше - счёт уже идёт на десятки и каждый месяц появляется несколько новых. Большинство из них - некоммерческие, созданные энтузиастами или поддерживаемые на средства спонсоров и крупных университетов. Чаще всего они решают вопросы биологии, генетики, медицины, поскольку их важность хорошо известна и привлекает добровольцев.

Есть и интересные программы. Так, в одном из них, рассчитывается поведение веществ под действием гамма-излучения. Результаты расчетов должны помочь при проектировании надежных хранилищ ядерных отходов.

Аэрокосмическое агентство Соединенных Штатов, NASA, предлагает всем желающим посчитать марсианские кратеры. Этот проект, пожалуй, уже нельзя назвать матакомпьютингом. Здесь скорее используются возможности распределенной работы множества людей, обрабатывающих однотипные задания по определенному алгоритму с помощью специализированного программного обеспечения. Участникам, вместе с инструкцией, высылаются фотографии марсианской поверхности, которые нужно внимательно просматривать и на замеченных кратерах кликать мышью. Проект так и называется - Clickworkers.

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

Пока, правда, получать деньги за работу своих машин можно лишь в одном проекте - "РrocessTree Network". Он собирает статистику работы глобальной паутины, и для участия в нём требуется постоянное подключение к Сети на скорости не хуже 128 килобит/сек. Таким образом, используются не столько вычислительные ресурсы, сколько коммуникационные. Участники этого проекта получают в месяц примерно 12 долларов.

Несмотря на такие примеры, спрос на коммерческие распределённые вычисления пока только формируется, и большинство проектов держится на альтруизме добровольцев. Впрочем, фирмы-организаторы не унывают и накапливают опыт вместе с программными разработками. Одной из самых авторитетных в этой сфере, является техасская компания United Devices, созданная Дэвидом Андерсоном - одним из авторов проекта SETI@Home. Вместе с Оксфордским университетом, Американским фондом онкологических исследований и компанией Intel, 3го апреля United Devices начала распределённый анализ различных химических веществ, что бы найти среди них пригодные для создания новых лекарств для лечения рака.

Суть этого проекта, в котором занято уже более 300 тысяч человек, проста. Современной медицине известно четыре белка, играющих основную роль в образовании большинства разновидностей рака. Существуют программы, моделирующие реакцию какого-нибудь вещества на эти белки и предсказывающие, сможет ли это вещество обезвредить опасные белки. Поскольку кандидатов на роль таких веществ много, то их перебор удобно возложить на тысячи компьютеров. В результате, каждый участник антиракового проекта скачивает с сайта ud.com двухмегабайтную программу, содержащую модели четырех белков и аналитический модуль. А затем периодически получает файл с молекулами новых веществ, которые анализируются, а результаты анализа возвращаются на сайт. Простые молекулы обрабатываются за несколько секунд, а на большие уходят минуты. Всего проект должен проверить 250 миллионов различных веществ.

Первые удачные результаты в метакомпьютерных расчетах были получены при решении абстрактных и, казалось бы, бесполезных математических задач. Потом удалось разработать алгоритмы для нескольких криптографических и научных проблем. За ними наступает время коммерческих применений. Любопытно, что одно из самых многообещающих коммерческих решений предложила команда математиков и программистов, которая упорно занимается нахождением тех самых чисел Мерсенна, о которых мы говорили выше. Они обратили внимание на то, как неэффективно используются мощности офисных компьютеров. Собственно это одна из основных причин расцвета метакомпьютерных вычислений. Ведь именно на рабочих столах находятся постоянно включенные машины, имеющие круглосуточный доступ к Интернету. А если предложить компаниям рациональнее использовать собственные вычислительные мощности?

Анализ загрузки типичных офисных систем показал, что в среднем они используют всего 10 процентов возможностей своей локальной сети. А ведь в крупной организации внутренняя сеть включает сотни машин. Большинство их занято подготовкой текстов, таблиц, работой с электронной почтой, и печатью документов. Оставшиеся 90 процентов мощностей компьютеров крупной организации эквивалентны мощности суперкомпьютера. Дело в том, что в локальной корпоративной сети, в отличие от Интернета, нетрудно связать все компьютеры достаточно быстрыми дешевыми каналами в сотню мегабит в секунду. При этом действительно при установке соответствующего программного обеспечения может получиться небольшой суперкомпьютер. Такие организации как банки и офисы крупных компаний часто покупают суперкомпьютеры для обеспечения и моделирования сложной коммерческой деятельности. Ответственные задания в режиме он-лайн должны выполнять специализированные суперкомпьютеры, но их подстраховывать как раз может объединенная в суперкомпьютер локальная сеть офиса. Кроме того, вычислительные возможности такого офисного суперкомпьютера можно продавать заинтересованным внешним организациям. Стоимость подобных расчетов может быть гораздо ниже, чем на оригинальных суперкомпьютерах.

Пожалуй, первыми приложениями офисных суперкомпьютеров может стать обработка объемной графической видео и аудиоинформации. Сейчас для этой цели служат графические станции, но их функции легко могут взять на себя объединенные мощности нескольких обычных компьютеров. При таком сетевом использовании гораздо дольше могут служить купленные несколько лет назад компьютеры. Если раньше их искусственно старили новые неподъемные программы со множеством графических примочек, то теперь якобы "устаревший" компьютер может продолжать работать на вычислительные задачи компании, вырабатывая еще долгие годы свой ресурс.

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

Все ссылки в тексте программ ведут на страницы лиц и организаций, не связанных с радио "Свобода"; редакция не несет ответственности за содержание этих страниц.

XS
SM
MD
LG