Изменения

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

Параллельное программирование

2319 байт убрано, 19:33, 4 сентября 2022
м
rollbackEdits.php mass rollback
[[Категория: Параллельное программирование]]
=Программирование параллельных и распределенных систем=
*[[Базовые определения и формализм]]
*[[Алгоритмы взаимного исключения]]
*[[Стек Трайбера]]
*[[Формализм распределённых систем]]
 
==6 семестр==
===Введение. Масштабируемость распределенных и параллельных систем, закон Амдала. Отличия распределенных систем от систем с разделяемой памятью===
===3-4 билеты. Часы с прямой зависимостью (и их свойства) и матричные часы===
*[[Параллельное программирование: Часы с прямой зависимостью|Часы с прямой зависимостью]]
*[[Параллельное программирование: Матричные часы|Матричные часы]](билет весной 2019 года убран)
===5-7 билеты. Взаимное исключение в распределенной системе. Централизованный, алгоритм Лампорта, алгоритм Рикарта и Агравалы===
===15 билет. Диффундирующие вычисления. Останов. Алгоритм Дейкстры и Шолтена===
TODO* [[Диффундирующие вычисления]]* [[Алгоритм Дейкстры и Шолтена в английской википедии<ref>http://en.wikipedia.org/wiki/Dijkstra-Scholten_algorithm</ref>.]]
===16 билет. Локально-стабильные предикаты, согласованные интервалы, барьерная синхронизация (3 алгоритма). Применение для определения взаимной блокировки===
TODO
*[[Локально стабильный предикат]]
*[[Согласованный интервал]]
*[[Барьерная синхронизация (3 алгоритма)]]
*[[Определение взаимной блокировки]]
===17-18 19 билеты. Упорядочивание сообщений. Определения, иерархия порядков. Алгоритм для FIFO. Алгоритм для причинно-согласованного порядка. Алгоритм для синхронного порядка ===TODO Порядок * [[Иерархия порядков сообщений:]]# асинхронный (нет * [[Алгоритм для FIFO порядка) ]]# FIFO (сообщения доходят получателю в том порядке, в котором они были ему отправлены в смысле одного потока)# * [[Алгоритм для причинно-следственный (если одно сообщение было отправлено раньше другого, то оно будет доставлено раньше другого (в системе целиком, а не в смысле одного потока, как в FIFO)# синхронный (можно выстроить ребра передачи сообщений без пересечений)согласованного порядка]] ===19 билет. Упорядочивание сообщений. Определения, иерархия порядков. * [[Алгоритм для синхронного порядка===]]
===20-21 билеты. Общий порядок (total order). Алгоритмы Лампорта и Скина===
*[[Total orderОбщий порядок сообщений]]
*[[Алгоритм Лампорта]]
*[[Алгоритм Скина]]
 
===?? билет. Выбор лидера. Алгоритм Чанди-Робертса, и алгоритм Хирчберга-Синклера===
 
'''Алгоритм Чанди-Робертса''' (Chang and Roberts) выбора лидера <ref>http://en.wikipedia.org/wiki/Chang_and_Roberts_algorithm</ref>.
 
Пусть процессы находятся в кольце.
Посылаем свой номер налево по кольцу.
При получении номера справа посылаем налево максимум из своего номера и полученного справа.
Если полученный справа номер является нашим номером, то заканчиваем работу.
 
'''Алгоритм Хирчберга-Синклера''' <ref>http://en.wikipedia.org/wiki/HS_algorithm</ref> <ref>http://web.cs.gc.cuny.edu/~vmitsou/presentation.pdf слайды 16-18</ref>.
===22 билет. Иерархия ошибок в распределенных системах. Отказ узла в асинхронной системе - невозможность консенсуса (доказательство Фишера-Линча-Патерсона)===
#Отказ узла#Отказ связи#Неустойчивая связь / пропуск пакетов#Византийская ошибка (сломавшийся процесс может слать любой мусор)* [[Иерархия ошибок в распределённых системах]]* [[Асинхронные и синхронные распределённые системы]]Отказ одного узла * [[Консенсус в распределенной распределённой системе ведет к невозможности консенсуса. Решением является уход от асинхронизации, накладывание ограничений на время ответа.]] Также решение * [[Теорема Фишера-Линча- уйти от требования детерминированности алгоритма.Патерсона (FLP)]]
===23 билет. Консенсус в распределенных системах. Применение консенсуса: выбор лидера, terminating reliable broadcast===
* [[Иерархия ошибок в распределённых системах]]
* [[Асинхронные и синхронные распределённые системы]]
* [[Консенсус в распределённой системе]]
* [[Переформулировки консенсуса в распределённой системе]]
===24 билет. Синхронные системы. Алгоритм для консенсуса в случае отказа заданного числа узлов===
Пусть * [[Иерархия ошибок в системе имеется ''n'' узлов.Пусть из них максимум ''f'' не работают.Тогда можно решить задачу консенсуса:распределённых системах]]*Каждый узел посылает каждому свое число;[[Асинхронные и синхронные распределённые системы]]*Процессы запоминают пришедшие числа;[[Консенсус в распределённой системе]]*Новые для себя числа процессы рассылают дальше;*Каждый процесс выбирает минимально известное ему число. (возможно, стоит дописать)[[Консенсус в синхронных системах]]
===25 билет. Синхронные системы. Проблема византийских генералов. Алгоритм для N >= 4, f = 1. Объяснить идею обобщения для f > 1===
* [[Асинхронные и синхронные распределённые системы]]
* [[Проблема византийских генералов]]
* [[Алгоритм Лампорта-Шостака-Пиза]] для решения проблемы
'''Задача двух ===26 билет. Синхронные системы. Проблема византийских генералов''' — мысленный эксперимент. Невозможность решения при N = 3, призванный проиллюстрировать проблему синхронизации состояния двух систем по ненадежному каналу связи. (f = 1===* [[Асинхронные и синхронные распределённые системы]]* [[Проблема византийских генералов]]* [[https://ru.wikipediaНевозможность византийского консенсуса]] при N=3, f=1.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B4%D0%B2%D1%83%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2 Википедия])
Два процесса === 27 билет. Недетерминированные алгоритмы консенсуса. Алгоритм Бен-Ора. ===* [[Иерархия ошибок в случае ненадежного канала не могут достичь распределённых системах]]* [[консенсус|консенсусаАсинхронные и синхронные распределённые системы]]* [[Консенсус в распределённой системе]]* [[Алгоритм Бен-Ора]].
Consider the last such message that was successfully delivered=== 28-29 билеты. If that last message had not been successfully deliveredPaxos. Алгоритм, 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Общие принципы. Основные модификации.===* [[Консенсус в распределённой системе]]* [[Replicated State Machine]]* [[Paxos]]
Для недетерминнированного - аналогично=== 30 билет. Посмотрим на "успешную" последовательностьRaft.И отменим успешность последнего сообщения. Для 1-ого все окАлгоритм, для 2-ого все испортилосьего свойства.===* [[Консенсус в распределённой системе]]* [[Replicated State Machine]]* [[Raft]]
===26 31 билет. Синхронные системыТранзакции в распределенных системах. Проблема византийских генералов. Невозможность решения при N = 3, f = 12 Phase Locking===* [[Транзакции в распределённых системах]]* [[2 Phase Locking]]
'''Задача византийских генералов''' — мысленный эксперимент, призванный проиллюстрировать проблему синхронизации состояния систем === 32 билет. Транзакции в случае, когда коммуникации считаются надёжными, а процессоры — нетраспределенных системах. (Вики)2 Phase Commit.===* [[Транзакции в распределённых системах]]* [[2 Phase Commit]]
Проблема византийских генералов формулируется так: имеется ''n'' генералов из которых ''f'' являются предателями=== 33 билет. Как прийти к консенсусу честным генералам?СAP теорема (концепции, подходы, без доказательства)===* [[CAP теорема]]
Известно=== 34 билет. Gossip. СRDT и дельта-CRDT (концепции, что при ''n'' > 3''f'' задача решаемапримеры алгоритмов, а иначе нетсм.работу с семинара)===* [[Gossip-протоколы]]* [[CRDT]]
*Каждый рассылает каждому свое число;*Каждый рассылает каждому собранные значения;*В полученных векторах каждый проводит голосование. Можно доказать, например, что при ''n'' = 3, ''f'' = 1 консенсус невозможен. Данный вопрос достаточно хорошо описан в английской версии. === 27 35 билет. Недетерминированные Самостабилизирующиеся алгоритмы консенсуса. Алгоритм Бен-ОраИдея. Алгоритмы взаимного исключения и поиска остовного дерева ====== 28 билет. Paxos. Алгоритм, его свойства.====== 29 билет. Paxos. Общие принципы. Основные модификации.====== 30 билет. Транзакции * [[Иерархия ошибок в распределенных распределённых системах. 2 Phase Locking===]]=== 31 билет. Транзакции в распределенных системах. 2 Phase Commit.====== 32 билет. СAP теорема (концепции, подходы, без доказательства)====== 33 билет. Gossip. СRDT и дельта-CRDT (концепции, примеры алгоритмов, см. работу с семинара)===* [[Самостабилизирующиеся алгоритмы]]
==Ссылки==
<references/>
1632
правки

Навигация