В информатике модель с параллельной внешней памятью (PEM) - это абстрактная машина с поддержкой кеш-памяти и внешней памятью . [1] Это аналогия параллельных вычислений с моделью однопроцессорной внешней памяти (EM). Аналогичным образом, это аналогия с поддержкой кеширования с параллельной машиной с произвольным доступом (PRAM). Модель PEM состоит из нескольких процессоров вместе с их соответствующими частными кэшами и общей основной памятью.
Модель [ править ]
Определение [ править ]
Модель PEM [1] представляет собой комбинацию модели EM и модели PRAM. Модель PEM - это модель вычислений, которая состоит из процессоров и двухуровневой иерархии памяти . Эта иерархия памяти состоит из большой внешней памяти (основной памяти) определенного размера и небольших внутренних запоминающих устройств (кешей) . Процессоры совместно используют основную память. Каждый кеш является эксклюзивным для одного процессора. Процессор не может получить доступ к чужому кешу. Кеши имеют размер, который разделен на блоки . Процессоры могут выполнять операции только с данными, которые находятся в их кэше. Данные могут передаваться между основной памятью и кешем в блоках размера .
Сложность ввода / вывода [ править ]
Мера сложности модели PEM является сложность ввода / вывода, [1] , который определяет количество параллельных блоков переводов между основной памятью и кэш - памяти. Во время параллельной передачи блоков каждый процессор может передавать блок. Таким образом, если процессоры загружают в свои кеши параллельно блок данных размером с основную память, это считается сложностью ввода-вывода, а не нет . Программа в модели PEM должна минимизировать передачу данных между основной памятью и кешами и работать с данными в кэшах в максимально возможной степени.
Конфликты чтения / записи [ править ]
В модели PEM нет прямой сети связи между процессорами P. Процессоры должны косвенно обмениваться данными через основную память. Если несколько процессоров пытаются получить доступ к одному и тому же блоку в основной памяти одновременно, возникают конфликты чтения / записи [1] . Как и в модели PRAM, рассматриваются три различных варианта этой задачи:
- Concurrent Read Concurrent Write (CRCW): один и тот же блок в основной памяти может быть прочитан и записан несколькими процессорами одновременно.
- Параллельное чтение и монопольная запись (CREW): один и тот же блок в основной памяти может быть прочитан несколькими процессорами одновременно. Только один процессор может записывать в блок за раз.
- Эксклюзивное чтение Эксклюзивная запись (EREW): один и тот же блок в основной памяти не может быть прочитан или записан несколькими процессорами одновременно. Только один процессор может получить доступ к блоку одновременно.
Следующие два алгоритма [1] решают проблему CREW и EREW, если процессоры одновременно записывают в один и тот же блок. Первый подход - сериализовать операции записи. Только один процессор за другим записывает в блок. Это приводит к параллельным передачам блоков. Второй подход требует параллельной передачи блоков и дополнительного блока для каждого процессора. Основная идея состоит в том, чтобы запланировать операции записи в виде двоичного дерева и постепенно объединить данные в один блок. В первом раунде процессоры объединяют свои блоки в блоки. Затем процессоры объединяют блоки в . Эта процедура продолжается до тех пор, пока все данные не будут объединены в один блок.
Сравнение с другими моделями [ править ]
Модель | Многоядерный | С учетом кеша |
---|---|---|
Машина с произвольным доступом (RAM) | Нет | Нет |
Параллельная машина с произвольным доступом (PRAM) | да | Нет |
Внешняя память (EM) | Нет | да |
Параллельная внешняя память (PEM) | да | да |
Примеры [ править ]
Многостороннее разбиение [ править ]
Позвольте быть вектором d-1 опорных точек, отсортированных в порядке возрастания. Позвольте быть неупорядоченным набором из N элементов. Двустороннее разбиение [1] из - это множество , где и для . называется i-м ведром. Количество элементов в больше и меньше чем . В следующем алгоритме [1] входные данные разделяются на непрерывные сегменты размером N / P в основной памяти. Процессор i в первую очередь работает на сегменте . Алгоритм многостороннего разделения ( [1] ) использует алгоритм суммы префиксов PEM [1] для вычисления суммы префиксов с оптимальнымPEM_DIST_SORT
Сложность ввода / вывода. Этот алгоритм моделирует оптимальный алгоритм суммы префиксов PRAM.
// Параллельно вычислить d-разделение сегментов данных для каждого процессора i параллельно do Считать вектор опорных точек в кэш. Разделите на d сегментов и пусть вектор будет количеством элементов в каждой корзине.конец дляВыполните суммирование префикса PEM одновременно для набора векторов .// Используем вектор суммы префикса для вычисления последнего разделадля каждого процессора i параллельно выполните запись элементов в ячейки памяти, смещенные соответствующим образом на и .конец дляИспользуя префиксные суммы, хранящиеся в последнем процессоре P, вычисляет вектор размеров корзины и возвращает его.
Если вектор опорных точек M и входной набор A расположены в непрерывной памяти, то проблема d-образного разбиения может быть решена в модели PEM со сложностью ввода-вывода. Содержимое последних сегментов должно располагаться в непрерывной памяти.
Выбор [ править ]
Проблема выбора заключается в нахождении k-го наименьшего элемента в неупорядоченном списке размеров . В следующем коде [1] используется алгоритм оптимальной сортировки PRAM, который выполняется , и алгоритм выбора оптимального однопроцессорного кэша.PRAMSORT
SELECT
если тогда верните конец если // Найти медиану каждого для каждого процессора в параллельном сделай конце для // Сортировать медианы// Разделение вокруг медианы медианесли тогда вернуть еще вернуться конец если
В предположении, что ввод хранится в непрерывной памяти, PEMSELECT
имеет сложность ввода-вывода:
Сортировка распределения [ править ]
Сортировка распределения разделяет входной список размера на непересекающиеся сегменты одинакового размера. Затем каждая корзина рекурсивно сортируется, а результаты объединяются в полностью отсортированный список.
Если задача делегирована оптимальному для кеша однопроцессорному алгоритму сортировки.
В противном случае используется следующий алгоритм [1] :
// Примеры элементов из для каждого процессора параллельно делать , если затем загрузите в -sized страниц и сортировки страниц по отдельности еще загружать и сортировать в качестве одной страницы конца , если Заберите каждый «й элемент из каждой отсортированной страницы памяти в прилежащей вектор из образцов енд для параллельно do Объединить векторы в один непрерывный вектор Сделать копии : end do// Найти шарниры для , чтобы параллельно сделайте конец для Упаковать сводные точки в непрерывный массив // Разбиение точек на сегменты// Рекурсивно сортировать сегментыдля , чтобы параллельно выполнять рекурсивный вызов на ведре размера с использованием процессоров , отвечающие за элементы в ведре конца для
Сложность ввода-вывода PEMDISTSORT
:
где
Если количество процессоров выбрано так, а сложность ввода-вывода составит:
Другие алгоритмы PEM [ править ]
Алгоритм PEM | Сложность ввода / вывода | Ограничения |
---|---|---|
Сортировка слияния [1] | ||
Рейтинг в списке [2] | ||
Эйлер тур [2] | ||
Оценка дерева выражений [2] | ||
Поиск MST [2] |
Где время, необходимое для сортировки элементов с помощью процессоров в модели PEM.
См. Также [ править ]
- Параллельная машина с произвольным доступом (PRAM)
- Машина с произвольным доступом (RAM)
- Внешняя память (EM)
Ссылки [ править ]
- ^ Б с д е е г ч я J K L Арге, Ларс; Гудрич, Майкл Т .; Нельсон, Майкл; Ситчинава, Нодари (2008). «Фундаментальные параллельные алгоритмы для мультипроцессоров с частным кэшированием». Материалы двадцатого ежегодного симпозиума по параллелизму в алгоритмах и архитектурах - SPAA '08 . Нью-Йорк, Нью-Йорк, США: ACM Press: 197. doi : 10.1145 / 1378533.1378573 . ISBN 9781595939739.
- ^ а б в г Ардж, Ларс; Гудрич, Майкл Т .; Ситчинава, Нодари (2010). «Параллельные алгоритмы графа внешней памяти». 2010 Международный симпозиум IEEE по параллельной и распределенной обработке (IPDPS) . IEEE: 1–11. DOI : 10.1109 / ipdps.2010.5470440 . ISBN 9781424464425.