Параллельное программирование — различия между версиями
(→17-18 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка) |
(→17-18 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка) |
||
Строка 51: | Строка 51: | ||
===17-18 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка === | ===17-18 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка === | ||
+ | TODO | ||
+ | |||
Порядок сообщений: | Порядок сообщений: | ||
# асинхронный (нет порядка) | # асинхронный (нет порядка) |
Версия 20:44, 16 мая 2018
Содержание
- 1 Программирование параллельных и распределенных систем
- 1.1 6 семестр
- 1.1.1 Введение. Масштабируемость распределенных и параллельных систем, закон Амдала. Отличия распределенных систем от систем с разделяемой памятью
- 1.1.2 1-2 билеты. Логические часы Лампорта и векторные часы, их свойства
- 1.1.3 3-4 билеты. Часы с прямой зависимостью (и их свойства) и матричные часы
- 1.1.4 5-7 билеты. Взаимное исключение в распределенной системе. Централизованный, алгоритм Лампорта, алгоритм Рикарта и Агравалы
- 1.1.5 8-10 билеты. Взаимное исключение в распределенной системе. Алгоритм обедающих философов, на основе токена, на основе кворума (простое большинство, рушащиеся стены)
- 1.1.6 11-12 билеты. Согласованное глобальное состояние (согласованный срез). Алгоритм Чанди-Лампорта. Запоминание сообщений на стороне отправителя и получателя
- 1.1.7 13-14 билеты. Глобальные свойства. Стабильные и нестабильные предикаты. Слабый конъюнктивный предикат. Централизованный и распределенный алгоритмы
- 1.1.8 15 билет. Диффундирующие вычисления. Останов. Алгоритм Дейкстры и Шолтена
- 1.1.9 16 билет. Локально-стабильные предикаты, согласованные интервалы, барьерная синхронизация (3 алгоритма). Применение для определения взаимной блокировки
- 1.1.10 17-18 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка
- 1.1.11 19 билет. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для синхронного порядка
- 1.1.12 20-21 билеты. Общий порядок (total order). Алгоритмы Лампорта и Скина
- 1.1.13 ?? билет. Выбор лидера. Алгоритм Чанди-Робертса, и алгоритм Хирчберга-Синклера
- 1.1.14 22 билет. Иерархия ошибок в распределенных системах. Отказ узла в асинхронной системе - невозможность консенсуса (доказательство Фишера-Линча-Патерсона)
- 1.1.15 23 билет. Консенсус в распределенных системах. Применение консенсуса: выбор лидера, terminating reliable broadcast
- 1.1.16 24 билет. Синхронные системы. Алгоритм для консенсуса в случае отказа заданного числа узлов
- 1.1.17 25 билет. Синхронные системы. Проблема византийских генералов. Алгоритм для N >= 4, f = 1. Объяснить идею обобщения для f > 1
- 1.1.18 26 билет. Синхронные системы. Проблема византийских генералов. Невозможность решения при N = 3, f = 1
- 1.1.19 27 билет. Недетерминированные алгоритмы консенсуса. Алгоритм Бен-Ора.
- 1.1.20 28 билет. Paxos. Алгоритм, его свойства.
- 1.1.21 29 билет. Paxos. Общие принципы. Основные модификации.
- 1.1.22 30 билет. Транзакции в распределенных системах. 2 Phase Locking
- 1.1.23 31 билет. Транзакции в распределенных системах. 2 Phase Commit.
- 1.1.24 32 билет. СAP теорема (концепции, подходы, без доказательства)
- 1.1.25 33 билет. Gossip. СRDT и дельта-CRDT (концепции, примеры алгоритмов, см. работу с семинара)
- 1.2 Ссылки
- 1.1 6 семестр
Программирование параллельных и распределенных систем
6 семестр
Введение. Масштабируемость распределенных и параллельных систем, закон Амдала. Отличия распределенных систем от систем с разделяемой памятью
1-2 билеты. Логические часы Лампорта и векторные часы, их свойства
3-4 билеты. Часы с прямой зависимостью (и их свойства) и матричные часы
5-7 билеты. Взаимное исключение в распределенной системе. Централизованный, алгоритм Лампорта, алгоритм Рикарта и Агравалы
8-10 билеты. Взаимное исключение в распределенной системе. Алгоритм обедающих философов, на основе токена, на основе кворума (простое большинство, рушащиеся стены)
11-12 билеты. Согласованное глобальное состояние (согласованный срез). Алгоритм Чанди-Лампорта. Запоминание сообщений на стороне отправителя и получателя
13-14 билеты. Глобальные свойства. Стабильные и нестабильные предикаты. Слабый конъюнктивный предикат. Централизованный и распределенный алгоритмы
- Глобальные свойства системы
- Слабый конъюнктивный предикат (WCP)
- Централизованный алгоритм для WCP
- Распределенный алгоритм для WCP
15 билет. Диффундирующие вычисления. Останов. Алгоритм Дейкстры и Шолтена
Алгоритм Дейкстры и Шолтена в английской википедии[1].
16 билет. Локально-стабильные предикаты, согласованные интервалы, барьерная синхронизация (3 алгоритма). Применение для определения взаимной блокировки
17-18 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка
TODO
Порядок сообщений:
- асинхронный (нет порядка)
- FIFO (сообщения доходят получателю в том порядке, в котором они были ему отправлены в смысле одного потока)
- причинно-следственный (если одно сообщение было отправлено раньше другого, то оно будет доставлено раньше другого (в системе целиком, а не в смысле одного потока, как в FIFO)
- синхронный (можно выстроить ребра передачи сообщений без пересечений)
19 билет. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для синхронного порядка
20-21 билеты. Общий порядок (total order). Алгоритмы Лампорта и Скина
?? билет. Выбор лидера. Алгоритм Чанди-Робертса, и алгоритм Хирчберга-Синклера
Алгоритм Чанди-Робертса (Chang and Roberts) выбора лидера [2].
Пусть процессы находятся в кольце. Посылаем свой номер налево по кольцу. При получении номера справа посылаем налево максимум из своего номера и полученного справа. Если полученный справа номер является нашим номером, то заканчиваем работу.
Алгоритм Хирчберга-Синклера [3] [4].
22 билет. Иерархия ошибок в распределенных системах. Отказ узла в асинхронной системе - невозможность консенсуса (доказательство Фишера-Линча-Патерсона)
- Отказ узла
- Отказ связи
- Неустойчивая связь / пропуск пакетов
- Византийская ошибка (сломавшийся процесс может слать любой мусор)
Отказ одного узла в распределенной системе ведет к невозможности консенсуса. Решением является уход от асинхронизации, накладывание ограничений на время ответа.
Также решение - уйти от требования детерминированности алгоритма.
23 билет. Консенсус в распределенных системах. Применение консенсуса: выбор лидера, terminating reliable broadcast
24 билет. Синхронные системы. Алгоритм для консенсуса в случае отказа заданного числа узлов
Пусть в системе имеется n узлов. Пусть из них максимум f не работают. Тогда можно решить задачу консенсуса:
- Каждый узел посылает каждому свое число;
- Процессы запоминают пришедшие числа;
- Новые для себя числа процессы рассылают дальше;
- Каждый процесс выбирает минимально известное ему число.
(возможно, стоит дописать)
25 билет. Синхронные системы. Проблема византийских генералов. Алгоритм для N >= 4, f = 1. Объяснить идею обобщения для f > 1
Задача двух генералов — мысленный эксперимент, призванный проиллюстрировать проблему синхронизации состояния двух систем по ненадежному каналу связи. (Википедия)
Два процесса в случае ненадежного канала не могут достичь консенсуса.
Consider the last such message that was successfully delivered. If that last message had not been successfully delivered, then one general at least (presumably the receiver) would decide not to attack. From the viewpoint of the sender of that last message, however, the sequence of messages sent and delivered is exactly the same as it would have been, had that message been delivered.
Для недетерминнированного - аналогично. Посмотрим на "успешную" последовательность. И отменим успешность последнего сообщения. Для 1-ого все ок, для 2-ого все испортилось.
26 билет. Синхронные системы. Проблема византийских генералов. Невозможность решения при N = 3, f = 1
Задача византийских генералов — мысленный эксперимент, призванный проиллюстрировать проблему синхронизации состояния систем в случае, когда коммуникации считаются надёжными, а процессоры — нет. (Вики)
Проблема византийских генералов формулируется так: имеется n генералов из которых f являются предателями. Как прийти к консенсусу честным генералам?
Известно, что при n > 3f задача решаема, а иначе нет.
- Каждый рассылает каждому свое число;
- Каждый рассылает каждому собранные значения;
- В полученных векторах каждый проводит голосование.
Можно доказать, например, что при n = 3, f = 1 консенсус невозможен.
Данный вопрос достаточно хорошо описан в английской версии.