PhD Thesis: Finding the Right Processor for the Job - Co-Processors in a DBMS
Today, more and more Database Management Systems (DBMSs) keep the data
com- pletely in memory during processing or even store the entire database
there for fast access. In such system more algorithms are limited by the
capacity of the processor, be- cause the bottleneck of Input/Output (I/O)
to disk vanished. At the same time Graphics Processing Units (GPUs) have
exceeded the Central Processing Unit (CPU) in terms of processing power.
Research has shown that they can be used not only for graphic pro- cessing
but also to solve problems of other domains. However, not every algorithm
can be ported to the GPU’s architecture with benefit. First, algorithms
have to be adapted to allow for parallel processing in a Single Instruction
Multiple Data (SIMD) style. Sec- ond, there is a transfer bottleneck because
high performance GPUs are connected via PCI-Express (PCIe) bus.
In this work we explore which tasks can be offloaded to the GPU with benefit.
We show, that query optimization, query execution and application logic
can be sped up under certain circumstances, but also that not every task
is suitable for offloading. By giving a detailed description, implementation,
and evaluation of four different examples, we explain how suitable tasks
can be identified and ported.
Nevertheless, if there is not enough data to distribute a task over all
available cores on the GPU it makes no sense to use it. Also, if the input
data or the data generate during processing does not fit into the GPU’s
memory, it is likely that the CPU produces a result faster. Hence, the
decision which processing unit to use has to be made at run-time. It is
depending on the available implementations, the hardware, the input parameters
and the input data. We present a self-tuning approach that continually
learns which device to use and automatically chooses the right one for
every execution.
Read More