Recent developments have shown that classic database query
execution techniques, such as the iterator model, are no longer
optimal to leverage the features of modern hardware
architectures. This is especially true for massive parallel
architectures, such as many-core processors and GPUs. Here, the
processing of single tuples in one step is not enough work to
utilize the hardware resources and the cache efficiently and to
justify the overhead introduced by iterators. To overcome these
problems, we use just-in-time compilation to execute whole OLAP
queries on the GPU minimizing the overhead for transfer and
synchronization. We describe several patterns, which can be used
to build efficient execution plans and achieve the necessary
parallelism. Furthermore, we show that we can use similar
processing models (and even the same source code) on GPUs and
modern CPU architectures, but point out also some differences
and limitations for query execution on GPUs. Results from our
experimental evaluation using a TPC-H subset show that using
these patterns we can achieve a speed-up of up to factor 5
compared to a CPU implementation.
%0 Book Section
%1 Rauhe2013-he
%A Rauhe, Hannes
%A Dees, Jonathan
%A Sattler, Kai-Uwe
%A Faerber, Franz
%B Advances in Databases and Information Systems
%D 2013
%I Springer Berlin Heidelberg
%K All Bulk_synchronous_parallel CPU Dynamic_hashing Efficient_query_execution Expose GPU Hash_table Index_hashing Index_structure Memory_hierarchy Physical_Query_Optimization Query_compilation
%P 330--343
%T Multi-level Parallel Query Execution Framework for CPU and
GPU
%X Recent developments have shown that classic database query
execution techniques, such as the iterator model, are no longer
optimal to leverage the features of modern hardware
architectures. This is especially true for massive parallel
architectures, such as many-core processors and GPUs. Here, the
processing of single tuples in one step is not enough work to
utilize the hardware resources and the cache efficiently and to
justify the overhead introduced by iterators. To overcome these
problems, we use just-in-time compilation to execute whole OLAP
queries on the GPU minimizing the overhead for transfer and
synchronization. We describe several patterns, which can be used
to build efficient execution plans and achieve the necessary
parallelism. Furthermore, we show that we can use similar
processing models (and even the same source code) on GPUs and
modern CPU architectures, but point out also some differences
and limitations for query execution on GPUs. Results from our
experimental evaluation using a TPC-H subset show that using
these patterns we can achieve a speed-up of up to factor 5
compared to a CPU implementation.
@incollection{Rauhe2013-he,
abstract = {Recent developments have shown that classic database query
execution techniques, such as the iterator model, are no longer
optimal to leverage the features of modern hardware
architectures. This is especially true for massive parallel
architectures, such as many-core processors and GPUs. Here, the
processing of single tuples in one step is not enough work to
utilize the hardware resources and the cache efficiently and to
justify the overhead introduced by iterators. To overcome these
problems, we use just-in-time compilation to execute whole OLAP
queries on the GPU minimizing the overhead for transfer and
synchronization. We describe several patterns, which can be used
to build efficient execution plans and achieve the necessary
parallelism. Furthermore, we show that we can use similar
processing models (and even the same source code) on GPUs and
modern CPU architectures, but point out also some differences
and limitations for query execution on GPUs. Results from our
experimental evaluation using a TPC-H subset show that using
these patterns we can achieve a speed-up of up to factor 5
compared to a CPU implementation.},
added-at = {2015-04-10T18:02:47.000+0200},
author = {Rauhe, Hannes and Dees, Jonathan and Sattler, Kai-Uwe and Faerber, Franz},
biburl = {https://www.bibsonomy.org/bibtex/2c4d0c8cdb30a444ea5f2650a5d81455d/christophv},
booktitle = {Advances in Databases and Information Systems},
interhash = {378e9eaf40ce6c2f3d81458807173f48},
intrahash = {c4d0c8cdb30a444ea5f2650a5d81455d},
keywords = {All Bulk_synchronous_parallel CPU Dynamic_hashing Efficient_query_execution Expose GPU Hash_table Index_hashing Index_structure Memory_hierarchy Physical_Query_Optimization Query_compilation},
pages = {330--343},
publisher = {Springer Berlin Heidelberg},
series = {Lecture Notes in Computer Science},
timestamp = {2016-01-04T14:22:08.000+0100},
title = {Multi-level Parallel Query Execution Framework for {CPU} and
{GPU}},
year = 2013
}