cuSTINGER - Supporting Dynamic Graph Algorithms for GPUs
Oded Green & David Bader
cuSTINGER - Supporting Dynamic Graph Algorithms for GPUs Oded Green - - PowerPoint PPT Presentation
cuSTINGER - Supporting Dynamic Graph Algorithms for GPUs Oded Green & David Bader What we will see today The first dynamic graph data structure for the GPU. Scalable in size Supports the same functionality is its CPU
Oded Green & David Bader
Oded Green, HPEC'16
2
Communication networks:
data:
– Physical communication network. – Person-to-person communication network.
Oded Green, HPEC'16
3
Health-Care networks:
epidemic monitoring.
doubled in last 5 years.
Financial networks:
players.
types (property graph)
Graphs are a unifying motif for data analytics.
More importantly are dynamic and streaming graphs!
– Graph can change over time. – Changes can be to topology, edges, or vertices.
– Graphs changing at high rates. – 100s of thousands of updates per second.
Oded Green, HPEC'16
4
Oded Green, HPEC'16
5
list blocks with free space
graphs (vertex & edge type, vertex & edge weights, time-stamps, and more).
application IDs to storage IDs
Oded Green, HPEC'16
6
– Linked list of edge blocks not ideal for the GPU
Oded Green, HPEC'16
7
Transfers data between host and device automatically Reduces initialization time Allows for simple update processes
Oded Green, HPEC'16
8
Oded Green, HPEC'16
9
Pros:
requirements
– Good for GPUs
– Simple to use and manage
Cons:
unsupported
unsupported
supported
Oded Green, HPEC'16
10 Vertex Weight: Offset:
1 2 3 #
Destination: Edge Weight:
$
Legend: Optional Field Mandatory Field
– STINGER uses an Array of Structures (AOS) – cuSTINGER uses a Structure of Arrays (SOA)
similar to CSR.
Oded Green, HPEC'16
11
Legend: Optional Field Mandatory Field
1 2 3 V
Destination: Used Used: Allocated: Pointer:
– Supports edge insertion and deletion – Supports vertex insertion and deletion
Oded Green, HPEC'16
12
Legend: Optional Field Mandatory Field
Used: Allocated: Pointer:
1 2 3 V # &
Destination: Allocated Used
– Supports edge insertion and deletion – Supports vertex insertion and deletion
allocation modes
– Runtime configurable
Oded Green, HPEC'16
13
Legend: Optional Field Mandatory Field
Used: Allocated: Pointer:
1 2 3 V # &
Destination: Allocated Used Destination: Allocated Used
Option 1: Option 2:
Used: Allocated: Vertex Weight: Vertex Type: Pointer:
1 2 3 V
Destination: Edge Weight: Edge Type: Time Stamp 1: Time Stamp 2:
– Supports edge insertion and deletion – Supports vertex insertion and deletion
allocation modes
properties
Oded Green, HPEC'16
14
Legend: Optional Field Mandatory Field
Allocated Used
– Check that edge doesn’t already exist – Check for available space – Increment “used” and append to end – Adjacency list is not sorted
– Better utilization – Requires identifying two identical edges in a batch.
Oded Green, HPEC'16
15
()*
Destination: Edge Weight: Edge Type: Time Stamp 1: Time Stamp 2:
Legend: Optional Field Mandatory Field
Allocated Used
Oded Green, HPEC'16
16 Destination: Edge Weight: Edge Type: Time Stamp 1: Time Stamp 2:
Legend: Optional Field Mandatory Field
Allocated Used
()*
Destination: Edge Weight: Edge Type: Time Stamp 1: Time Stamp 2: Allocated Used
Oded Green, HPEC'16
17
Oded Green, HPEC'16
18
Name Type |/| |0| Source 123425678 Collaboration 299: 1.95= DIMACS > − : Trace route 1.69= 11.1= SNAP :2_21 Random 2= 201= DIMACS 1 − A> Citation 3.77= 16.5= SNAP 1>15 Matrix 5.15= 94= DIMACS : − 2002 Webcrawl 18.52= 523= DIMACS
Oded Green, HPEC'16
19
Oded Green, HPEC'16
20
– 15F updates per second – Same rate for insertions and deletions
– Upto 1000 edges per batch – Millions of updates per second
Oded Green, HPEC'16
21
– Overhead is big for mid- size batches. – Overhead “>AA>” for larger batches.
Oded Green, HPEC'16
22
– Unlike for the insertions case.
Oded Green, HPEC'16
23
Oded Green, HPEC'16
24
Name |/| |0| Time-CSR (sec.) Time- cuSTINGER (sec.) Execution Difference 123425678 299: 1.95= 0.218 0.242 +10% > − : 1.69= 11.1= 57.14 59.37 +3.8% :2_21 2= 201= 2992 2996 +0.14% 1 − A> 3.77= 16.5= 0.814 0.830 +2% 1>15 5.15= 94= 6.544 7.204 +10% : − 2002 18.52= 523= 424.9 431.4 +1.6%
Oded Green, HPEC'16
25
Oded Green, HPEC'16
26
Oded Green, HPEC'16
27
Oded Green, HPEC'16
28
Oded Green, HPEC'16
29
Oded Green, HPEC'16
30
Used: Allocated: Vertex Weight: Vertex Type: Pointer:
1 2 3 V