To explore chip-level parallelism, the PSC (Parallel Shared Cache) model is provided in this paper to describe high performance shared cache of Chip Multi-Processors (CMP). Then for a specific application, parallel sorting, a cache-conscious parallel algorithm, PMCC (Partition-Merge based Cache-Conscious) is designed based on the PSC model. The PMCC algorithm consists of two steps: the partition-based in-cache sorting and merge-based k-way merge sorting. In the first stage, PMCC first divides the input dataset into multiple blocks so that each block can fit into the shared L2 cache, and then employs multiple cores to perform parallel cache sorting to generate sorted blocks. In the second stage, PMCC first selects an optimized parameter k which can not only improve the parallelism but also reduce the cache missing rate, then performs a k-way merge sorting to merge all the sorted blocks. The I/O complexity of the in-cache sorting step and k-way merge step are analyzed in detail. The simulation results show that the PSC based PMCC algorithm can out-performance the latest PEM based cache-conscious algorithm and the scalability of PMCC is also discussed. The low I/O complexity, high parallelism and the high scalability of PMCC can take advantage of CMP to improve its performance significantly and deal with large scale problem efficiently.
[1]
Toshio Nakatani,et al.
AA-Sort: A New Parallel Sorting Algorithm for Multi-Core SIMD Processors
,
2007,
16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).
[2]
Jeffrey Scott Vitter,et al.
Efficient sorting using registers and caches
,
2000,
JEAL.
[3]
David A. Bader,et al.
A new deterministic parallel sorting algorithm with an experimental evaluation
,
1998,
JEAL.
[4]
David A. Bader,et al.
A Randomized Parallel Sorting Algorithm with an Experimental Study
,
1998,
J. Parallel Distributed Comput..
[5]
Michael T. Goodrich,et al.
Fundamental parallel algorithms for private-cache chip multiprocessors
,
2008,
SPAA '08.
[6]
Vijaya Ramachandran,et al.
Cache-efficient dynamic programming algorithms for multicores
,
2008,
SPAA '08.
[7]
Naila Rahman,et al.
Analysing cache effects in distribution sorting
,
1999,
JEAL.
[8]
Richard E. Ladner,et al.
The influence of caches on the performance of sorting
,
1997,
SODA '97.
[9]
Jonathan Schaeffer,et al.
Parallel Sorting by Regular Sampling
,
1992,
J. Parallel Distributed Comput..