I have used CUDPP and Thrust to implement several basic database operations such as filter, joins and sorts.
I have run some benchmarks to compare the performance of my SQL operations with that of major database vendors.
I decided to use TPC-H bencmark tests Q1 and Q3 on a scale 100 which means that the database size is about 100 GB.
Setup (taken from TPC-H web site) :
System 1 :
Sybase IQ 15.1 ESD#1 Single Application Server
SunFire X4270 with
2 Intel Xeon 5570 2.93 GHz Quad Core processors
120 GB memory
1x 146GB SAS internal disk (10K RPM)
8 x 32GB internal SSDs
Cost : $61,217.99 USD
System 2 :
Microsoft SQL Server 2008 Enterprise x64
Processors : 2x 2.93 GHz Quad Core Intel X5570
Cores : 8
Threads : 16
Memory : 144 GB
OS Disk Drives : 2x 72 GB 15K rpm SFF SAS
Disk Controllers : 4x Smart Array P410, 1x Smart Array P411
Disks : 12x 60GB SSD SATA SFF
Total Disk Storage: 864 GB
Cost : $54,859 USD
System 3 ( My PC )
Alenka DB ( CUDPP + Thrust) - github.com/antonmks/Alenka
Processor : 2.6 GHz Intel G620
Disk : 1 x WDC 2 TB
1 x 120GB Vertex3 SSD
NVidia GTX 580 3GB gpu
Cost : $843.00
Q1 : filter and group by ops
Q3 : join, group by and sort ops
Results of Q1 and Q3 :
System 1 - 35.2 and 7.2
System 2 - 42.3 and 4.3
System 3 - 9.5 and 5.3
Please notice that results for System1 and System2 are published on TPC-H web site in a top 10 results in a 100GB category.
So the conclusion is that combination of GTX580 GPU and CUDPP and Thrust libraries is capable of outperforming expensive servers and powerful databases.
Thanks for reading !