Архивы: по дате | по разделам | по авторам

Распределённое время. История Distributed Computing

АрхивТехнологии
автор : Владимир Николаевич   21.06.2004

История распределённых вычислений началась вовсе не в конце девяностых. Еще тридцать лет назад в исследовательском центре PARC Xerox ученые задумались об использовании свободных ресурсов имевшихся в центре ЭВМ.

Многие думают, что история Distributed Computing началась лишь во второй половине 1990-х годов, когда в интернет начали вливаться миллионы рядовых пользователей. Однако еще в начале 1970-х в исследовательском центре PARC (Xerox, Palo Alto) ученые, создававшие программы для первых компьютерных сетей, задумались об использовании свободных вычислительных ресурсов имевшихся в центре машин.

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

Двое исследователей - Джон Шох и Жон Хапп (John F. Shoch, Jon A. Hupp) - написали в 1973 году несложную программу, которая запускалась в локальную сеть центра по ночам, расползалась по невыключенным компьютерам и заставляла их выполнять разного рода вычисления. В честь похожей программы из фантастического рассказа Джона Браннера авторы назвали свое детище червяком. Параллель между программой из PARC и современными интернет-червями справедлива. Однако стоит заметить, что Шох и Хапп вовсе не пытались создать некоего гада, разбегающегося по всем щелям с максимальной скоростью, - это сделал Роберт Моррис в 1988 году, отчего его и считают отцом сетевых червей. Ученых же из PARC волновали сугубо утилитарные задачи.

Идея совместной работы множества компьютеров, объединенных в сеть, оказалась вполне плодотворной и далее развивалась медленно, но верно. К концу 1980-х, когда компьютеры уже стали персональными, а их владельцы все чаще использовали электронную почту, произошел качественный скачок. Арьен Ленстра и Марк Менес (Arjen K. Lenstra, Mark S. Manasse), также работавшие в Рало-Альто, но уже на компанию DEC, написали программу для факторизации (разбиения на множители) длинных чисел. Чтобы процесс шел быстрее, программа могла запускаться на множестве машин, каждая из которых обрабатывала лишь небольшой фрагмент числа.

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

По сути, Ленстра и Менес продемонстрировали, как можно создать "на коленке" необычайно успешный распределенный проект. Именно поэтому родословную нынешних распределенных вычислений следует вести от первой факторизации 1988 года, а не от более раннего червя-вампира из PARC. Все-таки, несмотря на общую суть, эти два проекта сильно отличались. В лаборатории PARC машины были связаны первым Ethernet’ом и постоянно обменивались данными на большой скорости. Это был прообраз кластерных суперкомпьютеров. В тоже время участники факторизации были связаны очень медленными каналами, да и то не всегда, а эпизодически, и не друг с другом, а лишь с центральным сервером проекта.

Хотя термины для того и другого давно устоялись (Distributed Computing и Grid Computing), их до сих пор часто смешивают, нередко сознательно и с вполне корыстными целями. Мы не станем вникать в нюансы терминологии, а просто зафиксируем, что далее будем рассматривать лишь идейных потомков проекта Ленстры и Менеса, поскольку их могут создавать обычные люди и они открыты для участия рядовых интернет-пользователей.

Уже в первые распределенные вычисления (1988) оказалась втянута компьютерная мощь, суммарно стоившая миллионы долларов. Это впечатляло, но было понятно, что вычисления такого рода годятся лишь для специфических задач. В отличие от суперкомпьютера Cray, способного, грубо говоря, считать что угодно, тысячи энтузиастов связанных по электронной почте при всем желании не могут эффективно рассчитывать, например, форму гребного винта - эта задача требует постоянного обмена данными между машинами участников. Проблема взаимосвязи - ахиллесова пята распределенных проектов. Их участники только изредка, раз в сутки (а лучше - реже), готовы обмениваться с сервером проекта небольшими файлами. Очевидно, что организовать вычисления в таком квазипараллельном режиме - весьма непросто. Тем не менее, некоторые задачи даже в таких условиях решаются просто замечательно, если удовлетворяют одному требованию - огромное количество работы над маленьким объемом данных.

Вполне естественно, что первыми такими проектами стали разного рода математические исследования. Нередко их участникам рассылалось всего несколько байт - координаты на линии чисел, между которыми надо было провести некий поиск, например новых чисел Серпинского. Конечно, все это было интересно лишь горячим поклонникам математики, но, судя по хронике, увлеченных людей в интернете всегда хватало. В 1993 году одна из таких групп факторизовала число длиной 129 знаков. Потом длиной 130. А затем пошла мода на поиск простых чисел - делящихся лишь на единицу и на самих себя. Проектов такого рода возникло не один десяток - разные группы брались за поиск новых чисел Мерсенна, дружественных и совершенных чисел, расчет числа p и т. д. и т. п. Многие из этих сообществ работают до сих пор, но мы не будем на них останавливаться - читатели могут обратиться к  статье "Гонки по вертикали" Леонида Дурмана.

Неизвестные распределённые вычисления

Проекты Distributed Computing, не привлекшие должного внимания публики.

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

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

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

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

- Из журнала "Компьютерра" от 08 июня 2004 года.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.