Cargando…
Concurrent query processing in a GPU-based database system
The unrivaled computing capabilities of modern GPUs meet the demand of processing massive amounts of data seen in many application domains. While traditional HPC systems support applications as standalone entities that occupy entire GPUs, there are GPU-based DBMSs where multiple tasks are meant to b...
Autores principales: | , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
Public Library of Science
2019
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6467383/ https://www.ncbi.nlm.nih.gov/pubmed/30990851 http://dx.doi.org/10.1371/journal.pone.0214720 |
_version_ | 1783411262148837376 |
---|---|
author | Li, Hao Tu, Yi-Cheng Zeng, Bo |
author_facet | Li, Hao Tu, Yi-Cheng Zeng, Bo |
author_sort | Li, Hao |
collection | PubMed |
description | The unrivaled computing capabilities of modern GPUs meet the demand of processing massive amounts of data seen in many application domains. While traditional HPC systems support applications as standalone entities that occupy entire GPUs, there are GPU-based DBMSs where multiple tasks are meant to be run at the same time in the same device. To that end, system-level resource management mechanisms are needed to fully unleash the computing power of GPUs in large data processing, and there were some researches focusing on it. In our previous work, we explored the single compute-bound kernel modeling on GPUs under NVidia’s CUDA framework and provided an in-depth anatomy of the NVidia’s concurrent kernel execution mechanism (CUDA stream). This paper focuses on resource allocation of multiple GPU applications towards optimization of system throughput in the context of systems. Comparing to earlier studies of enabling concurrent tasks support on GPU such as MultiQx-GPU, we use a different approach that is to control the launching parameters of multiple GPU kernels as provided by compile-time performance modeling as a kernel-level optimization and also a more general pre-processing model with batch-level control to enhance performance. Specifically, we construct a variation of multi-dimensional knapsack model to maximize concurrency in a multi-kernel environment. We present an in-depth analysis of our model and develop an algorithm based on dynamic programming technique to solve the model. We prove the algorithm can find optimal solutions (in terms of thread concurrency) to the problem and bears pseudopolynomial complexity on both time and space. Such results are verified by extensive experiments running on our microbenchmark that consists of real-world GPU queries. Furthermore, solutions identified by our method also significantly reduce the total running time of the workload, as compared to sequential and MultiQx-GPU executions. |
format | Online Article Text |
id | pubmed-6467383 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2019 |
publisher | Public Library of Science |
record_format | MEDLINE/PubMed |
spelling | pubmed-64673832019-05-03 Concurrent query processing in a GPU-based database system Li, Hao Tu, Yi-Cheng Zeng, Bo PLoS One Research Article The unrivaled computing capabilities of modern GPUs meet the demand of processing massive amounts of data seen in many application domains. While traditional HPC systems support applications as standalone entities that occupy entire GPUs, there are GPU-based DBMSs where multiple tasks are meant to be run at the same time in the same device. To that end, system-level resource management mechanisms are needed to fully unleash the computing power of GPUs in large data processing, and there were some researches focusing on it. In our previous work, we explored the single compute-bound kernel modeling on GPUs under NVidia’s CUDA framework and provided an in-depth anatomy of the NVidia’s concurrent kernel execution mechanism (CUDA stream). This paper focuses on resource allocation of multiple GPU applications towards optimization of system throughput in the context of systems. Comparing to earlier studies of enabling concurrent tasks support on GPU such as MultiQx-GPU, we use a different approach that is to control the launching parameters of multiple GPU kernels as provided by compile-time performance modeling as a kernel-level optimization and also a more general pre-processing model with batch-level control to enhance performance. Specifically, we construct a variation of multi-dimensional knapsack model to maximize concurrency in a multi-kernel environment. We present an in-depth analysis of our model and develop an algorithm based on dynamic programming technique to solve the model. We prove the algorithm can find optimal solutions (in terms of thread concurrency) to the problem and bears pseudopolynomial complexity on both time and space. Such results are verified by extensive experiments running on our microbenchmark that consists of real-world GPU queries. Furthermore, solutions identified by our method also significantly reduce the total running time of the workload, as compared to sequential and MultiQx-GPU executions. Public Library of Science 2019-04-16 /pmc/articles/PMC6467383/ /pubmed/30990851 http://dx.doi.org/10.1371/journal.pone.0214720 Text en © 2019 Li et al http://creativecommons.org/licenses/by/4.0/ This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited. |
spellingShingle | Research Article Li, Hao Tu, Yi-Cheng Zeng, Bo Concurrent query processing in a GPU-based database system |
title | Concurrent query processing in a GPU-based database system |
title_full | Concurrent query processing in a GPU-based database system |
title_fullStr | Concurrent query processing in a GPU-based database system |
title_full_unstemmed | Concurrent query processing in a GPU-based database system |
title_short | Concurrent query processing in a GPU-based database system |
title_sort | concurrent query processing in a gpu-based database system |
topic | Research Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6467383/ https://www.ncbi.nlm.nih.gov/pubmed/30990851 http://dx.doi.org/10.1371/journal.pone.0214720 |
work_keys_str_mv | AT lihao concurrentqueryprocessinginagpubaseddatabasesystem AT tuyicheng concurrentqueryprocessinginagpubaseddatabasesystem AT zengbo concurrentqueryprocessinginagpubaseddatabasesystem |