Jump to content

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

(Перенаправлено из распределенной программы )

Распределенные вычисления -это область компьютерных наук , которая изучает распределенные системы , определяемые как компьютерные системы , чьи взаимосвязанные компоненты расположены на различных сетевых компьютерах . [ 1 ] [ 2 ]

Компоненты распределенной системы сообщают и координируют свои действия, передавая сообщения друг другу, чтобы достичь общей цели. Три значительных проблемах распределенных систем: поддержание параллелизма компонентов, преодоление отсутствия глобальных часов и управление независимым сбоем компонентов. [ 1 ] Когда компонент одной системы сбой, вся система не проходит. [ 3 ] Примеры распределенных систем варьируются от систем на основе SOA до микросервисов до массовых многопользовательских онлайн-игр и одноранговых приложений . Распределенные системы стоят значительно дороже, чем монолитные архитектуры, в первую очередь из -за увеличения потребностей в дополнительных аппаратных средствах, серверах, шлюзах, брандмауэрах, новых подсетях, прокси и так далее. [ 4 ] Кроме того, распределенные системы склонны к ошибкам распределенных вычислений . С другой стороны, хорошо спроектированная распределенная система является более масштабируемой, более долговечной, более изменчивой и более тонкой, чем монолитное приложение, развернутое на одной машине. [ 5 ]

Компьютерная программа , которая работает в распределенной системе, называется распределенной программой , [ 6 ] и распределенное программирование - это процесс написания таких программ. [ 7 ] Существует много различных типов реализаций для механизма передачи сообщений, включая чистый HTTP, RPC-подобные разъемы и очереди сообщения . [ 8 ]

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

Введение

[ редактировать ]

Слово, распространяемое в таких терминах, как «распределенная система», «распределенное программирование» и « распределенный алгоритм », первоначально упоминаемый в компьютерные сети, где отдельные компьютеры были физически распределены в некоторых географических областях. [ 11 ] Термины в настоящее время используются в гораздо более широком смысле, даже ссылаясь на автономные процессы , которые работают на одном физическом компьютере и взаимодействуют друг с другом путем передачи сообщений. [ 10 ]

Хотя нет единого определения распределенной системы, [ 12 ] Следующие определяющие свойства обычно используются как:

Распределенная система может иметь общую цель, такую ​​как решение большой вычислительной задачи; [ 15 ] Затем пользователь воспринимает коллекцию автономных процессоров как единицу. В качестве альтернативы, у каждого компьютера может быть свой пользователь с индивидуальными потребностями, и цель распределенной системы состоит в том, чтобы координировать использование общих ресурсов или предоставление услуг связи пользователям. [ 16 ]

Другие типичные свойства распределенных систем включают следующее:

  • Система должна переносить неудачи в отдельных компьютерах. [ 17 ]
  • Структура системы (топология сети, задержка сети, количество компьютеров) не известна заранее, система может состоять из различных видов компьютеров и сетевых ссылок, и система может изменяться во время выполнения распределенной программы. [ 18 ]
  • Каждый компьютер имеет только ограниченный, неполный вид системы. Каждый компьютер может знать только одну часть ввода. [ 19 ]

Вот общие архитектурные шаблоны, используемые для распределенных вычислений: [ 20 ]

Параллельные и распределенные вычисления

[ редактировать ]
(а), (б): распределенная система.
(C): параллельная система.

Распределенные системы - это группы сетевых компьютеров, которые имеют общую цель для их работы. Термины « одновременные вычисления », « параллельные вычисления » и «распределенные вычисления» имеют много совпадения, и между ними не существует четких различий. [ 21 ] Одна и та же система может быть охарактеризована как «параллельная» и «распределенная»; Процессоры в типичной распределенной системе работают одновременно параллельно. [ 22 ] Параллельные вычисления могут рассматриваться как особенно тесно связанная форма распределенных вычислений, [ 23 ] и распределенные вычисления могут рассматриваться как слабо связанная форма параллельных вычислений. [ 12 ] Тем не менее, можно приблизительно классифицировать параллельные системы как «параллельные» или «распределенные», используя следующие критерии:

  • На параллельных вычислениях все процессоры могут иметь доступ к общей памяти для обмена информацией между процессорами. [ 24 ]
  • В распределенных вычислениях каждый процессор имеет свою собственную частную память ( распределенную память ). Информация обменивается путем передачи сообщений между процессорами. [ 25 ]

Рисунок справа иллюстрирует разницу между распределенными и параллельными системами. Рисунок (а) представляет собой схематический вид типичной распределенной системы; Система представлена ​​как топология сети, в которой каждый узел является компьютером, а каждая строка, подключающая узлы, является связью связи. Рисунок (b) показывает ту же распределенную систему более подробно: у каждого компьютера есть своя локальная память, и информацию можно обмениваться только передачей сообщений от одного узла в другой, используя доступные ссылки на связь. На рисунке (C) показана параллельная система, в которой каждый процессор имеет прямой доступ к общей памяти.

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

Использование параллельных процессов, которые общаются через передачу сообщений, имеет свои корни в операционной системы , изученной в 1960-х годах. архитектурах [ 27 ] Первыми широко распространенными распределенными системами были сети местных районов, такие как Ethernet , которые были изобретены в 1970-х годах. [ 28 ]

Arpanet , один из предшественников Интернета , был представлен в конце 1960-х годов, а электронная почта Arpanet была изобретена в начале 1970-х годов. Электронная почта стала самым успешным применением Arpanet, [ 29 ] И это, вероятно, самый ранний пример крупномасштабного распределенного приложения . В дополнение к Arpanet (и его преемнику, Global Internet), другие ранние мировые компьютерные сети включали Usenet и Fidonet с 1980 -х годов, которые были использованы для поддержки распределенных систем обсуждения. [ 30 ]

Изучение распределенных вычислений стало его собственной ветвью компьютерных наук в конце 1970 -х и начале 1980 -х годов. Первая конференция в этой области, симпозиум по принципам распределенных вычислений (PODC), датируется 1982 году, и его аналога Международного симпозиума по распределенным вычислениям (DISC) впервые проходил в Оттаве в 1985 году в качестве международного семинара по распределенным алгоритмам на графиках. [ 31 ]

Архитектуры

[ редактировать ]

Различные аппаратные и программные архитектуры используются для распределенных вычислений. На более низком уровне необходимо взаимосвязать несколько процессоров с какой -то сетью, независимо от того, напечатана ли эта сеть на плату или состоит из слабо связанных устройств и кабелей. На более высоком уровне необходимо взаимодействовать процессы, работающие на этих процессорах с какой -либо системой связи . [ 32 ]

Разделяют ли эти процессоры ресурсы или не определяют первое различие между тремя типами архитектуры:

Распределенное программирование, как правило, попадает в одну из нескольких основных архитектур: клиент-сервер , трехуровневый , n- тетер или одноранговый ; или категории: свободная связь или плотная связь . [ 33 ]

  • Клиент - сервер : архитектуры, где умные клиенты связываются с сервером для данных, затем форматируют и отображают его пользователям. Ввод в клиенте совершается обратно на сервер, когда он представляет постоянное изменение.
  • Трехровневые : архитектуры, которые перемещают клиентский интеллект в средний уровень, чтобы без сохранения состояния использовать клиентов . Это упрощает развертывание приложений. Большинство веб-приложений трехуровневые.
  • n -tier : архитектуры, которые обычно относятся к веб -приложениям, которые дополнительно пересылают свои запросы в другие корпоративные услуги. Этот тип приложения является наиболее ответственным за успех серверов приложений .
  • Однозначные : архитектуры, где нет специальных машин, которые предоставляют услугу или управляют сетевыми ресурсами. [ 34 ] : 227  Вместо этого все обязанности равномерно разделены между всеми машинами, известными как сверстники. Компании могут служить как клиенты, так и в качестве серверов. [ 35 ] Примеры этой архитектуры включают BitTorrent и биткойн -сеть .

Другим основным аспектом распределенной вычислительной архитектуры является метод передачи и координации работы между параллельными процессами. Через различные протоколы прохождения сообщений процессы могут напрямую общаться друг с другом, как правило, в основных/суб -отношениях. В качестве альтернативы, «ориентированная на базу данных» архитектура может позволить выполнять распределенные вычисления без какой-либо формы прямой межпроцессной связи , используя общую базу данных . [ 36 ] Архитектура, ориентированная на базу данных, в частности, обеспечивает аналитику реляционной обработки в схематической архитектуре, позволяющая реле в живой среде. Это позволяет распределенные вычислительные функции как внутри, так и за пределами параметров сетевой базы данных. [ 37 ]

Приложения

[ редактировать ]

Причины использования распределенных систем и распределенных вычислений могут включать в себя:

  • Сама природа приложения может потребовать использования коммуникационной сети, которая подключает несколько компьютеров: например, данные, полученные в одном физическом месте и требуются в другом месте.
  • Есть много случаев, когда использование одного компьютера в принципе будет возможным, но использование распределенной системы полезно по практическим причинам. Например:
    • Это может обеспечить гораздо большую память и память, более быстрые вычисления и более высокую пропускную способность, чем одна машина.
    • Он может обеспечить большую надежность, чем не распределенная система, так как нет единой точки отказа . Более того, распределенная система может быть легче расширить и управлять, чем монолитная униопроцессорная система. [ 38 ]
    • Может быть более экономически эффективным, чтобы получить желаемый уровень производительности, используя кластер из нескольких низкоуровневых компьютеров, по сравнению с одним высококачественным компьютером.

Примеры распределенных систем и применений распределенных вычислений включают следующее: [ 39 ]

Теоретические основы

[ редактировать ]

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

Теоретическая компьютерная наука стремится понять, какие вычислительные задачи могут быть решены с помощью компьютера ( теория вычисления ) и того, насколько эффективно ( теория вычислительной сложности ). Традиционно говорят, что проблема может быть решена с помощью компьютера, если мы можем разработать алгоритм , который создает правильное решение для любого данного экземпляра. Такой алгоритм может быть реализован как компьютерная программа , которая работает на компьютере общего назначения: программа считывает экземпляр проблемы из ввода , выполняет некоторые вычисления и производит решение в качестве вывода . Формализмы, такие как машины случайного доступа или универсальные машины Turing, могут использоваться в качестве абстрактных моделей последовательного компьютера общего назначения, выполняющего такой алгоритм. [ 41 ] [ 42 ]

Область одновременных и распределенных вычислительных исследований аналогичные вопросы в случае с несколькими компьютерами или компьютером, который выполняет сеть взаимодействующих процессов: какие вычислительные задачи могут быть решены в такой сети и насколько эффективно? Тем не менее, совсем не очевидно, что подразумевается под «решением проблемы» в случае одновременной или распределенной системы: например, какова задача дизайнера алгоритма и что является одновременным или распределенным эквивалентом последовательного Компьютер общего назначения? [ Цитация необходима ]

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

Обычно используются три точки зрения:

Параллельные алгоритмы в модели общей памяти
  • Все процессоры имеют доступ к общей памяти. Дизайнер алгоритма выбирает программу, выполненную каждым процессором.
  • Одной теоретической моделью являются параллельные машины случайного доступа (PRAM), которые используются. [ 43 ] Тем не менее, классическая модель PRAM предполагает синхронный доступ к общей памяти.
  • Программы общей памяти могут быть расширены на распределенные системы, если базовая операционная система инкапсулирует связь между узлами и практически объединяет память во всех отдельных системах.
  • Модель, которая ближе к поведению реальных многопроцессорных машин и учитывает использование машинных инструкций, таких как сравнение и заставка (CAS),-это асинхронная общая память . На этой модели существует широкая работа, краткое изложение которого можно найти в литературе. [ 44 ] [ 45 ]
Параллельные алгоритмы в модели передачи сообщений
  • Дизайнер алгоритма выбирает структуру сети, а также программу, выполненную каждым компьютером.
  • Модели, такие как логические схемы и сортировочные сети . [ 46 ] Логическая схема можно рассматривать как компьютерную сеть: каждый ворота представляет собой компьютер, который запускает чрезвычайно простую компьютерную программу. Точно так же сеть сортировки можно рассматривать как компьютерную сеть: каждый компаратор является компьютером.
Распределенные алгоритмы в модели передачи сообщений
  • Дизайнер алгоритма только выбирает компьютерную программу. Все компьютеры запускают одну и ту же программу. Система должна работать правильно независимо от структуры сети.
  • Обычно используемая модель-это график с одной машиной конечного состояния на узле.

В случае распределенных алгоритмов вычислительные задачи обычно связаны с графиками. Часто график, который описывает структуру компьютерной сети, является проблему. Это проиллюстрировано в следующем примере. [ 47 ]

Рассмотрим вычислительную проблему поиска окраски данного графика g . Различные поля могут использовать следующие подходы:

Централизованные алгоритмы [ 47 ]
  • График G кодируется как строка, а строка приведена в качестве входного компьютера. Компьютерная программа находит окраску графика, кодирует окраску как строку и выводит результат.
Параллельные алгоритмы
  • Опять же, график G кодируется как строка. Тем не менее, несколько компьютеров могут получить доступ к одной и той же строке параллельно. Каждый компьютер может сосредоточиться на одной части графика и создать окраску для этой части.
  • Основное внимание уделяется высокопроизводительным вычислениям, в котором эксплуатируется мощность обработки нескольких компьютеров параллельно.
Распределенные алгоритмы
  • График G - это структура компьютерной сети. Существует один компьютер для каждого узла и одной связи связи для каждого края G. G Первоначально каждый компьютер знает только о своих ближайших соседях на графике G ; чтобы узнать больше о структуре G. Компьютеры должны обмениваться сообщениями друг с другом , Каждый компьютер должен создавать свой собственный цвет в качестве вывода.
  • Основное внимание уделяется координации работы произвольной распределенной системы. [ 47 ]

В то время как поле параллельных алгоритмов имеет иной фокус, чем область распределенных алгоритмов, между двумя полями существует большое взаимодействие. Например, алгоритм Коул -Вишкина для раскраски графика [ 48 ] первоначально был представлен как параллельный алгоритм, но та же самая техника также можно использовать непосредственно в качестве распределенного алгоритма.

Кроме того, параллельный алгоритм может быть реализован либо в параллельной системе (с использованием общей памяти), либо в распределенной системе (с использованием передачи сообщений). [ 49 ] Традиционная граница между параллельными и распределенными алгоритмами (выберите подходящую сеть против выполнения в любой данной сети), не лежит в том же месте, что и граница между параллельными и распределенными системами (общая память против передачи сообщений).

Сложность мер

[ редактировать ]

В параллельных алгоритмах, еще один ресурс в дополнение к времени и пространству - это количество компьютеров. Действительно, часто существует компромисс между временем выполнения и количеством компьютеров: проблема может быть решена быстрее, если на параллельности работают больше компьютеров (см. Speadup ). Если проблема принятия решения может быть решена в полилогарифмическое время с помощью полиномиального числа процессоров, то, как говорят, проблема находится в классе NC . [ 50 ] Класс NC может быть одинаково хорошо определен с использованием формализма PRAM или логических цепей - Pram Machines могут эффективно имитировать логические цепи и наоборот. [ 51 ]

В анализе распределенных алгоритмов больше внимания уделяется операциям связи, чем вычислительные этапы. Возможно, самая простая модель распределенных вычислений - это синхронная система, в которой все узлы работают в виде блокировки. Эта модель обычно известна как локальная модель. Во время каждого раунда общения все узлы параллельно (1) получают последние сообщения от своих соседей, (2) выполняют произвольные локальные вычисления и (3) отправляют новые сообщения своим соседям. В таких системах центральной мерой сложности является количество синхронных раундов связи, необходимых для выполнения задачи. [ 52 ]

Эта мера сложности тесно связана с диаметром сети. Пусть D - диаметр сети. С одной стороны, любая вычисляемая проблема может быть выполнена тривиально в синхронной распределенной системе примерно в 2 D связи: просто собирайте всю информацию в одном месте ( днях раундах), решайте проблему и сообщите каждому узлу о решении ( D Rounds )

С другой стороны, если время выполнения алгоритма намного меньше, чем раунд связи D , то узлы в сети должны создавать свой выход, не имея возможности получить информацию об отдаленных частях сети. Другими словами, узлы должны принимать глобально последовательные решения на основе информации, которая доступна в их локальном D-Nighbourhood . Многие распределенные алгоритмы известны с временем бега, намного меньше, чем D , и понимание того, какие проблемы могут решить с помощью таких алгоритмов, является одним из центральных исследований в этой области. [ 53 ] Обычно алгоритм, который решает проблему в полилогарифмическом времени в размере сети, считается эффективной в этой модели.

Другой обычно используемой мерой является общее количество битов, передаваемых в сети (см. Сложность связи ). [ 54 ] Особенности этой концепции обычно фиксируются с помощью модели Contest (B), которая аналогично определяется как локальная модель, но где отдельные сообщения могут содержать только B -биты.

Другие проблемы

[ редактировать ]

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

Существуют также фундаментальные проблемы, которые уникальны для распределенных вычислений, например, связанные с неисправностью . Примеры связанных проблем включают консенсусные проблемы , [ 55 ] Византийская терпимость разлома , [ 56 ] и самостоятельная стабилизация . [ 57 ]

Много исследований также сосредоточено на понимании асинхронной природы распределенных систем:

Обратите внимание, что в распределенных системах задержка должна быть измерена с помощью «99 -го процентиля», потому что «медиана» и «средний» может вводить в заблуждение. [ 61 ]

Выборы координатора (или выборы лидеров ) - это процесс определения единого процесса в качестве организатора какой -либо задачи, распространяемой между несколькими компьютерами (узлами). Перед началом задачи все сетевые узлы либо не знают, какой узел будет служить «координатором» (или лидером) задачи, либо не может общаться с текущим координатором. Однако после того, как координаторный алгоритм выборов был запущен, каждый узел по всей сети распознает конкретный уникальный узел в качестве координатора задач. [ 62 ]

Сетевые узлы общаются между собой, чтобы решить, кто из них попадет в состояние «координатора». Для этого им нужен какой -то метод, чтобы сломать симметрию между ними. Например, если каждый узел имеет уникальные и сопоставимые идентичности, то узлы могут сравнивать их идентификаторы и решать, что узел с самой высокой идентичностью является координатором. [ 62 ]

Определение этой проблемы часто объясняется Леланном, который формализовал ее как метод создания нового токена в сети кольцевых кольцевых токен , в которой токен был потерян. [ 63 ]

Алгоритмы выборов координаторов предназначены для того, чтобы быть экономичными с точки зрения передаваемых байтов и времени. Алгоритм, предложенный Галлагером, Умблет и Спира [ 64 ] Для общих неисправных графиков оказал сильное влияние на дизайн распределенных алгоритмов в целом и выиграл приз Дейкстра за влиятельную статью в распределенных вычислениях.

Многие другие алгоритмы были предложены для различных видов сетевых графиков , таких как неисправенные кольца, однонаправленные кольца, полные графики, сетки, направленные графики Euler и другие. Корач, Куттен и Моран предложил общий метод, который разворачивает проблему семейства графиков от дизайна алгоритма выборов координатора. [ 65 ]

Чтобы выполнить координацию, распределенные системы используют концепцию координаторов. Проблема выборов координатора состоит в том, чтобы выбрать процесс из группы процессов на разных процессорах в распределенной системе, чтобы выступать в качестве центрального координатора. Существуют несколько центральных координаторов алгоритмов выборов. [ 66 ]

Свойства распределенных систем

[ редактировать ]

До сих пор основное внимание уделялось разработке распределенной системы, которая решает заданную проблему. Дополнительная проблема исследования - изучение свойств данной распределенной системы. [ 67 ] [ 68 ]

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

Тем не менее, есть много интересных особых случаев, которые являются определенными. В частности, можно рассуждать о поведении сети конечных штатных машин. Одним из примеров является то, может ли данная сеть взаимодействующих (асинхронных и не определенных) конечных штатных машин достичь тупика. Эта проблема- PSPACE-Complete , [ 70 ] т.е., это определенно, но маловероятно, что существует эффективный (централизованный, параллельный или распределенный) алгоритм, который решает проблему в случае крупных сетей.

Смотрите также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Jump up to: а беременный Таненбаум, Эндрю С.; Steen, Maarten Van (2002). Распределенные системы: принципы и парадигмы . Верхняя седл -река, Нью -Джерси: Пирсон Прентис Холл. ISBN  0-13-088893-1 Полем Архивировано из оригинала 2020-08-12 . Получено 2020-08-28 .
  2. ^ «Распределенные программы». Тексты в информатике . Лондон: Springer London. 2010. С. 373–406. doi : 10.1007/978-1-84882-745-5_11 . ISBN  978-1-84882-744-8 Полем ISSN   1868-0941 . Системы состоят из ряда физически распределенных компонентов, которые работают независимо, используя их частное хранилище, но также время от времени общаются путем явного передачи сообщений. Такие системы называются распределенными системами.
  3. ^ Dusseau & Dusseau 2016 , с. 1–2.
  4. ^ Форд, Нил (3 марта 2020 г.). Основы архитектуры программного обеспечения: инженерный подход (1 -е изд.). О'Рейли СМИ. С. 146–147. ISBN  978-1492043454 .
  5. ^ Монолит в микросервисы эволюционные паттерны для преобразования монолита . О'Рейли СМИ. ISBN  9781492047810 .
  6. ^ «Распределенные программы». Тексты в информатике . Лондон: Springer London. 2010. С. 373–406. doi : 10.1007/978-1-84882-745-5_11 . ISBN  978-1-84882-744-8 Полем ISSN   1868-0941 . Распределенные программы являются абстрактными описаниями распределенных систем. Распределенная программа состоит из набора процессов, которые работают одновременно и передают явное передачу сообщения. Каждый процесс может получить доступ к набору переменных, которые не связаны с переменными, которые могут быть изменены любым другим процессом.
  7. ^ Эндрюс (2000) . Долев (2000) . Гош (2007) , с. 10
  8. ^ Магнони Л. (2015). «Современный обмен сообщениями для распределенных ситом (sic)» . Журнал физики: серия конференций . 608 (1): 012038. DOI : 10.1088/1742-6596/608/1/012038 . ISSN   1742-6596 .
  9. ^ Годфри (2002) .
  10. ^ Jump up to: а беременный Эндрюс (2000) , с. 291–292. Долев (2000) , с. 5
  11. ^ Линч (1996) , с. 1
  12. ^ Jump up to: а беременный Гош (2007) , с. 10
  13. ^ Эндрюс (2000) , с. 8–9, 291. Долев (2000) , с. 5. Гош (2007) , с. 3. Линч (1996) , с. xix, 1. Peleg (2000) , p. XV.
  14. ^ Эндрюс (2000) , с. 291. Гош (2007) , с. 3. Peleg (2000) , p. 4
  15. ^ Гош (2007) , с. 3–4. Peleg (2000) , p. 1
  16. ^ Гош (2007) , с. 4. Peleg (2000) , p. 2
  17. ^ Гош (2007) , с. 4, 8. Линч (1996) , с. 2–3. Peleg (2000) , p. 4
  18. ^ Линч (1996) , с. 2. Peleg (2000) , p. 1
  19. ^ Гош (2007) , с. 7. Линч (1996) , с. xix, 2. Peleg (2000) , p. 4
  20. ^ Основы программной архитектуры: инженерный подход . О'Рейли СМИ. 2020. ISBN  978-1492043454 .
  21. ^ Гош (2007) , с. 10. Кейдар (2008) .
  22. ^ Линч (1996) , с. xix, 1–2. Peleg (2000) , p. 1
  23. ^ Peleg (2000) , p. 1
  24. ^ Papadimitriou (1994) , глава 15. Keidar (2008) .
  25. ^ См. Ссылки во введении .
  26. ^ Bentaleb, A.; Yifan, L.; Синь, Дж.; и др. (2016). «Параллельные и распределенные алгоритмы» (PDF) . Национальный университет Сингапура. Архивировано (PDF) из оригинала 2017-03-26 . Получено 20 июля 2018 года .
  27. ^ Эндрюс (2000) , с. 348.
  28. ^ Эндрюс (2000) , с. 32
  29. ^ Петр (2004) , История электронной почты Архивирована 2009-04-15 на машине Wayback .
  30. ^ Банки, М. (2012). По пути в Интернет: секретная история Интернета и его основателей . Апресс. С. 44–5. ISBN  9781430250746 Полем Архивировано из оригинала 2023-01-20 . Получено 2018-07-20 .
  31. ^ Тел, Г. (2000). Введение в распределенные алгоритмы . Издательство Кембриджского университета. С. 35–36. ISBN  9780521794831 Полем Архивировано из оригинала 2023-01-20 . Получено 2018-07-20 .
  32. ^ Ohlídal, M.; Джарош, Дж.; Schwarz, J.; и др. (2006). «Эволюционный дизайн графиков связи OAB и AAB для сетей взаимосвязи». В Rothlauf, F.; Branke, J.; Cagnoni, S. (Eds.). Приложения эволюционных вычислений . Springer Science & Business Media. С. 267–78. ISBN  9783540332374 .
  33. ^ «Реальное время и распределенные вычислительные системы» (PDF) . ISSN   2278-0661 . Архивировано из оригинала (PDF) 2017-01-10 . Получено 2017-01-09 . {{cite journal}}: CITE Journal требует |journal= ( помощь )
  34. ^ Vigna P, Casey MJ. Эпоха криптовалюты: как Биткойн и блокчейн бросают вызов глобальному экономическому порядку из прессы Святого Мартина 27 января 2015 г. ISBN   9781250065636
  35. ^ Quang Hieu Vu; Михай Лупу; Beng Chin Ooi (2010). Одноранговые вычисления: принципы и приложения . Гейдельберг: Спрингер. п. 16. ISBN  9783642035135 Полем OCLC   663093862 .
  36. ^ Линд П., Алм М. (2006), «Система виртуальной химии, ориентированная на базу данных», модель J Chem Inf , 46 (3): 1034–9, doi : 10.1021/ci050360b , pmid   16711722 .
  37. ^ Chiu, G (1990). «Модель для оптимального распределения базы данных в распределенных вычислительных системах». Разбирательство. IEEE Infocom'90: Девятая ежегодная совместная конференция IEEE Computer и коммуникационных обществ .
  38. ^ Elmasri & Navathe (2000) , раздел 24.1.2.
  39. ^ Эндрюс (2000) , с. 10–1 Гош (2007) , с. 4–6 Линч (1996) , с. Xix, 1. Peleg (2000) , p. XV. Elmasri & Navathe (2000) , раздел
  40. ^ Haussmann, J. (2019). «Экономичная параллельная обработка нерегулярно структурированных задач в средах облачных вычислений». Журнал кластерных вычислений . 22 (3): 887–909. doi : 10.1007/s10586-018-2879-3 . S2CID   54447518 .
  41. ^ Toomarian, NB; Barhen, J.; Гулати С. (1992). «Нейронные сети для роботизированных приложений в реальном времени» . В Фиджани, а.; Bejczy, A. (ред.). Параллельные системы вычислений для робототехники: алгоритмы и архитектуры . Мировой научный. п. 214. ISBN  9789814506175 Полем Архивировано из оригинала 2020-08-01 . Получено 2018-07-20 .
  42. ^ Savage, JE (1998). Модели вычислений: изучение мощности вычислений . Аддисон Уэсли. п. 209. ISBN  9780201895391 .
  43. ^ Cormmen, Leiseron & Rivest (1990) , раздел 30.
  44. ^ Herlihy & Shavit (2008) , главы 2–6.
  45. ^ Линч (1996)
  46. ^ Cormmen, Leiseron & Rivest (1990) , разделы 28 и 29.
  47. ^ Jump up to: а беременный в Tulsiramji Gaikwad-Patil College Engineering & Technology, Нагпур Департамент информационных технологий Введение в распределенные системы [1]
  48. ^ Cole & Vishkin (1986) . Cormen, Leiserson & Rivest (1990) , раздел 30.5.
  49. ^ Эндрюс (2000) , с. IX.
  50. ^ Arora & Barak (2009) , раздел 6.7. Papadimitriou (1994) , раздел 15.3.
  51. ^ Papadimitriou (1994) , раздел 15.2.
  52. ^ Линч (1996) , с. 17–23.
  53. ^ Peleg (2000) , разделы 2.3 и 7. Linial (1992) . Naor & Stockmeyer (1995) .
  54. ^ Schneider, J.; Уоттенхофер Р. (2011). «Торговый бит, сообщение и временная сложность распределенных алгоритмов» . В Peleg, D. (ed.). Распределенные вычисления . Springer Science & Business Media. С. 51–65. ISBN  9783642240997 Полем Архивировано из оригинала 2020-08-01 . Получено 2018-07-20 .
  55. ^ Линч (1996) , разделы 5–7. Гош (2007) , глава 13.
  56. ^ Линч (1996) , с. 99–102. Гош (2007) , с. 192–193.
  57. ^ Долев (2000) . Гош (2007) , глава 17.
  58. ^ Lynch (1996) , раздел 16. Peleg (2000) , раздел 6.
  59. ^ Lynch (1996) , раздел 18. Ghosh (2007) , разделы 6.2–6.3.
  60. ^ Ghosh (2007) , раздел 6.4.
  61. ^ Основы данных Интенсивные приложения . 2021. ISBN  9781119713012 .
  62. ^ Jump up to: а беременный Haloi, S. (2015). Apache Zookeeper Essentials . Packt Publishing Ltd. с. 100–101. ISBN  9781784398323 Полем Архивировано из оригинала 2023-01-20 . Получено 2018-07-20 .
  63. ^ Леланн, Г. (1977). «Распределенные системы - к формальному подходу». Обработка информации . 77 : 155 · 160 - через Elsevier.
  64. ^ RG Gallager , PA Hamblet и PM Spira (январь 1983 г.). «Распределенный алгоритм для минимального веса, охватывающих деревья» (PDF) . Транзакции ACM на языках и системах программирования . 5 (1): 66–77. doi : 10.1145/357195.357200 . S2CID   2758285 . Архивировано (PDF) из оригинала 2017-09-26. {{cite journal}}: Cs1 maint: несколько имен: список авторов ( ссылка )
  65. ^ Корач, Эфраим; Куттен, Шей ; Моран, Шломо (1990). «Модульная техника для разработки эффективных алгоритмов поиска распределенного лидера» (PDF) . Транзакции ACM на языках и системах программирования . 12 (1): 84–101. Citeseerx   10.1.1.139.7342 . doi : 10.1145/77606.77610 . S2CID   9175968 . Архивировано (PDF) из оригинала 2007-04-18.
  66. ^ Гамильтон, Говард. «Распределенные алгоритмы» . Архивировано из оригинала 2012-11-24 . Получено 2013-03-03 .
  67. ^ "Основные нерешенные проблемы в распределенных системах?" Полем cstheory.stackexchange.com . Архивировано из оригинала 20 января 2023 года . Получено 16 марта 2018 года .
  68. ^ «Как большие данные и распределенные системы решают традиционные проблемы масштабируемости» . theserverside.com . Архивировано с оригинала 17 марта 2018 года . Получено 16 марта 2018 года .
  69. ^ Свозил, К. (2011). «Неэтерминизм и случайность с помощью физики» . В Гекторе, З. (ред.). Случайность посредством вычислений: некоторые ответы, больше вопросов . Мировой научный. С. 112–3. ISBN  9789814462631 Полем Архивировано из оригинала 2020-08-01 . Получено 2018-07-20 .
  70. ^ Papadimitriou (1994) , раздел 19.3.
Книги
Статьи
Веб -сайты

Дальнейшее чтение

[ редактировать ]
Книги
Статьи
Конференц -документы
  • Родригес, Карлос; Вильягра, Маркос; Баран, Бенджамин (2007). «Асинхронные командные алгоритмы для логической удовлетворенности». 2007 2-й био-вдохновленные модели сетевых, информационных и вычислительных систем . С. 66–69. doi : 10.1109/bimnics.2007.4610083 . S2CID   15185219 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7b4d5e29fa804595e0ea5ce289c21c2d__1724167080
URL1:https://arc.ask3.ru/arc/aa/7b/2d/7b4d5e29fa804595e0ea5ce289c21c2d.html
Заголовок, (Title) документа по адресу, URL1:
Distributed computing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)