Разделы презентаций


Алгоритмы работы распределенных систем

Содержание

ПланБалансировка нагрузкиВыбор координатораМодели консистентностиСоздание общего состоянияРаспределенные блокировки

Слайды и текст этой презентации

Слайд 1Алгоритмы работы распределенных систем
Судаков А.А.
“Параллельные и распределенные вычисления” Лекция 18

Алгоритмы работы распределенных системСудаков А.А.“Параллельные и распределенные вычисления” Лекция 18

Слайд 2План
Балансировка нагрузки
Выбор координатора
Модели консистентности
Создание общего состояния
Распределенные блокировки

ПланБалансировка нагрузкиВыбор координатораМодели консистентностиСоздание общего состоянияРаспределенные блокировки

Слайд 3Балансировка нагрузки
Дисбаланс уменьшает эффективность вычислений
Самый медленный процессор параллельной схемы заканчивает

свою работу последним
Все остальные в это время простаивают
Балансировка нагрузки

- равномерное распределение нагрузки на процессоры
Балансировка нагрузкиДисбаланс уменьшает эффективность вычисленийСамый медленный процессор параллельной схемы заканчивает свою работу последним Все остальные в это

Слайд 4Характеристики загруженности процессоров
Чтобы балансировать нагрузку необходимо количественно измерять загруженность процессоров
Количество

задач на узле (workload)‏
Логична, когда процессоры не перегружены
Средняя загруженность процессора

(load average)‏
Количество процессов, которые были готовы к выполнению или выполнялись в течение интервала времени (1минута, 5 минут, 15 минут)‏
Чем больше процессов выполняется, тем меньше времени уделяется каждому процессу
Эффективная загруженность процессора
Отношение средней загруженности процессора к производительности процессора
Более быстрый процессор выполняет одну и ту же работу быстрее, чем более медленный
Характеристики загруженности процессоровЧтобы балансировать нагрузку необходимо количественно измерять загруженность процессоровКоличество задач на узле (workload)‏Логична, когда процессоры не

Слайд 5Методы балансировки нагрузки
Статические
Распределение работы между процессорами выполнятся на этапе запуска

программ
Динамические
Распределение выполняется в процессе работы программ

Методы балансировки нагрузкиСтатическиеРаспределение работы между процессорами выполнятся на этапе запуска программДинамическиеРаспределение выполняется в процессе работы программ

Слайд 6Алгоритмы статической балансировки нагрузки
Круговой алгоритм (round robin)
Задачи запускаются по

очереди на каждом процессоре, который удовлетворяет необходимым требованиям
Стохастический алгоритм

задачи запускаются на случайно выбранном процессоре
Распределение данных и функций
На этапе запуска определяется оптимальное количество данных и операций, которые будет выполнять каждый процессор процессор
Распределение на основании целевой функции
Задачи запускаются на том узле, для которого целевая функция имеет экстремум

Алгоритмы статической балансировки нагрузкиКруговой алгоритм (round robin) Задачи запускаются по очереди на каждом процессоре, который удовлетворяет необходимым

Слайд 7Эффективность статического распределения
Эффективно при малом времени работы программ
При большом времени

накапливается дисбаланс нагрузки
Не требует специальной поддержки программ и операционной системы
Используется

в системах пакетного режима для Beowulf кластеров
Эффективность статического распределенияЭффективно при малом времени работы программПри большом времени накапливается дисбаланс нагрузкиНе требует специальной поддержки программ

Слайд 8Методы динамической балансировки нагрузки
Централизованная схема
Децентрализованная схема
Балансировка на основе миграции процессов

Требуют

специальных возможностей от программного обеспечения или операционной системы

Методы динамической балансировки нагрузкиЦентрализованная схемаДецентрализованная схемаБалансировка на основе миграции процессовТребуют специальных возможностей от программного обеспечения или операционной

Слайд 9Централизованная схема
Один процессор – главный
Остальные – рабочие
На главном поддерживается очередь

задача
Задачи раздаются рабочим процессорам по мере выполнения ими предыдущих заданий
Более

быстрый процессор выполнит больше работы
Требует специальной поддержки программ
Централизованная схемаОдин процессор – главныйОстальные – рабочиеНа главном поддерживается очередь задачаЗадачи раздаются рабочим процессорам по мере выполнения

Слайд 10Децентрализованная схема
Несколько главных процессоров
На первом этапе инициализация заданий
Далее каждый процессор

выполняет балансировку по централизованной схеме
Более эффективна, чем централизованная схема –

меньше узких мест
Децентрализованная схемаНесколько главных процессоровНа первом этапе инициализация заданийДалее каждый процессор выполняет балансировку по централизованной схемеБолее эффективна, чем

Слайд 11Балансировка на основании миграции процессов
Процессы во время выполнения мигрируют между

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

время и мало обмениваются между собой
Балансировка на основании миграции процессовПроцессы во время выполнения мигрируют между процессорами для обеспечения балансировки нагрузкиЭффективна для задач,

Слайд 12Оптимизация использования ресурсов
Вводится количественная характеристика использования ресурсов
Вводится целевая функция, которая

принимает большие значения при увеличении использования ресурса
Процессы перемещаются (запускаются)

на тех процессорах, для которых целевая функция наименьшая
Оптимизация использования ресурсовВводится количественная характеристика использования ресурсовВводится целевая функция, которая принимает большие значения при увеличении использования ресурса

Слайд 13Целевая функция
Должна включать все количественные характеристики использования всех ресурсов
Характеристики использования

ресурсов должны быть безразмерными
Функция должна возрастать при увеличении использования хотя

бы одного из ресурсов
Если использование ресурса превышает максимально допустимое значение, то функция должна сильно возрастать

Целевая функцияДолжна включать все количественные характеристики использования всех ресурсовХарактеристики использования ресурсов должны быть безразмернымиФункция должна возрастать при

Слайд 14Безразмерные характеристики использования ресурсов
Ресурсы – память, процессор, сеть, диск
Каждый ресурс

имеет свою количественную характеристику
Процессор – эффективная загруженность
Память – объем свободной

памяти
Сеть – объем передаваемой информации
Безразмерность обеспечивается введением отношения текущего значения ресурса к его максимально-допустимому значению
Память – объем памяти машины
Процессор – максимальная эффективная загрузка
Безразмерные характеристики использования ресурсовРесурсы – память, процессор, сеть, дискКаждый ресурс имеет свою количественную характеристикуПроцессор – эффективная загруженностьПамять

Слайд 15Вид целевой функции
F – цена возможного состояния
Степенная функция – очень

быстро растет, когда показатель становится больше единицы
При увеличении количества процессоров

значение функции уменьшается
Вид целевой функцииF – цена возможного состоянияСтепенная функция – очень быстро растет, когда показатель становится больше единицыПри

Слайд 16Результаты измерения производительности при большом количестве невзаимодействующих процессов

Результаты измерения производительности при большом количестве невзаимодействующих процессов

Слайд 17Выбор координатора
Во многих случаях возникает задача выбора одной главной машины

среди равноправных – координатора (инициатора)‏
Это позволяет динамически реализовать централизованные схемы
Применение
Протокол

NetBIOS - координатор выбирается для службы имен
Сеть Token Ring – одна машина выбирается координатором для обмена маркером
Выбор координатораВо многих случаях возникает задача выбора одной главной машины среди равноправных – координатора (инициатора)‏Это позволяет динамически

Слайд 18Условия
Есть произвольное количество процессов, которые могут взаимодействовать между собой
Каждый

процесс имеет уникальный номер
Выбрать процесс с наибольшим номером и сообщить

номер этого процесса всем
В случае выхода из строя координатора алгоритм должен выбрать нового координатора
Условия Есть произвольное количество процессов, которые могут взаимодействовать между собойКаждый процесс имеет уникальный номерВыбрать процесс с наибольшим

Слайд 19Алгоритм задиры (bully algorithm) 1982
Процесс i обнаружил пропажу координатора

и отправляет сообщение E о начале выборов всем узлам (с

большим номером)‏
Если процесс i не получил ни от кого ответа A в течение интервала времени T, то он назначает себя координатором и отправляет всем узлам (с меньшим номером) сообщение С – выбран новый координатор
Если процесс j получил сообщение о начале выборов E (от процесса с меньшим номером) то но отвечает ему сообщением A и запускает алгоритм для себя
Если процесс i получил ответ A от узла j, то значит, что узел j имеет больший номер и может стать координатором. Если в течение интервала времени T не было получено сообщения С, алгоритм повторяется через интервал времени T1.
При появлении нового процесса он запускает алгоритм для себя
Процесс с максимальным номером становится координатором

Алгоритм задиры (bully algorithm) 1982 Процесс i обнаружил пропажу координатора и отправляет сообщение E о начале выборов

Слайд 20Пример
Узел 2 обнаружил потерю координатора
Отправляет сообщение узлам 3,4,5
Узлы 3 и

4 приняли сообщение узла 2, сказали ему остановиться и запускают

алгоритм для себя
В конце концов узел с максимальным номером запустит алгоритм для себя, назначит себя координатором и расскажет всем
ПримерУзел 2 обнаружил потерю координатораОтправляет сообщение узлам 3,4,5Узлы 3 и 4 приняли сообщение узла 2, сказали ему

Слайд 21Кольцевой алгоритм (1977)‏
Узел i обнаружил потерю координатора, он отправляет сообщение

E со своим номером узлу с номером i+1 и если

нет подтверждения, то узлу с номером i+2 и т.д.
Если узел j не встретил в E сообщении своего номера, то он добавляет туда свой номер и отправляет его дальше
Если узел j встретил в E сообщении свой номер, то значит E сообщение обошло кольцо и максимальный номер в нем – номер координатора. Узел j меняет тип сообщения на C и отправляет его дальше
После того, как C сообщение обошло все узлы, оно уничтожается и все узлы знают номер координатора

Кольцевой алгоритм (1977)‏Узел i обнаружил потерю координатора, он отправляет сообщение E со своим номером узлу с номером

Слайд 22Пример кольцевого алгоритма

Пример кольцевого алгоритма

Слайд 23Количество операций

Количество операций

Слайд 24Синхронизация времени
Лампортовские метки – определение раньше-позже для определенной последовательности событий
Достаточно

для многих проблем

Синхронизация времениЛампортовские метки – определение раньше-позже для определенной последовательности событийДостаточно для многих проблем

Слайд 25Метки Лампорта
Поддерживается счетчик событий
В начальном состоянии от равен 1
После каждого

события счетчик увеличивается на 1
Если одно событие произошло раньше другого,

то Лампортовская метка более раннего события будет меньше
Метки ЛампортаПоддерживается счетчик событийВ начальном состоянии от равен 1После каждого события счетчик увеличивается на 1Если одно событие

Слайд 26Пример

Пример

Слайд 27Синхронизация в распределенных системах
Доступ к общим ресурсам в сети требует

синхронизации так же как и в случае общей памяти
Общий диск
Общая

распределенная память
Проблемы
Нет действительно общих ресурсов, они только виртуальные
Нет общего состояния
Нет общего времени
Другой тип параллелизма
Алгоритмы должны работать на каждом узле (процессе)
Возможность выхода из строя частей системы
Синхронизация в распределенных системахДоступ к общим ресурсам в сети требует синхронизации так же как и в случае

Слайд 28Взаимоисключающий доступ
По аналогии с общей памятью
Есть некоторый общий ресурс (блок

файловой системы)‏
Его может изменять только один процесс
Необходимо обеспечить блокировку, которая

бы давала возможность защитить доступ к ресурсу
Типы алгоритмов блокировки
Централизованный (CLM)‏
С передачей маркера (TLM)‏
Распределенный менеджер блокировок (DLM)‏

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

Слайд 29Централизованный алгоритм
Один из процессов выбирается координатором
Все доступы к общему ресурсу

выполняются через координатора
Для доступа к ресурсу процессы посылают запрос координатору
Если

ресурс свободен координатор отправляет сообщение о возможности доступа
Если ресурс занят запрос ставится в очередь
При освобождении ресурса отправляется запрос о возможности доступа первому в очереди
Централизованный алгоритмОдин из процессов выбирается координаторомВсе доступы к общему ресурсу выполняются через координатораДля доступа к ресурсу процессы

Слайд 30Пример работы централизованного менеджера блокировок

Пример работы централизованного менеджера блокировок

Слайд 31Особенности CLM
Преимущества
Просто реализовать
Недостатки
Единая точка сбоя
Плохо масштабируется
Возможность возникновения узкого места в

плане производительности

Особенности CLMПреимуществаПросто реализоватьНедостаткиЕдиная точка сбояПлохо масштабируетсяВозможность возникновения узкого места в плане производительности

Слайд 32Алгоритм Token Ring
Создается логическое кольцо процессов
По кольцу передается маркер
Блокировку захватывает

тот, кто получает маркер
При освобождении блокировки маркер передается дальше

Алгоритм Token RingСоздается логическое кольцо процессовПо кольцу передается маркерБлокировку захватывает тот, кто получает маркерПри освобождении блокировки маркер

Слайд 33Особенности
Преимущества
Простой и обеспечивает взаимоисключающий доступ
Недостатки
Ненадежный
Если маркер недоступен длительное время, то

его удерживают, или он потерян?
Как добавить новых участников?
Не поддерживается порядок

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

Слайд 34Распределенный менеджер блокировок
Каждый узел может обмениваться с остальными
Возможны три типа

сообщений
REQUEST
QUEUED
GRANT
Центральным узлом для блокировки является узел, захвативший блокировку
Узлы могут быть

в трех состояниях
Удержание блокировки
Ожидания
Свободное состояние


Распределенный менеджер блокировокКаждый узел может обмениваться с остальнымиВозможны три типа сообщенийREQUESTQUEUEDGRANTЦентральным узлом для блокировки является узел, захвативший

Слайд 35Алгоритм работы
Каждый узел выполняет общий алгоритм

Алгоритм работыКаждый узел выполняет общий алгоритм

Слайд 36Распределенный захват блокировки

Алгоритм захвата блокировки
Узел i, который желает захватить блокировку

отправляет сообщение REQUEST всем остальным n-1 узлам (multicast)‏
Все узлы отвечают

i-му n-1 сообщением, которые могут быть следующего типа
GRANT – разрешение захвата - ответ узла, который не удерживает блокировку
QUEUED - информация, что запрос поставлен в очередь на узле, который захватил блокировку
После получения n-1 сообщения узел i выполняет следующие действия
Если все сообщения были типа GRANT, то узел i считается владельцем блокировки
Если одно сообщение типа QUEUED, то узел ждет сообщения типа GRANT
Распределенный захват блокировкиАлгоритм захвата блокировкиУзел i, который желает захватить блокировку отправляет сообщение REQUEST всем остальным n-1 узлам

Слайд 37Конфликт при захвате
Если после отправки сообщения REQUEST узел получает сообщение

REQUEST с узла j (или других узлов) до того, как

получены все сообщения от других узлов
Каждое сообщение содержит Лампортовскую метку времени
Если метка полученного сообщения меньше, чем локальная, то узлу j отправляется сообщение GRANTED
Иначе запрос ставится в очередь и отправляется сообщение QUEUED
Конфликт при захватеЕсли после отправки сообщения REQUEST узел получает сообщение REQUEST с узла j (или других узлов)

Слайд 38Распределенное удержание блокировки
Алгоритм работы узла в состоянии удержания блокировки
Узел j

захватил блокировку и поддерживает очередь запросов на захват
Если получено сообщение

REQUEST от i-го узла, то
Установить в очередь запрос от узла i
Отправить узлу i сообщение QUEUED

Распределенное удержание блокировкиАлгоритм работы узла в состоянии удержания блокировкиУзел j захватил блокировку и поддерживает очередь запросов на

Слайд 39Освобождение распределенной блокировки
Алгоритм освобождения блокировки
Если в очереди i-го узла

есть запросы на захват, он отправляет сообщение GRANTED первому в

очереди и удаляет его из очереди


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

Слайд 40Восстановление после сбоя узла
Вышел из строя узел, который не удерживает

блокировку
Количество участников уменьшается на 1
Вышел из строя узел, который

удерживает блокировку
Этот узел отключается от операций с общим ресурсом (fence)‏
Восстанавливается состояние общего ресурса из журнала
Количество участников уменьшается на 1
Все очереди уничтожаются
Запускается новый процесс захвата блокировки
Восстановление после сбоя узлаВышел из строя узел, который не удерживает блокировкуКоличество участников уменьшается на 1 Вышел из

Слайд 41Сравнение алгоритмов блокировки

Сравнение алгоритмов блокировки

Слайд 42Консистентность
Консистентность – поддерживание общих ресурсов в распределенной системе в непротиворечивом

состоянии
Пример
Эмуляция общей памяти на распределенной системе
Работа с общими дисковыми

ресурсами
Все изменения, сделанные одним узлом не должны привести к некорректном состоянию данных
КонсистентностьКонсистентность – поддерживание общих ресурсов в распределенной системе в непротиворечивом состоянииПример Эмуляция общей памяти на распределенной системеРабота

Слайд 43Модели консистентности
Строгая (последовательная) консистентность
Процессорная консистентность (ослабленная консистентность)‏
Слабая консистентность
Косистентность захвата-освобождения

Модели консистентностиСтрогая (последовательная) консистентность Процессорная консистентность (ослабленная консистентность)‏Слабая консистентностьКосистентность захвата-освобождения

Слайд 44Процессорная консистентность
Все операции чтения записи одного процессора должны выполняться строго

последовательно, но порядок операций разных процессоров может меняться
Реализуется путем передачи

данных пакетами (блоками)‏
Процессорная консистентностьВсе операции чтения записи одного процессора должны выполняться строго последовательно, но порядок операций разных процессоров может

Слайд 45Строгая (последовательная) консистентность
Все операции чтения-записи общего ресурса должны выполняться в

строго в той последовательности, в которой поступил запрос (как в

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

Слайд 46Слабая консистентность
Доступ разделяется на операции чтения-записи и операции синхронизации. Все

операции синхронизации выполняются последовательно по отношении друг к другу
Данные отправляются

пакетами, каждый из которых консистентный для данного процессора


Слабая консистентность Доступ разделяется на операции чтения-записи и операции синхронизации. Все операции синхронизации выполняются последовательно по отношении

Слайд 47Косистентность захвата-освобождения
Доступ к ресурсу разделяется на операции захвата и

освобождения
После захвата (GET) можно эксклюзивно обращаться к ресурсу
После освобождения (PUT)

ресурс может захватить другой процесс
Два подхода
Агрессивный подход – PUT синхронизирует данные
Ленивый подход - GET синхронизирует данные
Косистентность захвата-освобождения Доступ к ресурсу разделяется на операции захвата и освобожденияПосле захвата (GET) можно эксклюзивно обращаться к

Слайд 48Другие модели консистентности
Консистентность областей
Ресурс разбивается на области и для каждой

области используется своя модель консистентности
Консистентность структур данных
С каждой структурой данных

связывается своя модель консистентности
Другие модели консистентностиКонсистентность областейРесурс разбивается на области и для каждой области используется своя модель консистентностиКонсистентность структур данныхС

Слайд 49Алгоритмы сохранения общего консистентного состояния (snapshot)‏
Общее состояние
запись данных распределенной

файловой системы
Checkpoint распределенной программы

Алгоритмы сохранения общего консистентного состояния (snapshot)‏Общее состояние запись данных распределенной файловой системыCheckpoint распределенной программы

Слайд 50Алгоритм Ченди-Лампорта
Любой процесс распределенной системы может инициировать создание слепка
Инициатор передает

сообщение всем участникам о начале записи общего состояния
При получении сообщения

начинается запись общего состояния
После записи общего состояния начинается запись всех сообщений от всех процессов, пока не будет получено сообщение о завершении записи состояния
Продолжить работу
Алгоритм Ченди-ЛампортаЛюбой процесс распределенной системы может инициировать создание слепкаИнициатор передает сообщение всем участникам о начале записи общего

Слайд 51Вопросы?

Вопросы?

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика