Download Alenka
Download CUDPP library
Download ModernGpu library
Install CUDPP and ModernGPU into Alenka directory
Run Makefile or Makefile.win
This is a GPU based database engine written to use vector based processing and high bandwidth of modern GPUs
-
Vector-based processing
CUDA programming model allows a single operation to be applied to an entire set of data at once. -
Smart compression
Ultra fast compression and decompression on GPU. Database operations on compressed data. -
Column-based storage
Minimizes disk I/O by only accessing the relevant data. -
Data skipping
Better performance without indexes.
Create your data files :
Run scripts load_orders.sql, load_lineitem.sql and load_customer.sql to create your database files.
O := LOAD 'orders' BINARY AS (o_orderkey{1}:int, o_custkey{2}:int, o_orderdate{5}:int, o_shippriority{8}:int);
C := LOAD 'customer' BINARY AS (c_custkey{1}:int, c_mktsegment{7}:varchar(10));
L := LOAD 'lineitem' BINARY AS (orderkey{1}:int, price{6}:decimal, discount{7}:decimal, shipdate{11}:int);
OFI := FILTER orders BY o_orderdate < 19950315;
CF := FILTER customers BY c_mktsegment == "BUILDING";
LF := FILTER lineitem BY shipdate > 19950315;
OLC := SELECT o_orderkey AS o_orderkey, o_orderdate AS o_orderdate,
o_shippriority AS o_shippriority, price AS price, discount AS discount
FROM LF JOIN OFI ON orderkey = o_orderkey
JOIN CF ON o_custkey = c_custkey;
F := SELECT o_orderkey AS o_orderkey1, o_orderdate AS orderdate1,
o_shippriority AS priority, SUM(price*(1-discount)) AS sum_revenue, COUNT(o_orderkey) AS cnt
FROM OLC GROUP BY o_orderkey, o_orderdate, o_shippriority;
RES := ORDER F BY sum_revenue DESC, orderdate1 ASC;
STORE RES INTO 'results.txt' USING ('|') LIMIT 10;