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