Распределенная разделяемая память - Distributed shared memory

В Информатика, распределенная разделяемая память (DSM) является формой архитектура памяти где физически разделенная память может быть адресована как одно логически разделяемое адресное пространство. Здесь термин «общая» не означает, что существует одна централизованная память, но что адресное пространство является «общим» (один и тот же физический адрес на двух процессоры относится к тому же месту в памяти).[1]:201 Распределенное глобальное адресное пространство (ДГАС), аналогичный термин для широкого класса программных и аппаратных реализаций, в которых каждая узел из кластер имеет доступ к Общая память в дополнение к неразделенным частным объем памяти.

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

Методы достижения DSM

Обычно есть два метода достижения распределенной разделяемой памяти:

  • аппаратное обеспечение, такое как схемы согласования кэша и сетевые интерфейсы
  • программного обеспечения

Программная реализация DSM

Существует три способа реализации программно распределенной разделяемой памяти:

  • страничный подход с использованием виртуальной памяти системы;
  • подход с разделяемыми переменными с использованием некоторых процедур для доступа к разделяемым переменным;
  • объектно-ориентированный подход, идеальный для доступа к общим данным посредством объектно-ориентированной дисциплины.

Передача сообщений против DSM

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

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

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

Абстрактный вид

РИСУНОК DSM

Преимущества

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

Недостатки

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

Согласованность памяти каталогов

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

состояния

Базовый DSM будет отслеживать по крайней мере три состояния среди узлов для любого данного блока в каталоге.[2] Будет какое-то состояние, определяющее блок как некэшированный (U), состояние, определяющее блок как исключительно принадлежащий или модифицированный (EM), и состояние, определяющее блок как совместно используемый (S). Когда блоки входят в организацию каталога, они переходят из U в EM (состояние владения) в начальном узле, затем состояние может переходить в S, когда другие узлы начинают читать блок.

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

Диаграмма состояний блока памяти в DSM. Блок считается «принадлежащим», если один из узлов имеет блок в состоянии EM.

Домашний запрос и ответ

В системе, ориентированной на дом, DSM избегает необходимости обрабатывать гонку запрос-ответ между узлами, позволяя выполнять только одну транзакцию за раз, пока домашний узел не решит, что транзакция завершена - обычно, когда дом получил все отвечающие процессоры ответ на запрос. Примером этого является Intel QPI режим домашнего источника.[3]

Преимущества

  • Гонки данных невозможны
  • Просто реализовать

Недостатки

  • Медленная, буферизованная стратегия запроса-ответа, ограниченная домашним узлом

Запрос и ответ, ориентированные на запросчика

В системе, ориентированной на запросы, DSM позволяет узлам по желанию общаться друг с другом через дом. Это означает, что несколько узлов могут попытаться начать транзакцию, но это требует дополнительных соображений для обеспечения согласованности. Например: когда один узел обрабатывает блок, если он получает запрос на этот блок от другого узла, он отправляет NAck (отрицательное подтверждение), чтобы сообщить инициатору, что узел обработки не может выполнить этот запрос сразу. Примером этого является режим отслеживания источника Intel QPI.[3]

Преимущества

  • Быстрый

Недостатки

  • Естественно, не предотвращает состояние гонки
  • Увеличивает автобусный трафик

Модели согласованности

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

Предположим, у нас есть п процессы и Ми операции с памятью для каждого процесса я, и что все операции выполняются последовательно. Можно сделать вывод, что (M1 + M2 + … + Mn)!/(M1! M2!… Mn!) возможны чередования операций. Проблема с этим выводом заключается в определении правильности чередующихся операций. Согласованность памяти для DSM определяет, какие чередования разрешены.

Последовательные вызовы и ответы в DSM

Репликация

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

  • Уменьшите сетевой трафик
  • Содействовать усилению параллелизма
  • Приводит к меньшему количеству ошибок страниц

Однако сохранение согласованности и последовательности может стать более сложной задачей.

Согласованность выпуска и входа

  • Согласованность выпуска: когда процесс выходит из критического раздела, новые значения переменных распространяются на все сайты.
  • Согласованность ввода: когда процесс входит в критическую секцию, он автоматически обновляет значения общих переменных.
    • Согласованность на основе представления: это вариант согласованности ввода, за исключением того, что общие переменные критического раздела автоматически обнаруживаются системой. Реализация согласованности на основе представлений VODCA который имеет сопоставимую производительность с MPI на кластерных компьютерах.

Примеры

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

Рекомендации

  1. ^ Паттерсон, Дэвид А.; Хеннесси, Джон Л. (2006). Компьютерная архитектура: количественный подход (4-е изд.). Берлингтон, Массачусетс: Морган Кауфманн. ISBN  978-01-2370490-0.
  2. ^ Солихин, Ян (2015). Основы параллельной многоядерной архитектуры. Бока-Ратон, Флорида: Чепмен и Холл / CRC. С. 339–340. ISBN  9781482211184.
  3. ^ а б Сорин, Дэниел Дж .; Хилл, Марк Д .; Вуд, Дэвид А. (2011). Учебник по согласованности памяти и согласованности кеша. Морган и Клейпул. п. 174. ISBN  978-16-0845564-5.

внешняя ссылка