Jump to content

Параллельная внешняя память

Модель ПЕМ

В информатике модель параллельной внешней памяти (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.

// Compute parallelly a d-way partition on the data segments 
for each processor i in parallel do
    Read the vector of pivots M into the cache.
    Partition  into d buckets and let vector  be the number of items in each bucket.
end for

Run PEM prefix sum on the set of vectors  simultaneously.

// Use the prefix sum vector to compute the final partition
for each processor i in parallel do
    Write elements  into memory locations offset appropriately by  and .
end for

Using the prefix sums stored in  the last processor P calculates the vector B of bucket sizes and returns it.

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

Задача выбора поиске k-го наименьшего элемента в неупорядоченном списке A размера N. заключается в Следующий код [1] использует PRAMSORT который представляет собой оптимальный алгоритм сортировки PRAM, который работает в , и SELECT, который представляет собой алгоритм выбора оптимального для кэша однопроцессорного процессора.

if  then 
    
    return 
end if 

//Find median of each 
for each processor i in parallel do 
    
end for 

// Sort medians


// Partition around median of medians


if  then 
    return 
else 
    return 
end if

Предполагая, что входные данные хранятся в непрерывной памяти, PEMSELECT имеет сложность ввода-вывода:

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

[ редактировать ]

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

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

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

// Sample  elements from A
for each processor i in parallel do
    if  then
        
        Load  in M-sized pages and sort pages individually
    else
        
        Load and sort  as single page
    end if
    Pick every 'th element from each sorted memory page into contiguous vector  of samples
end for 

in parallel do
    Combine vectors  into a single contiguous vector 
    Make  copies of : 
end do

// Find  pivots 
for  to  in parallel do
    
end for

Pack pivots in contiguous array 

// Partition Aaround pivots into buckets 


// Recursively sort buckets
for  to  in parallel do
    recursively call  on bucket jof size 
    using  processors responsible for elements in bucket j
end for

Сложность ввода/вывода PEMDISTSORT является:

где

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

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

[ редактировать ]
PEM-алгоритм Сложность ввода-вывода Ограничения
Сортировка слиянием [1]
Рейтинг списка [2]
Эйлерова башня [2]
дерева выражений Оценка [2]
Поиск MST [2]

Где — это время, необходимое для сортировки N элементов с помощью P процессоров в модели PEM.

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и ж г час я дж к л Арге, Ларс; Гудрич, Майкл Т.; Нельсон, Майкл; Ситчинава, Нодари (2008). «Фундаментальные параллельные алгоритмы для мультипроцессоров с частным кэшем». Материалы двадцатого ежегодного симпозиума по параллелизму в алгоритмах и архитектурах . Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 197–206. дои : 10.1145/1378533.1378573 . ISBN  9781595939739 . S2CID   11067041 .
  2. ^ Jump up to: а б с д Арге, Ларс; Гудрич, Майкл Т.; Ситчинава, Нодари (2010). «Алгоритмы параллельного графа внешней памяти». 2010 Международный симпозиум IEEE по параллельной и распределенной обработке (IPDPS) . IEEE. стр. 1–11. дои : 10.1109/ipdps.2010.5470440 . ISBN  9781424464425 . S2CID   587572 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2bd4425e482478ac42d041139015c099__1697435340
URL1:https://arc.ask3.ru/arc/aa/2b/99/2bd4425e482478ac42d041139015c099.html
Заголовок, (Title) документа по адресу, URL1:
Parallel external memory - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)