Using GPUs for Database Processing{5}


When designing a physical database, there are many variables to take into consideration that will impact the overall success of a database. Perhaps one of the most important is optimal performance. In the peer-reviewed journal written by Chang, Sheu, Yuan, and Hsu, they discuss how GPUs are used to increase the performance of a database. Since modern GPUs typically have more computing power than regular CPUs, it is beneficial to harness the power of GPUs. Using GPUs in conjunction with regular CPUs require the use of a different programming architecture, called CUDA (Computer Unified Device Architecture). Developed by NVIDIA, CUDA is a parallel computing platform that results in faster rendering and computation of complex and intensive tasks. The benefits of using CUDA include faster scattered reads from memory, higher bandwidth using fast shared memory, and bitwise operations. However, in order to incorporate the parallel computing of GPUs with databases, the database has to be specifically designed to work with it. Using a database structure called in memory database (IMDB), which runs the database on the main memory of the server, instead of a disk-drive, allows the computing of GPUs. In this case, the database will be run in the GPU’s memory with the help of CUDA. The database itself must use 2D column-major arrays instead of the typical tree structure (B-Tree) to manage the index. The performance gain, as noted by the authors, is faster by two times when running SQL operations on the GPU.

Since chapter five deals with the use of renormalizing and partitioning for the performance of a database, I feel that this article provides insight on another type of technology that can be used to speed up database processing. Although the article was very technical using examples and diagrams to show how CUDA works with databases, it was an interesting read. Since the article mentioned that in order to use GPUs with databases, the database itself has to use a totally different structure compared with traditional ones. Such complexity in processing will increase the time it takes to implement such a database.

I enjoyed reading through this article to gain more insights on how different technologies can impact the performance of a database. Using the power of today’s GPUs to make database processing faster is a brilliant idea. Some programs, such as Adobe’s Photoshop and other programs in its suite, are able to use GPU acceleration to speed up the processing. Even though the article is about a year old, the authors/researchers used older hardware, such as NVIDIA’s 9800 GT to gauge the performance of using GPUs. If using GPUs were two times faster with the 9800 GT, I wonder how the performance would be using NVIDIA’s latest GPU, GTX 680.

Source:

Yue-Shan Chang, Ruey-Kai Sheu, Shyan-Ming Yuan, & Jyn-Jie Hsu. (2012). Scaling database performance on GPUs. Information Systems Frontiers, 14(4), 909-924. doi: http://dx.doi.org/10.1007/s10796-011-9322-0