"AA-Sort: A New Parallel Sorting Algorithm for Multi-Core SIMD Processors"
Hiroshi Inoue, Takao Moriyama, Hideaki Komatsu, and Toshio Nakatani
IEEE The Sixteenth International Conference on Parallel Architectures and Compilation Techniques (PACT 2007). Brasov, Romania. pp 189-198. Sept. 15-19, 2007.
Full text [PDF]: PACT2007-SIMDsort.pdf
Slides [PDF]: PACT2007_SIMDsort_slides.pdf
Casual explanation (in Japanese): blog post
Extended version of this paper is available here.
Many sorting algorithms have been studied in the past, but there are only a few algorithms that can effectively exploit both SIMD instructions and thread-level parallelism. In this paper, we propose a new parallel sorting algorithm, called Aligned-Access sort (AA-sort), for shared-memory multi processors. The AA-sort algorithm takes advantage of SIMD instruc-tions. The key to high performance is eliminating unaligned memory accesses that would reduce the effectiveness of SIMD instructions. We implemented and evaluated the AA-sort on PowerPC 970MP and Cell Broadband Engine. In summary, a sequential version of the AA-sort using SIMD instructions outperformed IBM's optimized sequential sorting library by 1.8 times and GPUTeraSort using SIMD instructions by 3.3 times on PowerPC 970MP when sorting 32 M of random 32-bit integers. Furthermore, a parallel version of AA-sort demonstrated better scalability with increasing numbers of cores than a parallel version of GPUTeraSort on both platforms.
Copyright (c) 2007 by IEEE. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee.