ACCELERATING SELECT WHERE AND SELECT JOIN QUERIES ON A GPU
DOI:
https://doi.org/10.7494/csci.2013.14.2.243Abstract
This paper presents implementations of a few selected SQL operations using theCUDA programming framework on the GPU platform. Nowadays, the GPU’sparallel architectures give a high speed-up on certain problems. Therefore, thenumber of non-graphical problems that can be run and sped-up on the GPUstill increases. Especially, there has been a lot of research in data mining onGPUs. In many cases it proves the advantage of offloading processing fromthe CPU to the GPU. At the beginning of our project we chose the set ofSELECT WHERE and SELECT JOIN instructions as the most common op-erations used in databases. We parallelized these SQL operations using threemain mechanisms in CUDA: thread group hierarchy, shared memories, andbarrier synchronization. Our results show that the implemented highly parallelSELECT WHERE and SELECT JOIN operations on the GPU platform canbe significantly faster than the sequential one in a database system run on theCPU.Downloads
References
Di Blas A., Kaldeway T.: Data monster: Why graphics processors will transform database processing. IEEE Spectrum, September 2009
Bandi N., Sun C., Agrawal D., El Abbadi A.: Hardware acceleretion in commercial database: a case study of spatial operations. VLDB 2004, pp. 1021–1032, 2004
Hoff T.: Scalling postgresql using cuda, May 2009. http://highscalablility.com/scaling-postgresql-using-cuda
He B., Lu M., Yang K., Fang R., Govindaraju N. K., Luo Q., Sander P. V.: Relational query coprocessing on graphics processors. ACM Trans. Database Syst., 34(4):1–39, 2009
Govindaraju N. K., Lloyd B., Wang W., Lin M., Manocha D.: Fast computation of database operations using graphics processors. ACM SIGGRAPH 2005 Courses, p. 206, New York, NY, 2005. ACM
Ding S., He J., Yan H., Suel T.: Using graphics processors for high performance IR query processing. Proc. of the 18th international conference on World wideweb, pp. 421–430, New York, NY, USA, 2009. ACM.
Fang R., He B., Lu M., Yang K., Govindaraju N. K., Luo Q., Sander P. V.: GPUQP:query co-processing using graphics processors. In ACM SIGMOD International Conference on Managament of Data, pp. 1061–1063, New York, NY,
USA, 2007. ACM.
Han T. D., Abdelrahman T. S.: Hicuda: a high-level directive-based language for GPU programming. Proc. of 2nd Workshop on General Purpose Processing on Graphics Processing Units, pp. 52–61, New York, NY, USA, 2009. ACM.
Ma W., Agrawal G.: A translation system for enabling data mining applications on gpus. Proc. of the 23rd international conference on Supercomputing, pp. 400–409, New York, NY, USA, 2009. ACM.
Che S., Boyer M., Meng J., Tarjan D., Sheaffer J. W., Skadron K.: A performance study of general-purpose applications on graphics processors using CUDA. J. Parallel Distrib. Comput., 68(10):1370–1380, 2008.
Bakkum P., Skadron K.: Accelerating SQL Database Operations on a GPU with CUDA. GPGPU-3, March 14, 2010, Pittsburgh, PA, USA.
http://www.nvidia.com/docs/IO/43395/Tesla-M2090-Board-Specification.pdf.
http://dev.mysql.com/doc/refman/5.6/en/select.html.
SQLLite:http://www.sqlite.org.
NVIDIACUDA:http://www.nvidia.com.
ANTLR:http://www.antlr.org.