Samuel Cremer 1,2 , Michel Bagein 1 , Sad Mahmoudi 1 , Pierre - - PowerPoint PPT Presentation

samuel cremer 1 2 michel bagein 1 sa d mahmoudi 1 pierre
SMART_READER_LITE
LIVE PREVIEW

Samuel Cremer 1,2 , Michel Bagein 1 , Sad Mahmoudi 1 , Pierre - - PowerPoint PPT Presentation

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine Samuel Cremer 1,2 , Michel Bagein 1 , Sad Mahmoudi 1 , Pierre Manneback 1 1 UMONS, University of Mons Computer Science Department, University of Mons, Rue de


slide-1
SLIDE 1

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

28/10/2016

Samuel Cremer1,2, Michel Bagein1, Saïd Mahmoudi1, Pierre Manneback1

1UMONS, University of Mons

Computer Science Department, University of Mons, Rue de Houdain 9, 7000, Mons, Belgium

2HEH, Haute Ecole en Hainaut

Computer Engineering Department, Haute Ecole en Hainaut, Av. Maistriau 8A, 7000, Mons, Belgium

samuel.cremer@heh.be

michel.bagein@umons.ac.be said.mahmoudi@umons.ac.be pierre.manneback@umons.ac.be

slide-2
SLIDE 2

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Context (1)

  • Exponential growth of data volumes

– Big Data and NoSQL – Not only data centers -> end-user applications

  • RDBMS -> still essential
  • Embedded RDBMS (SQLite, MySQL embedded, SQL Server Compact)

– Targets: personal computers, embedded devices and servers – Used as: storage system local cache system

  • > In-Memory DB

– Does not take advantage of current hardware specificities

28/10/2016 Samuel CREMER 2

slide-3
SLIDE 3

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Context (2)

  • Idea:

improving the performances of SQLite with a hybrid implementation over multicore CPU and GPU (CuDB)

  • Benefits of faster Embedded RDBMS :

– Better latencies – Better energy efficiency – Processing of larger data volumes

28/10/2016 Samuel CREMER 3

slide-4
SLIDE 4

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Why using a GPU ?

  • GPUs -> widely available
  • GPUs are SIMT architectures (Single Instruction, Multiple Threads)

– Fast for processing a same instruction on different data – SQL -> processing a same query on different rows

  • Compared to CPUs, GPUs have overall better :

– Number of cores: 2560 8 (16 threads) – Computing power: ~9000 Gflops ~800 GFlops – Memory bandwidth: ~300 GB/s ~80 GB/s – Energy efficiency: 50 GFlops/W 6 GFlops/W GeForce GTX 1080 (~800€) Xeon E5-1660 v4 (~1000€)

  • Offloads the CPU

28/10/2016 Samuel CREMER 4

slide-5
SLIDE 5

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

CuDB: Internal Architecture

28/10/2016 Samuel CREMER 5

Hybrid VM chooses to execute processing, either on CPU cores or GPU cores according to the data volume they have to process. x = size of the biggest accessed table (threshold = ~1000 records) GPU engine uses CUDA threads / CPU engine uses POSIX threads Entire database is in GPU global memory: “In-GPUMem DB”

SQL Query Compiler

GPU engine CPU engine Hybrid VM

Storage Engine

slide-6
SLIDE 6

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

CuDB: Specificities

28/10/2016 Samuel CREMER 6

In Memory Database SELECT queries are boosted by S(QP)MD paradigm (Single Query Plan, Multiple Data) Insertions are processed asynchronously by the CPU Multiple storage engines :

  • Affinity (row order and dynamic typing)
  • Boost (column order and static typing) <- fastest engine

CPU/GPU

slide-7
SLIDE 7

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Experimental results: Hardware

28/10/2016 Samuel CREMER 7

Intel Core i7 2600K GeForce GT740 GDDR5 GeForce GTX 770

Cores

4 (8 Threads) 384 1536

Frequency

3.4 – 3.8 GHz ~1 GHz ~1 GHz

Memory Bandwidth

21,4 GB/s 80 GB/s 224 GB/s

Computing Power (SP)

217 GFlops 762 GFlops 3.213 GFlops

TDP

95 W 64 W 230 W

  • Only focused on extraction queries ->

execution time of prepared statements

  • CuDB compared to:
  • SQLite with an In-Memory database
  • MySQL 5.7 with MEMORY tables
  • Transfer times required to send query-plans and results were considered
slide-8
SLIDE 8

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Experimental results: SELECT WHERE Queries

28/10/2016 Samuel CREMER 8

Average speedups with SELECT WHERE Queries Peak speedup of 411x with: SELECT * WHERE col LIKE ‘%susbstring%’ CPU GPU

slide-9
SLIDE 9

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Experimental results: SELECT JOIN Queries

28/10/2016 Samuel CREMER 9

Average speedups with SELECT JOIN Queries SQLite and CuDB build transient indexes, MySQL does not Peak speedup of 66x with self-join queries CPU GPU

slide-10
SLIDE 10

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Experimental results: Energy Efficiency

28/10/2016 Samuel CREMER 10

GTX770 GT740 GTX770 Join GT740 Join MySQL (no join) SQLite SQLite MySQL CPU 1T CPU 4T GT740 GTX770 CPU (X)T = CPU engine of CuDB with (X) threads

slide-11
SLIDE 11

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine

Conclusion and Future Works

28/10/2016 Samuel CREMER 11

  • Great speedups for full table scans
  • Better energy efficiency
  • We plan to:

– overcome the limitations of the GPU memory capacity – add full indexation mechanisms – improve SQL support

  • >

TPC-H and SSB

slide-12
SLIDE 12

Improving performances of an embedded RDBMS with a hybrid CPU/GPU processing engine 28/10/2016 Samuel CREMER 12

Thank You ! Any questions ?