Распределённые вычисления

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

Распределённые вычисле́ния (distributed computing, grid computing, volunteer computing) — способ решения трудоёмких вычислительных задач с использованием двух и более компьютеров, объединённых в сеть.

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

Содержание

[править] История

В последнее время в качестве исполнителей выступают компьютеры, связанные посредством той или иной среды передачи данных, однако в прошлом для этого использовались и люди. Например, решение для модели атомной бомбы в США было получено коллективом учёных, которые пользовались вычислительными машинами.

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

Такой проект распределённых вычислений в интернете, как SETI@Home и Folding@Home обладает не меньшей вычислительной мощностью, чем самые современные суперкомпьютеры. Проект отмечен в Книге рекордов Гиннеса, как самое большое вычисление.

На сегодняшний день для упрощения процесса организации и управления распределёнными вычислениями создано несколько программных комплексов, как коммерческих, так и абсолютно бесплатных (см. ссылки).

[править] Участие в проектах распределенных вычислений

[править] Общая схема участия

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

[править] Привлечение и мотивация участников

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

Многие проекты создают среду для соревнования участников по объёму проделанных вычислений, как в личном, так и в командном зачёте. Вероятно, стимулом для участия в таких проектах является возможность «похвастаться» перед другими участниками доступными вычислительными ресурсами. Немаловажным фактором здесь является наличие подробной и красиво оформленной статистики о проделанной участниками работе, таблиц рейтингов, форумов для обсуждения проекта и т.п. — все это образует социальную сеть для общения участников в среде единомышленников. При этом собственно цель вычислений проекта для многих из них уходит на второй план и становится не так важна, как, например, детали оформления сайта и клиентского программного обеспечения. Успешность такого подхода доказывает существование множества сайтов команд-участниц того или иного проекта (см. ссылки), которые добровольно и самостоятельно рекламируют выбранный проект и привлекают новых участников.

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

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

[править] Критика проектов распределенных вычислений

Организаторами распределённых вычислений изначально заявляется безвозмездность участия всех, кто присоединяется к их проектам, а так же то, что их результаты будут опубликованы, однако, существует возможность того, что:

  • заявленные цели проекта не соответствуют реальным и присылаемые для обработки данные являются, например, проектом по разработке новейшего вооружения. Проблема в том, что исходные тексты клиентских программ большинства проектов не открыты для общего доступа, а значит, конечный участник проекта не имеет возможности проанализировать работу клиентской программы - попытка дизассемблировать программу противозаконна[источник не указан 34 дня].
  • научные достижения, полученные в ходе исследования, будут сначала рассмотрены и/или использованы с точки военного применения, а лишь потом перейдут в гражданские сферы. Эти достижения также могут быть присвоены организаторами проекта и остальные участники не получат ничего.

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

[править] Организации, участвующие в проектах распределенных вычислений

[править] Список проектов распределённых вычислений

Ниже приведен список наиболее популярных проектов распределённых вычислений в интернете. Более полный список практически всех существующих и существовавших проектов распределённых вычислений в интернете доступен на сайте Distributed Computing(англ.).

[править] Биология и медицина

  • Rosetta@home — вычисление структуры белка с самой низкой энергией;
  • Folding@Home — проект по расчёту третичной структуры белков;
  • World Community Grid — исследования, связанные с генетикой человека, а также с различными тяжёлыми заболеваниями. Изучение белков и их каталогизация;
  • grid.org — проект по поиску лекарства от рака (завершен 27 апреля 2007 года (не нашли));
  • Find-a-Drug — проект по поиску лекарств от различных болезней путём расчёта докинга белков с различными молекулами (завершен в 2005 году);
  • DrugDiscovery@Home - фолдинг белка, скрининг баз данных биологически активных соединений.

[править] Математика и криптография

[править] Естественные науки

[править] Ссылки

[править] Статьи о распределенных вычислениях

[править] Командные сайты

Распределенные вычисления в операционных системах

[править] ПО для организации распределённых вычислений

  • Apache Hadoop
  • BOINC — Открытая Инфрастуктура для Распределенных Вычислений университета Беркли (Berkeley Open Infrastructure for Network Computing), распространяемая под лицензией LGPL.
  • Condor(англ.)
  • Globus Toolkit(англ.) — набор программ значительно упрощающий создание и управление распределёнными вычислениями.

[править] См. также