Using GPUs for Database Processing

by Eric C
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

5 thoughts on “Using GPUs for Database Processing

  • October 28, 2012 at 9:58 pm
    Permalink

    It is interesting to see that people have developed ways of harnessing power from other parts of a computer. When I hear GPU I think of some cool gaming computer. It’s sad though that it requires the database to be designed directly with the GPU. Although, it does make sense.

  • October 28, 2012 at 10:26 pm
    Permalink

    This is a very interesting article, it is true when GPUs are designed to the database the results from it are greatly increased. I liked the fact that you explained a little bit about what CUDA is; as well as what IMDB is. Great post!

  • October 29, 2012 at 12:15 am
    Permalink

    It is interesting to know that GPUs are being used in database processing. I read somewhere that GPUs from AMD were also used to mine BitCoins because they are extremely efficient when it comes down to parallel computing. I was wondering that the 2D array has to be sorted before the indexes are stored? But then faster RAM and processing power can make it pointless to keep the indexes sorted…

  • October 29, 2012 at 5:11 pm
    Permalink

    Throughout the years, I’ve always known that computer CPU, RAM and GPUs were constantly getting updated and becoming more and more powerful as the months went by. I think it’s great that even GPUs are being used in database processing but I feel that hard drives are just as important. Many computer builders feel that even with the top processors and GPUs, their hard drives are always the bottleneck of their system. A slow hard drive will hold back the system’s fullest potential. I wish that manufacturers would also focus on hard drives so the computer as a whole can be used to it’s fullest potential.

  • November 1, 2012 at 2:03 pm
    Permalink

    It seems like everyone nowdays is starting to use the help of GPUs in processing. Other than the fact that its a trend, I think it makes complete sense because of the fact that GPU power is getting stronger and stronger per year and even the lesser powerful cards (which in terms of computing perform incredibly well) are super affordable now that we have 2 GB and 3 GB cards coming out to replace the older high end models. When combined with crossfire or SLI, I can see this having huge potential. It reminds me of rendering programs which sometimes use the GPU to render artwork rather than the CPU or RAM. Also, there is a such thing as a workstation graphics card which is specifically made to use for rendering – this is also I’d like to see Nvidia look into

Comments are closed.