Jump to content

Parallel external memory

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mwoelkde (talk | contribs) at 19:02, 21 January 2019. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Parallel external memory (Model)

In computer science, a parallel external memory (PEM) model is a cache-aware, external-memory abstract machine.[1] It is the parallel-computing analogy to the single-processor external memory (EM) model. In a similar way, it is the cache-aware analogy to the parallel random-access machine (PRAM). The PEM model consists of a number of processors, together with their respective private caches and a shared main memory.

Model

...

Read / Write conflicts

...

Complexity measure

...

Examples

Prefixsum

...

Multiway partitioning

...

Selection

The selection problem is to find an item in an unordered list of size which is bigger than other elements in .

Template:collapse is not available for use in articles (see MOS:COLLAPSE).

Under the assumption that the input is stored in contiguous memory, PEMSELECT has an I/O complexity of:


Distribution sort

Distribution sort partitions an input list of size into disjoint buckets of similar size. Every bucket is then sorted recursively and the results are combined into a fully sorted list.

If the task is delegated to a cache-optimal single-processor sorting algorithm.

Otherwise the following algorithm is used:

// Sample elements from 
for each processor in parallel do
  if then
    
    Load in -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 around pivots into buckets 


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


Template:collapse is not available for use in articles (see MOS:COLLAPSE).

Other algorithms

Algorithm Description I/O complexity Space complexity
PEM Mergesort[1] Sorts a list of items

See also

  • ...

References

  1. ^ a b Arge, Lars; Goodrich, Michael T.; Nelson, Michael; Sitchinava, Nodari (2008). "Fundamental parallel algorithms for private-cache chip multiprocessors". Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures - SPAA '08. New York, New York, USA: ACM Press. doi:10.1145/1378533.1378573. ISBN 9781595939739.