Параллельная внешняя память - Parallel external memory

Модель PEM

В информатике модель с параллельной внешней памятью (PEM) это с учетом кеширования, внешняя память абстрактная машина.[1] Это аналогия параллельных вычислений с однопроцессорным внешняя память (EM) модель. Аналогичным образом, это аналогия с поддержкой кеширования с параллельная машина с произвольным доступом (PRAM). Модель PEM состоит из нескольких процессоров вместе с их соответствующими частными кэшами и общей основной памятью.

Модель

Определение

Модель PEM[1] представляет собой комбинацию модели EM и модели PRAM. Модель PEM - это модель вычислений, которая состоит из процессоры и двухуровневый иерархия памяти. Эта иерархия памяти состоит из большого внешняя память (основная память) размера и маленький внутренняя память (кеши). Процессоры разделяют основную память. Каждый кеш предназначен только для одного процессора. Процессор не может получить доступ к чужому кешу. Тайники имеют размер который разделен на блоки размером . Процессоры могут выполнять операции только с данными, которые находятся в их кэше. Данные могут передаваться между основной памятью и кешем в блоках размера. .

Сложность ввода / вывода

В мера сложности модели PEM - это сложность ввода / вывода[1], который определяет количество параллельных передач блоков между основной памятью и кешем. Во время параллельной передачи блоков каждый процессор может передавать блок. Так что если процессоры загружают параллельно блок данных размером формируют основную память в свои кеши, это рассматривается как сложность ввода-вывода нет . Программа в модели PEM должна минимизировать передачу данных между основной памятью и кешами и работать с данными в кэшах в максимально возможной степени.

Конфликты чтения / записи

В модели PEM нет сеть прямой связи между процессорами P. Процессоры должны косвенно обмениваться данными через основную память. Если несколько процессоров пытаются получить доступ к одному и тому же блоку в основной памяти одновременно, конфликты чтения / записи[1] происходят. Как и в модели PRAM, рассматриваются три различных варианта этой задачи:

  • Concurrent Read Concurrent Write (CRCW): один и тот же блок в основной памяти может быть прочитан и записан несколькими процессорами одновременно.
  • Concurrent Read Exclusive Write (CREW): один и тот же блок в основной памяти может быть прочитан несколькими процессорами одновременно. Только один процессор может записывать в блок за раз.
  • Эксклюзивное чтение Эксклюзивная запись (EREW): один и тот же блок в основной памяти не может быть прочитан или записан несколькими процессорами одновременно. Только один процессор может получить доступ к блоку одновременно.

Следующие два алгоритма[1] решить проблему ЭКИПАЖА и ЭРП, если процессоры записывают в один и тот же блок одновременно. Первый подход - сериализовать операции записи. Только один процессор за другим записывает в блок. В результате получается всего параллельные блочные передачи. Второй подход требует параллельные передачи блоков и дополнительный блок для каждого процессора. Основная идея состоит в том, чтобы запланировать операции записи в мода бинарного дерева и постепенно объединить данные в единый блок. В первом туре процессоры объединяют свои блоки в блоки. потом процессоры сочетают блоки в . Эта процедура продолжается до тех пор, пока все данные не будут объединены в один блок.

Сравнение с другими моделями

МодельМногоядерныйС учетом кеша
Машина с произвольным доступом (ОЗУ)НетНет
Параллельная машина с произвольным доступом (PRAM)даНет
Внешняя память (ЭМ)Нетда
Параллельная внешняя память (PEM)дада

Примеры

Многостороннее разделение

Позволять вектор опорных точек d-1, отсортированных в порядке возрастания. Позволять - неупорядоченный набор из N элементов. D-образная перегородка[1] из это набор , где и за . называется i-м ведром. Количество элементов в больше, чем и меньше чем . В следующем алгоритме[1] вход разделен на смежные сегменты размером N / P в основной памяти. Процессор i в первую очередь работает на сегменте . Алгоритм многостороннего разбиения (PEM_DIST_SORT[1]) использует PEM сумма префикса алгоритм[1] для вычисления суммы префикса с оптимальным Сложность ввода-вывода. Этот алгоритм имитирует алгоритм оптимальной суммы префиксов PRAM.

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

Если вектор pivots M и входной набор A расположены в непрерывной памяти, тогда проблема d-образного разбиения может быть решена в модели PEM с помощью Сложность ввода / вывода. Содержимое последних сегментов должно располагаться в непрерывной памяти.

Выбор

В проблема выбора о поиске k-го наименьшего элемента в неупорядоченном списке размера . Следующий код[1] использует ПРАМСОРТ который является оптимальным алгоритмом сортировки PRAM, который работает в , и ВЫБРАТЬ, который представляет собой алгоритм выбора оптимального однопроцессорного кэша.

если  тогда         вернуть конец, если // Находим медиану каждого для каждого процессор  параллельно делаем     конец для // Сортировать медианы// Разделение вокруг медианы медианесли  тогда     вернуть еще     вернуть конец, если

В предположении, что ввод хранится в непрерывной памяти, ПЕМСЕЛЕКТ имеет сложность ввода-вывода:


Сортировка распределения

Сортировка распределения разбивает список ввода размера в непересекающиеся ведра одинакового размера. Затем каждая корзина рекурсивно сортируется, а результаты объединяются в полностью отсортированный список.

Если задача делегируется оптимальному для кеша однопроцессорному алгоритму сортировки.

В противном случае следующий алгоритм[1] используется:

// Образец  элементы из за каждый процессор  параллельно делаем    если  тогда                Нагрузка  в -размерные страницы и сортировка страниц индивидуально еще                Загрузить и отсортировать  как одна страница конец, если    Выберите каждый 'th элемент из каждой отсортированной страницы памяти в непрерывный вектор  образцовконец для параллельно делаем    Объединить векторы  в один непрерывный вектор     Делать  копии : конец делать// Находить  повороты за  к  параллельно делаем    конец дляУпаковать сводные точки в непрерывный массив // Раздел вокруг шарниров в ведра // Рекурсивно сортировать сегментыза  к  параллельно делаем    рекурсивно звонить  на ведре размера     с помощью  процессоры, отвечающие за элементы в корзине конец для

Сложность ввода-вывода ПЕМДИСТСОРТ является:

где

Если выбрано количество процессоров, то и тогда сложность ввода-вывода составляет:

Другие алгоритмы PEM

Алгоритм PEMСложность ввода / выводаОграничения
Сортировка слиянием[1]
Рейтинг списка[2]
Эйлер тур[2]
Дерево выражений оценка[2]
Нахождение MST[2]

Где время, необходимое для сортировки предметы с процессоры в модели PEM.

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

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

  1. ^ а б c d е ж грамм час я j k л Ардж, Ларс; Гудрич, Майкл Т .; Нельсон, Майкл; Ситчинава, Нодари (2008). «Фундаментальные параллельные алгоритмы для мультипроцессоров с частным кэшированием». Материалы двадцатого ежегодного симпозиума по параллелизму в алгоритмах и архитектурах - SPAA '08. Нью-Йорк, Нью-Йорк, США: ACM Press: 197. Дои:10.1145/1378533.1378573. ISBN  9781595939739.
  2. ^ а б c d Ардж, Ларс; Гудрич, Майкл Т .; Ситчинава, Нодари (2010). «Параллельные алгоритмы графа внешней памяти». 2010 Международный симпозиум IEEE по параллельной и распределенной обработке (IPDPS). IEEE: 1–11. Дои:10.1109 / ipdps.2010.5470440. ISBN  9781424464425.