Title
Voodoo - A Vector Algebra for Portable Database Performance on Modern Hardware.
Abstract
In-memory databases require careful tuning and many engineering tricks to achieve good performance. Such database performance engineering is hard: a plethora of data and hardware-dependent optimization techniques form a design space that is difficult to navigate for a skilled engineer --- even more so for a query compiler. To facilitate performance-oriented design exploration and query plan compilation, we present Voodoo, a declarative intermediate algebra that abstracts the detailed architectural properties of the hardware, such as multi- or many-core architectures, caches and SIMD registers, without losing the ability to generate highly tuned code. Because it consists of a collection of declarative, vector-oriented operations, Voodoo is easier to reason about and tune than low-level C and related hardware-focused extensions (Intrinsics, OpenCL, CUDA, etc.). This enables our Voodoo compiler to produce (OpenCL) code that rivals and even outperforms the fastest state-of-the-art in memory databases for both GPUs and CPUs. In addition, Voodoo makes it possible to express techniques as diverse as cache-conscious processing, predication and vectorization (again on both GPUs and CPUs) with just a few lines of code. Central to our approach is a novel idea we termed control vectors, which allows a code generating frontend to expose parallelism to the Voodoo compiler in a abstract manner, enabling portable performance across hardware platforms. We used Voodoo to build an alternative backend for MonetDB, a popular open-source in-memory database. Our backend allows MonetDB to perform at the same level as highly tuned in-memory databases, including HyPeR and Ocelot. We also demonstrate Voodoo's usefulness when investigating hardware conscious tuning techniques, assessing their performance on different queries, devices and data.
Year
DOI
Venue
2016
10.14778/3007328.3007336
PVLDB
Field
DocType
Volume
Data mining,Programming language,CUDA,Computer science,Vectorization (mathematics),SIMD,Computer hardware,Intrinsics,Query plan,Source lines of code,Database tuning,Computer architecture,Compiler,Database
Journal
9
Issue
ISSN
Citations 
14
2150-8097
21
PageRank 
References 
Authors
0.74
23
4
Name
Order
Citations
PageRank
Holger Pirk115911.12
Oscar R. Moll Thomae2342.30
Matei Zaharia39101407.89
Samuel Madden4161011176.38