Параллельная внешняя память
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Parallel_External_Memory_Model_PEM.png/400px-Parallel_External_Memory_Model_PEM.png)
В информатике модель параллельной внешней памяти (PEM) представляет собой с поддержкой кэша и внешней памятью абстрактную машину . [1] Это аналогия параллельных вычислений модели однопроцессорной внешней памяти (EM). Подобным образом, это аналогия с поддержкой кэша параллельной машины с произвольным доступом (PRAM). Модель PEM состоит из нескольких процессоров вместе с соответствующими частными кэшами и общей основной памятью.
Модель [ править ]
Определение [ править ]
Модель PEM [1] представляет собой комбинацию модели EM и модели PRAM. Модель PEM — это вычислительная модель, состоящая из процессоры и двухуровневая иерархия памяти . Эта иерархия памяти состоит из большой внешней памяти (основной памяти) размером и небольшая внутренняя память (кеши) . Процессоры совместно используют основную память. Каждый кэш предназначен только для одного процессора. Процессор не может получить доступ к чужому кэшу. Тайники имеют размер который разделен на блоки размером . Процессоры могут выполнять операции только с данными, которые находятся в их кэше. Данные могут передаваться между основной памятью и кэшем блоками размером .
Сложность ввода- вывода [ править ]
Мерой сложности модели PEM является сложность ввода-вывода, [1] который определяет количество параллельных передач блоков между основной памятью и кэшем. Во время параллельной передачи блоков каждый процессор может передать блок. Так что если процессоры параллельно загружают блок данных размером формируют основную память в свои кэши, это считается сложностью ввода-вывода нет . Программа в модели PEM должна минимизировать передачу данных между основной памятью и кэшами и как можно больше оперировать данными в кэшах.
Конфликты чтения/записи [ править ]
В модели PEM нет прямой сети связи между процессорами P. Процессоры должны взаимодействовать косвенно через основную память. Если несколько процессоров пытаются одновременно получить доступ к одному и тому же блоку в основной памяти, возникают конфликты чтения/записи. [1] происходить. Как и в модели PRAM, рассматриваются три различных варианта этой проблемы:
- Одновременное чтение и параллельная запись (CRCW): один и тот же блок в основной памяти может одновременно читаться и записываться несколькими процессорами.
- Параллельное чтение и эксклюзивная запись (CREW): один и тот же блок в основной памяти может одновременно читаться несколькими процессорами. Одновременно в блок может писать только один процессор.
- Эксклюзивное чтение Эксклюзивная запись (EREW): один и тот же блок в основной памяти не может быть прочитан или записан несколькими процессорами одновременно. Только один процессор может одновременно обращаться к блоку.
Следующие два алгоритма [1] решить проблему ЭКИПАЖА и ЭРВ, если процессоры записывают в один и тот же блок одновременно. Первый подход заключается в сериализации операций записи. Только один процессор за другим записывает в блок. В результате всего параллельные блочные передачи. Второй подход требует параллельная передача блоков и дополнительный блок для каждого процессора. Основная идея состоит в том, чтобы запланировать операции записи в виде двоичного дерева и постепенно объединить данные в один блок. В первом раунде процессоры объединяют свои блоки в блоки. Затем процессоры объединяют в себе блоки в . Эта процедура продолжается до тех пор, пока все данные не объединятся в один блок.
Сравнение с другими моделями [ править ]
Модель | Многоядерный | Поддержка кэша |
---|---|---|
Машина произвольного доступа (ОЗУ) | Нет | Нет |
Параллельная машина произвольного доступа (PRAM) | Да | Нет |
Внешняя память (ЕМ) | Нет | Да |
Параллельная внешняя память (PEM) | Да | Да |
Примеры [ править ]
Многостороннее разделение [ править ]
Позволять быть вектором d-1 опорных точек, отсортированным в порядке возрастания. Пусть A — неупорядоченное множество из N элементов. D-образный раздел [1] представляет собой A множество , где и для . называется i-м ведром. Количество элементов в больше, чем и меньше, чем . В следующем алгоритме [1] вход разделен на смежные сегменты размера N/P. в основной памяти. Процессор i преимущественно работает на сегменте . Алгоритм многостороннего разбиения ( PEM_DIST_SORT
[1] ) использует суммирования префиксов PEM алгоритм [1] рассчитать сумму префикса с оптимальным Сложность ввода-вывода. Этот алгоритм имитирует оптимальный алгоритм суммы префиксов PRAM.
// Параллельно вычисляем d-стороннее разделение сегментов данных для каждого процессора я параллельно делаю Считайте вектор поворотов M в кеш. Раздел в d ведра и пусть вектор быть количеством предметов в каждом ведре. конец для Запустите сумму префикса PEM для набора векторов одновременно. // Используем вектор суммы префикса для вычисления окончательного раздела для каждого процессора я параллельно делаю Запись элементов в ячейки памяти, смещенные соответствующим образом на и . конец для Используя префиксные суммы, хранящиеся в последний процессор P вычисляет вектор B размеров сегментов и возвращает его.
Если вектор опорные точки M и входной набор A расположены в непрерывной памяти, то проблема d-стороннего разделения может быть решена в модели PEM с помощью Сложность ввода-вывода. Содержимое последних сегментов должно располагаться в непрерывной памяти.
Выбор [ править ]
заключается Задача выбора в поиске k-го наименьшего элемента в неупорядоченном A размера N. списке
Следующий код [1] использует PRAMSORT
который представляет собой оптимальный алгоритм сортировки PRAM, который работает в , и SELECT
, который представляет собой алгоритм выбора оптимального для кэша однопроцессорного процессора.
если затем возвращаться конец, если //Находим медиану каждого для каждого процессора я параллельно делаю конец для // Сортируем медианы // Разбиение вокруг медианы медиан если затем вернись иначе возврат конец, если
Предполагая, что ввод хранится в непрерывной памяти, PEMSELECT
имеет сложность ввода-вывода:
Сортировка распределения [ править ]
Сортировка по распределению разделяет входной список A размера N на d непересекающиеся сегменты одинакового размера. Затем каждый сегмент рекурсивно сортируется, и результаты объединяются в полностью отсортированный список.
Если задача делегируется оптимальному для кэша однопроцессорному алгоритму сортировки.
В противном случае следующий алгоритм [1] используется:
// Образец элементы из A для каждого процессора i параллельно делают , если затем Нагрузка на страницах размера M и сортировать страницы по отдельности. еще Загрузить и отсортировать как одна страница конец, если Выберите каждый '-й элемент из каждой отсортированной страницы памяти в непрерывный вектор образцов конец параллельно делать Объединить векторы в один непрерывный вектор Делать копии : конец делать // Находить повороты для к параллельно делаю конец для Упаковать поворотные элементы в непрерывный массив // Раздел A вокруг разбиения на сегменты // Рекурсивно сортируем сегменты для к параллельно делаю рекурсивно вызывать на ведре j размера с использованием процессоры, ответственные за элементы в сегменте j, заканчиваются
Сложность ввода/вывода PEMDISTSORT
является:
где
Если выбрано такое количество процессоров и тогда сложность ввода-вывода составит:
PEM Другие алгоритмы
PEM-алгоритм | Сложность ввода-вывода | Ограничения |
---|---|---|
Сортировка слиянием [1] | ||
Рейтинг списка [2] | ||
Эйлерова башня [2] | ||
дерева выражений Оценка [2] | ||
Поиск MST [2] |
Где — это время, необходимое для сортировки N элементов с помощью P процессоров в модели PEM.
См. также [ править ]
- Параллельная машина произвольного доступа (PRAM)
- Машина произвольного доступа (ОЗУ)
- Внешняя память (ЕМ)
Ссылки [ править ]
- ^ Перейти обратно: а б с д Это ж г час я дж к л Арге, Ларс; Гудрич, Майкл Т.; Нельсон, Майкл; Ситчинава, Нодари (2008). «Фундаментальные параллельные алгоритмы для мультипроцессоров с частным кэшем». Материалы двадцатого ежегодного симпозиума по параллелизму в алгоритмах и архитектурах . Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 197–206. дои : 10.1145/1378533.1378573 . ISBN 9781595939739 . S2CID 11067041 .
- ^ Перейти обратно: а б с д Арге, Ларс; Гудрич, Майкл Т.; Ситчинава, Нодари (2010). «Алгоритмы параллельного графа внешней памяти». 2010 Международный симпозиум IEEE по параллельной и распределенной обработке (IPDPS) . IEEE. стр. 1–11. дои : 10.1109/ipdps.2010.5470440 . ISBN 9781424464425 . S2CID 587572 .