|
ABSTRACT
This paper presents novel tree-based search algorithms that exploit the SIMD instructions found in virtually all modern processors. The algorithms are a natural extension of binary search: While binary search performs one comparison at each iteration, thereby cutting the search space in two halves, our algorithms perform k comparisons at a time and thus cut the search space into k pieces. On traditional processors, this so-called k-ary search procedure is not beneficial because the cost increase per iteration offsets the cost reduction due to the reduced number of iterations. On modern processors, however, multiple scalar operations can be executed simultaneously, which makes k-ary search attractive. In this paper, we provide two different search algorithms that differ in terms of efficiency and memory access patterns. Both algorithms are first described in a platform independent way and then evaluated on various state-of-the-art processors. Our experiments suggest that k-ary search provides significant performance improvements (factor two and more) on most platforms.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Cell Broadband Engine Programming Handbook.
|
| |
2
|
Jatin Chhugani , Anthony D. Nguyen , Victor W. Lee , William Macy , Mostafa Hagog , Yen-Kuang Chen , Akram Baransi , Sanjeev Kumar , Pradeep Dubey, Efficient implementation of sorting on multi-core SIMD CPU architecture, Proceedings of the VLDB Endowment, v.1 n.2, August 2008
[doi> 10.1145/1454159.1454171]
|
| |
3
|
Code available at: wwwdb.inf.tu-dresden.de/schlegel.
|
| |
4
|
|
 |
5
|
|
| |
6
|
Intel Corporation. Intel AVX: New Frontiers in Performance Improvements and Energy Efficiency, March 2008.
|
| |
7
|
|
| |
8
|
PowerPC Microprocessor Family: Vector/SIMD Multimedia Extension Technology Programming Environments Manual.
|
 |
9
|
|
 |
10
|
|
| |
11
|
K. A. Ross. Efficient hash probes on modern processors. ICDE, 0:1297--1301, 2007.
|
 |
12
|
|
|