Introduction GiST Hardware Abstraction Layer Evaluation Summary
GiST Scan Acceleration Using Coprocessors
Felix Beier, Torsten Kilias, Kai-Uwe Sattler
Ilmenau University of Technology
05/21/2012
1 / 18
GiST Scan Acceleration Using Coprocessors Felix Beier, Torsten - - PowerPoint PPT Presentation
Introduction GiST Hardware Abstraction Layer Evaluation Summary GiST Scan Acceleration Using Coprocessors Felix Beier, Torsten Kilias, Kai-Uwe Sattler Ilmenau University of Technology 05/21/2012 1 / 18 Introduction GiST Hardware
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Ilmenau University of Technology
1 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
1
2
3
4
2 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Source: [1] Source: [5]
3 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Source: [3] Source: [2]
Enormous data volumes Unknown data characteristics Costly prototyping Gap: scientists vs. system developers
4 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Implements common tree operations (insertions, deletions, node splits, height-balancing) Developer specifies key data type and type-specific operations Lookup predicate returns
false: entry can not be found in child subtree true: entry may be found in child subtree
Key type: minimal bounding rectangles Predicate: rectangle intersection test
key1 key2 ... Internal Nodes (directory) Leaf Nodes (linked list)
Source: [4] 5 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Extensibility of GiST framework Performance improvements through co-processing
Finding fine-grained parallel algorithms Utilizing hardware capabilities Out-of-core implementation Consideration of co-processing overheads
6 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Index Framework
Memory Layer Execution Layer Control Layer
Application
Buffer Pool
root N1 NM Nk N1 NM ... Nk ... ... rootCPUs GPUs
...
Worker Thread 1 Worker Thread T
...
nod e i nod e i nod e i nod e i nod e i Matching Inner Nodes Matching Leaf Nodes Query Stream ... Node Buffer ... ... ... ... N1 rootScheduler Result Sets
... ...7 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
root
child nodes
N1
child nodes
Nm
child nodes
...
child nodes
Nk
child nodes
...
child nodes
...
child nodes
...
Layer 1 2
... ... ... ...
Query Queue Query Queue Query Queue Query Queue Query Queue Query Queue Query Queue
node j
child nodes
Query Queue
node i
child nodes
Query Queue
node k
child nodes
Query Queue
max matching child nodes
8 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Execution of independent subtasks without synchronization Subtask = node - query batch pair
Execution of data parallel instructions by separate threads Synchronization possible Instruction = predicate test
9 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
Explicit transfer from host memory via PCIe bus Caching of node and query data to avoid transfer overhead Scan preparation phase to determine input data offsets
Two orders of magnitude faster than global memory Software-controlled cache for scan data
10 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
11 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
GPU time
64 128 192 256 320 384 448 512 number of queries per task 32 64 96 128 number of slots 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
12 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
96 slots per node 5 layers → 8 billion indexed entries 10.000 root queries
13 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
!" #!" $!" %!" &!" '!" (!" )!" *!" +!" !" $!" &!" (!" *!" #!!" !" '" #!" #'" $!" $'" %!" %'"
!"#$%&'()&*+,-'&'#$.()#/'0(123#
+(,-./012,$'",-3.340565072,#!!!!,8//0,9:3;5312,'#$,<=>?=04@-5A3 BCD,EF.7 GCD,EF.7 83=. HI3=. HI3=.,61,BCD HI3=.,61,GCD HI3=.,61,83=. 83=.,61,BCD 83=.,61,GCD 4,++'53$%,# !'53$%-'(!"#$%&' !"#$%&'()&*+,-'&'#$
14 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
'" #!" #'" $!" $'" %!" %'" &!" &'" '!" !" $!" &!" (!" *!" #!!" J#!" !" #!" $!" %!" &!" '!" (!" )!"
!"#$%&'()&*+,-'&'#$.()#/'0(123#
+(,-./012,$'",K:L.54=0312,#!!!!,8//0,9:3;5312,'#$,<=>?=04@-5A3 BCD,EF.7 GCD,EF.7 83=. HI3=. HI3=.,61,BCD HI3=.,61,GCD HI3=.,61,83=. 83=.,61,BCD 83=.,61,GCD 1'5'2$%-%$6 !'53$%-'(!"#$%&' !"#$%&'()&*+,-'&'#$
15 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
16 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
[1] http://en.wikipedia.org/wiki/File:Ray_trace_diagram.svg. [2] Science and Technology Review, June 2007. ”Virtual Dams Subjected to Strong Earthquakes”. [3] Chourasia, A., Olsen, K., Cui, Y., Lee, K., Zhou, J., Ely, G., Small, P., Roten, D., Day, S., Maechling, P., Jordan, T., Panda, D. K., and Levesque, J. Ground motion visualization of M8 earthquake simulation using height field. In SciDAC (2011). Available at http://www.mcs.anl.gov/uploads/cels/papers/scidac11/. [4] Hellerstein, J. M., Naughton, J. F., and Pfeffer, A. Generalized Search Trees for Database Systems. In VLDB (1995). [5] Kavan, L., and Zara, J. Fast Collision Detection for Skeletally Deformable Models. Computer Graphics Forum 24, 3 (2005), 363–372.
17 / 18
Introduction GiST Hardware Abstraction Layer Evaluation Summary
18 / 18