Эх, ухнем! Распределенные вычисления вчера и сегодня…

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Обзор | Лайв им. SETI_home_v8
Эх, ухнем! Распределенные вычисления вчера и сегодня


Принцип параллельного проведения расчетов – один из тех, что буквально «витают в воздухе». И это естественно, ведь любую работу удобней выполнять сообща. Параллельные вычисления появились задолго до первой ЭВМ, однако идея расцвела именно в компьютерную эпоху, ведь именно тогда появились и задачи, требующие большой вычислительной мощности, и устройства, готовые «всем миром» эту мощность предоставить. В эти дни исполняется ровно 15 лет с моего первого знакомства с проектами распределенных вычислений – хороший повод, чтобы написать об их истории и сегодняшнем дне.

Краткое теоретическое предисловие

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

  • Раздача «сырых» кусочков клиентам и прием от них результатов обработки;
  • Контроль потерянных и неверно посчитанных фрагментов;
  • Интерпретация полученных кусочков в свете общей цели;
  • Подсчет и визуализация статистики.

Итак, программа, установленная на клиенте, получает кусочек задания, выполняет его и отсылает результат в центр. В первых проектах блоки пересылались вручную, по e-mail, потом транспортная функция была полностью автоматизирована, было бы подключение к интернету (что в конце 90-х, впрочем, не звучало так банально, как сейчас). По большому счету, из всех компонентов компьютера программа использует только процессор, так сказать, «подчищая» его незадействованный ресурс. Приложение-клиент работает с низким приоритетом, не мешая остальным, однако, есть, конечно, у стопроцентной утилизации и отрицательные стороны: прежде всего, повышенное энергопотребление и тепловыделение ПК.
Несмотря на кажущуюся простоту, создать систему распределенных вычислений до появления типовых решений было задачей нетривиальной – ведь надо было как минимум написать клиенты под несколько операционных систем и управляющий сервер, да так, чтобы это все вместе еще и работало. Некоторые проекты так и не смогли преодолеть «детские болезни» и не достигли своих целей. Однако существовали и вполне успешные – один из таких и затянул меня на без малого 5 лет.

Эпоха distributed.net

Итак, начало 1998 года. Один из моих коллег по тогдашней работе, человек увлекающийся и азартный, рассказывает нам о невиданном чуде: проекте, объединяющем компьютеры со всего мира в единую вычислительную сеть. Идея как-то сразу всем приглянулась, включая техническое руководство – и процесс пошел. В нашем распоряжении было тогда около сотни рабочих станций и десяток серверов, и практически все они были пущены в дело.
Проект, в который мы вошли, назывался Bovine RC5. Как следует из названия, его идея – атака с помощью «грубой силы» (простого перебора вариантов) на алгоритм шифрования RC5. Первый ключ был 40-битным – его «расковыряли» за три с небольшим часа. 48-битный продержался 13 дней, 56-битный – 265 дней. На момент нашего подключения проект находился в 64-битной фазе, она продолжалась почти 5 лет.
Bovine RC5 быстро набрал популярность. Организаторы проекта, сообщество distributed.net, сумели правильно определить главную движущую силу процесса – азарт участников. Движуха приобрела глобальный масштаб: команда соревновалась с командой, страна – со страной. «Догнать и перегнать» стала практически смыслом жизни для сотен тысяч человек, а для русских, как водится, еще и чем-то вроде национальной идеи. Каждое утро начиналось для нас с просмотра командной и глобальной статистики, клиент RC5 ставился на любой компьютер, который попадал к нам в руки. Дошли до того, что запускали «коровок» на чужих серверах, до которых была удаленка – до первого конфликта.


Интерфейс клиента distributed.net почти не изменился за время существования проекта

После завершения 64-битной фазы интерес к проекту стал угасать, прежде всего потому, что следующая, 72-битная, обещала быть очень долгой. Предчувствия нас не обманули: она продолжается уже более 10 лет, за это время проверено лишь чуть более 2,5% пространства ключей. Скорее всего, до 80-битного ключа дело уже не дойдет, хотя вычислительная мощность компьютеров за время проекта и возросла многократно. Что ни говори, а предполагаемая продолжительность этапа в 400 лет определенно пугает.

Считаем линейки и ищем инопланетян

Bovine RC5 можно отнести скорее к спортивным соревнованиям, нежели к способу решения каких-то реальных вычислительных задач, тем более что затеявшая его RSA сама впоследствии от него открестилась. Есть, впрочем, у distributed.net и более ценный для науки проект: расчет оптимальных линеек Голомба, однако с каждой новой единицей длины линейки он также скрипит все больше.
Естественно, сообществом distributed.net организаторы проектов добровольных распределенных вычислений не исчерпываются. Напротив, в мире сейчас насчитывается не менее сотни активных проектов, некоторые из которых также имеют богатую историю: так, с 1996 года идет поиск простых чисел Мерсенна, а в 1999 году начался проект SETI@home, где на основе расшифровки данных радиотелескопов SETI изучается вопрос, есть ли жизнь на Марсе во Вселенной. Всего же, как уже говорилось, вариантов буквально «несть числа»: тут и поиск лекарств от самых страшных болезней, и совершенствование Большого Адронного Коллайдера, и изучение трехмерной структуры белка, и решение многочисленных математических проблем и гипотез… вам предоставляется огромный выбор, в каком проекте участвовать, и можно утверждать на 100%: для процессора своего ПК вы нагрузку обязательно найдете – к вящему удовольствию обоих. Не забывайте только следить за температурой.


Клиент BOINC выгодно отличается от всех прочих наличием дизайна

Важным событием в жизни «распределенного» сообщества стало появление в 2005 году платформы BOINC (Berkeley Open Infrastructure for Network Computing) производства краснознаменного Калифорнийского университета в Беркли, как у них водится – с открытым исходным кодом. BOINC представляет собой готовую обвязку (типовые серверные компоненты + клиент) для проектов по сетевым вычислениям, которая значительно облегчает их запуск, хотя и не избавляет полностью от умственного труда, поскольку ряд серверных модулей необходимо готовить под конкретную задачу. Зато клиент, можно сказать, готов почти полностью, отлаженный и красивый. Более того, он позволяет участвовать сразу в нескольких BOINC-совместимых проектах. Получается эдакая связка разнородных, но объединенных технологически задач, что идет на пользу и самим задачам, и идеологии в целом.

Закончить хотелось бы опять на лирической ноте. Возможно, распределенные вычисления – это не самый оптимальный способ потратить имеющиеся у вас процессорные мощности. Но, если подумать, другие способы ведь еще менее оптимальны? Зато почувствовать себя членом команды – более легкого пути, пожалуй, нет. Моя «карьера» в этой области закончилась в 2004 – почти 9 лет назад. И вот сюрприз: сейчас, когда писал этот пост, зашел в статистику своей команды – представляете, она до сих пор жива и по-прежнему занимает первое место в нашем регионе. Не перевелись еще на Руси увлеченные люди!
Я приглашаю всех, кто когда-либо участвовал в проектах по распределенным вычислениям, откликнуться и дополнить мой рассказ – может быть, я чего-то пропустил?

http://www.boinc.ru

http://forum.boinc.ru/default.aspx?g=mytopics

http://boinc.berkeley.edu/download.php

http://www.boinc.ru/doc/boinc/boinc_setup.htm

 

нет
Автор не входит в состав редакции iXBT.com (подробнее »)
Об авторе
https://boinc.ru/ распределенные вычисления на благо науки!

Сейчас на главной

Новости

Публикации

Обзор Truthear Hexa: превосходные наушники для агрессивных жанров

Обзор
Сегодня предлагаю рассмотреть еще одну из горячих новинок этой зимы - гибридные наушники Truthear Hexa, базирующиеся на 10 мм динамике, двух арматурных излучателях HRTF и высокочастотном драйвере...

Купил 3D-принтер, а он плохо печатает. Что делать?

Гайд
Не так давно я приобрёл свой первый 3D-принтер FlyingBear Ghost 5. Естественно, после сборки я сразу же приступил к первой тестовой печати. После неё у меня возникла проблема с качеством...

Обзор универсального аккумуляторного инструмента (реноватор, мультитул, осциллятор) Deko DKOT20 Multi

Обзор
Согласитесь, бывают случаи, когда необходимо к чему-то подлезть, а болгарка или лобзик физически не помещаются?! В таких ситуациях приходит на помощь реноватор (мультитул, осциллятор), который...

Обзор внешнего SSD Orico MTQ-40G 2TB – поддержка USB 4.0 и скорости до 40Gbps

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

Почему же она «черная»? Что такое «черная пятница» и откуда она взялась?

Рассуждения
Массовая распродажа "Чёрная распродажа" в самом разгаре, но возможно многие задавались вопросом, почему же она "чёрная" и почему все же "пятница". Это самая масштабная распродажа охватывает...