SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
TurboGraph: A Fast Parallel Graph Engine Handling Billion-scale Graphs in a Single PC 
1 
Wook-Shin Han Pohang University of Science and Technology (POSTECH)
Brief Introduction 
•20 years of experiences in database engines 
–Object-relational DBMS supporting multiple bindings 
–Tight integration of DBMS with IR 
–Progressive optimization in Parallel DB2 
–Parallelizing optimizer in PostgreSQL 
–iGraph 
–TurboISO 
–TurboGraph 
1
Welcome to Graph World 
2 
Friendship network 
Protein interactions 
Internet map 
Semantic web 
Call Graph
Big Graphs in Real World 
3
Successful commercialization cases 
• (CMU startup) 
•$6.75M in funding from Madrona Venture Group and NEA (5/14/2013) 
• 
•$2.55M in seed funding (11/14/2013) 
•Funded by Farzad Nazem (founding CTO of Yahoo) and Shelley Zhuang (Founder of Eleven Two Captial) 
4
Vertex-Centric Programming in Pregel 
PageRankVertex::compute(messages) 
{ 
for each msg in messages: 
sum = sum + msg->Value() 
SetValue(0.15/NumVertices() + 0.85*sum); 
… 
SendMessageToAllNeighbors(GetValue()/n); 
… 
} 
5
Pregel-like systems 
6 
1 
3 
2 
6 
4 
5 
machine 1 
machine 2 
Original graph
Pregel-like systems 
7 
1 
3 
2 
6 
4 
5 
1 
3 
2 
6 
4 
5 
machine 1 
machine 2 
Original graph
Pregel-like systems 
8 
1 
3 
2 
6 
4 
5 
1 
3 
2 
6 
4 
5 
machine 1 
machine 2 
Original graph
Pregel-like systems 
9 
1 
3 
2 
6 
4 
5 
1 
3 
2 
6 
4 
5 
machine 1 
machine 2 
Original graph
Pregel-like systems 
10 
1 
3 
2 
6 
4 
5 
1 
3 
2 
6 
4 
5 
machine 1 
machine 2 
Original graph
Motivation 
11 
Gbase [KDD’11,VLDBJ’12] 
Pregel [SIGMOD’10] 
[VLDB’12] 
GraphChi [OSDI’12] 
Distributed System approach 
Single machine 
approach 
DBMS approach 
VERY SLOW for mining??? 
Can we exploit nice concepts in DBMSs without losing performance?
Comparison with other engines 
12 
[1] I. Stanton and G. Kliot, "Streaming Graph Partitioning for Large Distributed Graphs," KDD 2012. [2] U. Kang, H. Tong, J. Sun, C. Lin, and C. Faloutsos, "GBASE: An Efficient Analysis Platform for Large Graphs," VLDB Journal, 2012. [3] A. Kyrola, G. Blelloch, C. Guestrin, "GraphChi: Large-Scale Graph Computation on Just a PC," OSDI 2012.
Why is TurboGraph Ultra-fast? 
•Full parallelism 
•Multi-core parallelism 
•Flash SSD IO parallelism 
•Reading 400~500 Mbytes/sec from commodity SSDs 
•97K IOPS (High-performance Random Read) 
•Full overlap 
•CPU processing and I/O processing 
•I/O latency can be hidden! 
13
Three things to remember 
•Efficient disk/in-memory graph storage 
•Pin-and-slide model 
•Handling general vectors (see the paper) 
14
Challenges for Graph Storage 
•Adjacency list vs. adjacency matrix 
•Two types of graph operations in disk-based graphs 
•Graph traversal (unique in graphs) 
•Bitmap operations during computation 
15
Disk-based representation in TurboGraph 
•Slotted page of 1 Mbyte size 
•Page contains records corresponding to adjacency lists 
•RID consists of a page ID and a slot number 
•Vertex IDs or RIDs in adjacency list 
•Vertex ID approach 
•Good for bitmap operation 
•Bad for graph traversal 
–requires a potentially LARGE mapping table! 
•RID approach 
•Good for graph traversal 
•Seems to be bad for bitmap operation?? 
16
RID (mapping) table 
•Each entry corresponds to a page (not a single RID) 
•Size is very small 
•Each entry stores the starting vertex ID in the page 
•Translation of RID (pageID, slotNo) to vertex ID 
•RIDTable[pageID].startVertex + slotNo 
•Can be done in O(1) 
17
In-memory Data structures 
•Buffer pool 
•Mapping table from page ID to frame ID 
•Hash-table based mapping incurs significant performance overhead for graph traversal! 
•TurboGraph uses a page table approach! 
•A data structure for handling large adjacency list (see paper) 
18
Example 
19
Core operations in buffer pool 
•PINPAGE(pid)/UNPINPAGE(pid) 
•support large adjacency lists 
•PINCOMPUTEUNPIN(pid, RIDList, uo) 
•Prepins an available frame 
•Issues an asynchronous I/O request to the FlashSSD 
•On completion of the I/O, a callback thread processes the vertices in the RIDList by invoking the user-defined function uo.Compute 
•After processing all vertices in RIDList, unpin the page 
20
Supported Query Power: Matrix-vector multiplication 
•G = (V,E), X (column vector) 
•M(G)i: i-th column vector of G 
•Column view: 
•Applications can define their own multiplication and summation semantics (the user-defined function Compute can generalize both) 
•M(G)i is represented as the adjacency list of vi 
•We can restrict the computation to just a subset of vertices 
21
Column-view of matrix-vector multiplication in TurboGraph 
22
Pin-and-Slide Model 
•New computing model for efficiently processing the generalized matrix-vector multiplication in the column view 
•Utilizing execution thread pool and callback thread pool 
23
Pin-and-Slide Model (cont’d) 
•Given a set V of vertices of interest, 
•Identify the corresponding pages for V 
•Pin the pages in the buffer pool 
•Issue parallel asynchronous I/O requests for pages which are not in the buffer 
•Without waiting for the I/O completion, execution threads concurrently process vertices in V that are in the pages pinned 
•Slide the processing window one page at a time as soon as either an execution thread or a callback thread finishes the processing of a page 
24
Example 
25 
I = (0,1,1,1,0,1,1) 
v1 
v5 
1.identify pages (p0, p1, p2, p3, p4) for I 
2.Pin p1 and p2 
3.Issue asynchronous I/O request for p0 
4.Execution threads process v2, v3, and v5 concurrently 
5.On completion of I/O request for p0, callback threads process v1 
6.After processing any page, unpin the page and slide execution window i.e., process p3 and finally process p4
Handling general vectors 
•Indicator vector can be implemented as a bitmap 
•However, what if we want to use general vectors instead? 
•Consider PageRank where we need random accesses to pagerank values and out-degrees in two general vectors 
26
Main idea of handling general vectors 
•Adopt the concept of block-based nested loop join 
•a general vector is partitioned into multiple chunks such that each chunk fits in memory 
•Regard the pages pinned in the current buffer as a block 
•Join a block with a chunk of each random vector in-memory until we consume all chunks 
•Hide this mechanism as much as possible from users! (see paper) 
27
Example 
28
Processing Graph Queries 
•We support graph queries based on matrix- vector multiplication 
•Targeted queries processing only part of a graph 
•Global queries processing the whole graph 
•Targeted queries 
•BFS, K-step neighbors, Induced subgraph, K-step egonet, K-core, cross-edges etc. 
•Global queries 
•PageRank, connected component 
29
Experimental setup 
•Datasets 
•LiveJournal (4.8M vertices), Twitter (42M vertices), YahooWeb (1.4B vertices) 
•Intel i7 6-core PC with 12 GB RAM 
•512GB SSD (Samsung 840 series) 
•Bypass OS cache to guarantee real I/Os 
•Main competitors 
•GraphChi 
•GreenMarl [ASPLOS’12] (in-memory graph engine) 
30
Breadth-First Search (cold-run) 
•Varying the buffer size 
31 
•GraphChi does not show performance improvement for larger buffer size 
•Pin-and-Slide of TurboGraph utilizes the buffer pool in a smart way! 
•TurboGraph outperforms GreenMarl by a small margin which first loads the whole graph in memory and executes BFS
Varying # of execution threads (hot run) 
32 
•TurboGraph achieves better speedups than GreenMarl, although GreenMarl slightly outperforms TurboGraph 
•GrapchChi shows poor performance as we increase the number of execution threads
Targeted Queries 
33 
TurboGraph outperforms GraphChi by up to four orders of magnitude.
Global Queries 
34 
TurboGraph outperforms GraphChi by up to 27.69 times for PageRank. 144.11 times for Connected Component+. 
+upcoming paper for details and much faster performance
Triangles in Graph Analysis and Mining 
1 
Clustering Coefficient 
Transitivity 
Triangonal connectivity 
Community Detection 
Spam Detection 
SIGMOD 2014
Goal 
•We propose an Overlapped, Parallel, disk- based Triangulation framework for a single machine 
2 
SIGMOD 2014
HOW 
•We propose an overlapped, parallel, disk- based triangulation framework in a single machine. 
–By recognizing common components in disk-based triangulation 
4 
SIGMOD 2014
HOW 
•We propose an overlapped, parallel, disk- based triangulation framework in a single machine. 
–By using a two-level overlapping strategy 
•Micro level: asynchronous, parallel I/O using FlashSSD 
•Macro level: multi-core parallelism 
5 
SIGMOD 2014
Graph Representation 
•A graph is represented in the adjacency list form. 
•Adjacency lists are stored in slotted pages. 
•I/O is executed in page-level. 
6 
a 
b 
d 
c 
e 
f 
g 
h 
n(a) = {b,c} 
n(b) = {a,c} 
n(c) 
n(d) 
n(e) 
n(f) 
n(g) 
n(h) 
p1 
p2 
p3 
p4 
SIGMOD 2014
When main memory is not enough … 
7 
a 
b 
d 
c 
e 
f 
g 
h 
p1 
p2 
p3 
p4 
n(a) 
n(b) 
n(c) 
n(d) 
No space to load!! 
Main Memory 
Disk 
We want to identify triangles in which a, b, c, and d participate.
Observation 
•△abc and △cdf are identified using loaded adjacency lists in main memory  Internal triangles 
8 
p1 
p2 
a 
b 
d 
c 
e 
f 
g 
h 
SIGMOD 2014
Observation 
•△cfg, △cgh, and △def cannot be identified in main memory.  External triangles 
•To identify them, adjacency lists of e, f, g, and h should be loaded in main memory.  External candidate vertices 
9 
p3 
p4 
a 
b 
d 
c 
e 
f 
g 
h 
SIGMOD 2014
Related Work 
•… 
•MGT [SIGMOD2013] 
–The first work to use block-based nested loop 
–Shows nontrivial bounds for triangulation 
10 
SIGMOD 2014
Overall Procedure 
1.Split main memory into two parts – internal area and external area 
2.Load a part of adjacency lists in internal area 
3.Identify external candidate vertices 
4.Identify internal triangles 
5.Load adjacency lists of external candidate vertices in external area 
6.Find external triangles 
7.Go to step 5 until all adjacency lists of external candidate vertices are loaded 
8.Go to step 2 until all adjacency lists are loaded in internal area 
11 
SIGMOD 2014
Generic Framework 
•Any vertex/edge iterator triangulation method is applicable to OPT 
•Defining 
–Internal triangulation algorithm 
–External candidate vertices identification algorithm 
–External triangulation algorithm 
are enough. 
12
Macro-Level Overlapping 
•Using multi-core parallelism, 
–OPT overlaps internal triangulation and external triangulation. 
13
Macro-Level Overlapping 
•After applying both-level of overlap, OPT 
1.Split main memory into two parts – internal area and external area 
2.Load a part of adjacency lists in internal area 
3.Identify external candidate vertices 
4.Identify internal triangles 
5.Load adjacency lists of external candidate vertices in external area 
6.Find external triangles 
7.Go to step 5 until all adjacency lists of external candidate vertices are loaded 
8.Go to step 2 until all adjacency lists are loaded in internal area 
14 
Macro-level overlapping
Micro-Level Overlapping 
•In OPT, all reads are requested by AsyncRead. 
•After applying micro-level overlapping, OPT 
1.Split main memory into two parts – internal area and external area 
2.Load a part of adjacency lists in internal area 
3.Identify external candidate vertices 
4.Identify internal triangles 
5.Load adjacency lists of external candidate vertices in external area 
6.Find external triangles 
7.Go to step 5 until all adjacency lists of external candidate vertices are loaded 
8.Go to step 2 until all adjacency lists are loaded in internal area 
15 
Micro-level overlapping
Experiment Setup 
•Datasets 
•Intel i7 6-core PC with 16GB 
•512GB FlashSSD (Samsung 830) 
•OPT is implemented using TurboGraph [KDD’13]. 
•Competitors 
–GraphChi [OSDI’12] 
–CC-SEQ/CC-DS [KDD’11] 
–MGT [SIGMOD’13] 
16 
Dataset 
|V| 
|E| 
LJ 
4.8M 
69.0M 
ORKUT 
3.1M 
223.5M 
TWITTER 
41.7M 
1.47B 
UK 
105.9M 
3.74B 
YAHOO 
1.41B 
6.64B 
SIGMOD 2014
Effect of Micro-Level Overlapping 
17 
Less than 7% overhead 
(x axis: memory size (% of graph size), y axis: relative elapsed time to in-memory method) 
SIGMOD 2014
Effect of Number of CPU Cores 
18 
SIGMOD 2014
Result on YAHOO Dataset 
•Single core 
–OPT showed 2.04/10.72 times shorter elapsed time than MGT/GraphChi. 
•Six cores 
–OPT showed 31.36 times shorter elapsed time than GraphChi. 
19 
SIGMOD 2014
Conclusions 
•A ultra-fast, parallel graph engine called TurboGraph for efficiently handling billion-scale graphs in a single PC 
•Efficient Graph Storage 
•Pin-and-slide model which implements the column view of the matrix-vector multiplication 
•Extensive experiments shows the outstanding performance of TurboGraph for real, billion-scale graphs 
35

Más contenido relacionado

La actualidad más candente

Graph Databases introduction to rug-b
Graph Databases introduction to rug-bGraph Databases introduction to rug-b
Graph Databases introduction to rug-bPere Urbón-Bayes
 
G-Store: High-Performance Graph Store for Trillion-Edge Processing
G-Store: High-Performance Graph Store for Trillion-Edge ProcessingG-Store: High-Performance Graph Store for Trillion-Edge Processing
G-Store: High-Performance Graph Store for Trillion-Edge ProcessingPradeep Kumar
 
GeoServer on Steroids at FOSS4G Europe 2014
GeoServer on Steroids at FOSS4G Europe 2014GeoServer on Steroids at FOSS4G Europe 2014
GeoServer on Steroids at FOSS4G Europe 2014GeoSolutions
 
Data Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftData Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftAmazon Web Services
 
NetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and VerticaNetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and VerticaJosef Niedermeier
 
Datomic rtree-pres
Datomic rtree-presDatomic rtree-pres
Datomic rtree-presjsofra
 
GPU Accelerated Machine Learning
GPU Accelerated Machine LearningGPU Accelerated Machine Learning
GPU Accelerated Machine LearningSri Ambati
 
Introduction To Elastic MapReduce at WHUG
Introduction To Elastic MapReduce at WHUGIntroduction To Elastic MapReduce at WHUG
Introduction To Elastic MapReduce at WHUGAdam Kawa
 

La actualidad más candente (20)

Graph Databases introduction to rug-b
Graph Databases introduction to rug-bGraph Databases introduction to rug-b
Graph Databases introduction to rug-b
 
HDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFView
HDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFViewHDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFView
HDF-EOS to GeoTIFF Conversion Tool & HDF-EOS Plug-in for HDFView
 
G-Store: High-Performance Graph Store for Trillion-Edge Processing
G-Store: High-Performance Graph Store for Trillion-Edge ProcessingG-Store: High-Performance Graph Store for Trillion-Edge Processing
G-Store: High-Performance Graph Store for Trillion-Edge Processing
 
GeoServer on Steroids at FOSS4G Europe 2014
GeoServer on Steroids at FOSS4G Europe 2014GeoServer on Steroids at FOSS4G Europe 2014
GeoServer on Steroids at FOSS4G Europe 2014
 
MATLAB and Scientific Data: New Features and Capabilities
MATLAB and Scientific Data: New Features and CapabilitiesMATLAB and Scientific Data: New Features and Capabilities
MATLAB and Scientific Data: New Features and Capabilities
 
RTree Spatial Indexing with MongoDB - MongoDC
RTree Spatial Indexing with MongoDB - MongoDC RTree Spatial Indexing with MongoDB - MongoDC
RTree Spatial Indexing with MongoDB - MongoDC
 
SPD and KEA: HDF5 based file formats for Earth Observation
SPD and KEA: HDF5 based file formats for Earth ObservationSPD and KEA: HDF5 based file formats for Earth Observation
SPD and KEA: HDF5 based file formats for Earth Observation
 
Utilizing HDF4 File Content Maps for the Cloud Computing
Utilizing HDF4 File Content Maps for the Cloud ComputingUtilizing HDF4 File Content Maps for the Cloud Computing
Utilizing HDF4 File Content Maps for the Cloud Computing
 
Summary of HDF-EOS5 Files, Data Model and File Format
Summary of HDF-EOS5 Files, Data Model and File FormatSummary of HDF-EOS5 Files, Data Model and File Format
Summary of HDF-EOS5 Files, Data Model and File Format
 
HDF and netCDF Data Support in ArcGIS
HDF and netCDF Data Support in ArcGISHDF and netCDF Data Support in ArcGIS
HDF and netCDF Data Support in ArcGIS
 
Data Warehousing with Amazon Redshift
Data Warehousing with Amazon RedshiftData Warehousing with Amazon Redshift
Data Warehousing with Amazon Redshift
 
Working with HDF and netCDF Data in ArcGIS: Tools and Case Studies
Working with HDF and netCDF Data in ArcGIS: Tools and Case StudiesWorking with HDF and netCDF Data in ArcGIS: Tools and Case Studies
Working with HDF and netCDF Data in ArcGIS: Tools and Case Studies
 
NetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and VerticaNetFlow Data processing using Hadoop and Vertica
NetFlow Data processing using Hadoop and Vertica
 
Datomic rtree-pres
Datomic rtree-presDatomic rtree-pres
Datomic rtree-pres
 
GPU Accelerated Machine Learning
GPU Accelerated Machine LearningGPU Accelerated Machine Learning
GPU Accelerated Machine Learning
 
Efficiently serving HDF5 via OPeNDAP
Efficiently serving HDF5 via OPeNDAPEfficiently serving HDF5 via OPeNDAP
Efficiently serving HDF5 via OPeNDAP
 
MODIS Reprojection Tool
MODIS Reprojection ToolMODIS Reprojection Tool
MODIS Reprojection Tool
 
Introduction To Elastic MapReduce at WHUG
Introduction To Elastic MapReduce at WHUGIntroduction To Elastic MapReduce at WHUG
Introduction To Elastic MapReduce at WHUG
 
HDF5 Performance Enhancements with the Elimination of Unlimited Dimension
HDF5 Performance Enhancements with the Elimination of Unlimited DimensionHDF5 Performance Enhancements with the Elimination of Unlimited Dimension
HDF5 Performance Enhancements with the Elimination of Unlimited Dimension
 
NASA HDF/HDF-EOS Data Access Challenges
NASA HDF/HDF-EOS Data Access ChallengesNASA HDF/HDF-EOS Data Access Challenges
NASA HDF/HDF-EOS Data Access Challenges
 

Destacado

[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기NAVER D2
 
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data AnalyticsNAVER D2
 
[2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템  [2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템 NAVER D2
 
[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcdNAVER D2
 
[1B5]github first-principles
[1B5]github first-principles[1B5]github first-principles
[1B5]github first-principlesNAVER D2
 
[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학NAVER D2
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로NAVER D2
 

Destacado (9)

[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
[1D4]오타 수정과 편집 기능을 가진 Android Keyboard Service 개발기
 
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
[2C5]Map-D: A GPU Database for Interactive Big Data Analytics
 
[2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템  [2B4]Live Broadcasting 추천시스템
[2B4]Live Broadcasting 추천시스템
 
[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd
 
[1B5]github first-principles
[1B5]github first-principles[1B5]github first-principles
[1B5]github first-principles
 
[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학[1A1]행복한프로그래머를위한철학
[1A1]행복한프로그래머를위한철학
 
[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로
 

Similar a [2D3]TurboGraph- Ultrafast graph analystics engine for billion-scale graphs in a single machine

GraphChi big graph processing
GraphChi big graph processingGraphChi big graph processing
GraphChi big graph processinghuguk
 
Large-scale Recommendation Systems on Just a PC
Large-scale Recommendation Systems on Just a PCLarge-scale Recommendation Systems on Just a PC
Large-scale Recommendation Systems on Just a PCAapo Kyrölä
 
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...Spark Summit
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_SummaryHiram Fleitas León
 
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)Ontico
 
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)Alexey Zinoviev
 
Exploiting GPU's for Columnar DataFrrames by Kiran Lonikar
Exploiting GPU's for Columnar DataFrrames by Kiran LonikarExploiting GPU's for Columnar DataFrrames by Kiran Lonikar
Exploiting GPU's for Columnar DataFrrames by Kiran LonikarSpark Summit
 
A super fast introduction to Spark and glance at BEAM
A super fast introduction to Spark and glance at BEAMA super fast introduction to Spark and glance at BEAM
A super fast introduction to Spark and glance at BEAMHolden Karau
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsElectronic Arts / DICE
 
lecture11_GPUArchCUDA01.pptx
lecture11_GPUArchCUDA01.pptxlecture11_GPUArchCUDA01.pptx
lecture11_GPUArchCUDA01.pptxssuser413a98
 
Ling liu part 01:big graph processing
Ling liu part 01:big graph processingLing liu part 01:big graph processing
Ling liu part 01:big graph processingjins0618
 
HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010Cloudera, Inc.
 
Introduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUGIntroduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUGAdam Kawa
 
Data pipelines from zero to solid
Data pipelines from zero to solidData pipelines from zero to solid
Data pipelines from zero to solidLars Albertsson
 
Apache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming modelApache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming modelMartin Zapletal
 
Python Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB WorkshopPython Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB WorkshopJoe Drumgoole
 
SnappyData Overview Slidedeck for Big Data Bellevue
SnappyData Overview Slidedeck for Big Data Bellevue SnappyData Overview Slidedeck for Big Data Bellevue
SnappyData Overview Slidedeck for Big Data Bellevue SnappyData
 
DConf2015 - Using D for Development of Large Scale Primary Storage
DConf2015 - Using D for Development  of Large Scale Primary StorageDConf2015 - Using D for Development  of Large Scale Primary Storage
DConf2015 - Using D for Development of Large Scale Primary StorageLiran Zvibel
 
AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned Omid Vahdaty
 

Similar a [2D3]TurboGraph- Ultrafast graph analystics engine for billion-scale graphs in a single machine (20)

GraphChi big graph processing
GraphChi big graph processingGraphChi big graph processing
GraphChi big graph processing
 
Large-scale Recommendation Systems on Just a PC
Large-scale Recommendation Systems on Just a PCLarge-scale Recommendation Systems on Just a PC
Large-scale Recommendation Systems on Just a PC
 
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
 
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
Thorny Path to the Large Scale Graph Processing, Алексей Зиновьев (Тамтэк)
 
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
Thorny path to the Large-Scale Graph Processing (Highload++, 2014)
 
Exploiting GPU's for Columnar DataFrrames by Kiran Lonikar
Exploiting GPU's for Columnar DataFrrames by Kiran LonikarExploiting GPU's for Columnar DataFrrames by Kiran Lonikar
Exploiting GPU's for Columnar DataFrrames by Kiran Lonikar
 
A super fast introduction to Spark and glance at BEAM
A super fast introduction to Spark and glance at BEAMA super fast introduction to Spark and glance at BEAM
A super fast introduction to Spark and glance at BEAM
 
Future Directions for Compute-for-Graphics
Future Directions for Compute-for-GraphicsFuture Directions for Compute-for-Graphics
Future Directions for Compute-for-Graphics
 
lecture11_GPUArchCUDA01.pptx
lecture11_GPUArchCUDA01.pptxlecture11_GPUArchCUDA01.pptx
lecture11_GPUArchCUDA01.pptx
 
Ling liu part 01:big graph processing
Ling liu part 01:big graph processingLing liu part 01:big graph processing
Ling liu part 01:big graph processing
 
HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010HP - Jerome Rolia - Hadoop World 2010
HP - Jerome Rolia - Hadoop World 2010
 
Introduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUGIntroduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUG
 
Data pipelines from zero to solid
Data pipelines from zero to solidData pipelines from zero to solid
Data pipelines from zero to solid
 
Apache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming modelApache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming model
 
Python Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB WorkshopPython Ireland Conference 2016 - Python and MongoDB Workshop
Python Ireland Conference 2016 - Python and MongoDB Workshop
 
SnappyData Overview Slidedeck for Big Data Bellevue
SnappyData Overview Slidedeck for Big Data Bellevue SnappyData Overview Slidedeck for Big Data Bellevue
SnappyData Overview Slidedeck for Big Data Bellevue
 
DConf2015 - Using D for Development of Large Scale Primary Storage
DConf2015 - Using D for Development  of Large Scale Primary StorageDConf2015 - Using D for Development  of Large Scale Primary Storage
DConf2015 - Using D for Development of Large Scale Primary Storage
 
Gpgpu intro
Gpgpu introGpgpu intro
Gpgpu intro
 
AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned
 

Más de NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

Más de NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Último

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

[2D3]TurboGraph- Ultrafast graph analystics engine for billion-scale graphs in a single machine

  • 1. TurboGraph: A Fast Parallel Graph Engine Handling Billion-scale Graphs in a Single PC 1 Wook-Shin Han Pohang University of Science and Technology (POSTECH)
  • 2. Brief Introduction •20 years of experiences in database engines –Object-relational DBMS supporting multiple bindings –Tight integration of DBMS with IR –Progressive optimization in Parallel DB2 –Parallelizing optimizer in PostgreSQL –iGraph –TurboISO –TurboGraph 1
  • 3. Welcome to Graph World 2 Friendship network Protein interactions Internet map Semantic web Call Graph
  • 4. Big Graphs in Real World 3
  • 5. Successful commercialization cases • (CMU startup) •$6.75M in funding from Madrona Venture Group and NEA (5/14/2013) • •$2.55M in seed funding (11/14/2013) •Funded by Farzad Nazem (founding CTO of Yahoo) and Shelley Zhuang (Founder of Eleven Two Captial) 4
  • 6. Vertex-Centric Programming in Pregel PageRankVertex::compute(messages) { for each msg in messages: sum = sum + msg->Value() SetValue(0.15/NumVertices() + 0.85*sum); … SendMessageToAllNeighbors(GetValue()/n); … } 5
  • 7. Pregel-like systems 6 1 3 2 6 4 5 machine 1 machine 2 Original graph
  • 8. Pregel-like systems 7 1 3 2 6 4 5 1 3 2 6 4 5 machine 1 machine 2 Original graph
  • 9. Pregel-like systems 8 1 3 2 6 4 5 1 3 2 6 4 5 machine 1 machine 2 Original graph
  • 10. Pregel-like systems 9 1 3 2 6 4 5 1 3 2 6 4 5 machine 1 machine 2 Original graph
  • 11. Pregel-like systems 10 1 3 2 6 4 5 1 3 2 6 4 5 machine 1 machine 2 Original graph
  • 12. Motivation 11 Gbase [KDD’11,VLDBJ’12] Pregel [SIGMOD’10] [VLDB’12] GraphChi [OSDI’12] Distributed System approach Single machine approach DBMS approach VERY SLOW for mining??? Can we exploit nice concepts in DBMSs without losing performance?
  • 13. Comparison with other engines 12 [1] I. Stanton and G. Kliot, "Streaming Graph Partitioning for Large Distributed Graphs," KDD 2012. [2] U. Kang, H. Tong, J. Sun, C. Lin, and C. Faloutsos, "GBASE: An Efficient Analysis Platform for Large Graphs," VLDB Journal, 2012. [3] A. Kyrola, G. Blelloch, C. Guestrin, "GraphChi: Large-Scale Graph Computation on Just a PC," OSDI 2012.
  • 14. Why is TurboGraph Ultra-fast? •Full parallelism •Multi-core parallelism •Flash SSD IO parallelism •Reading 400~500 Mbytes/sec from commodity SSDs •97K IOPS (High-performance Random Read) •Full overlap •CPU processing and I/O processing •I/O latency can be hidden! 13
  • 15. Three things to remember •Efficient disk/in-memory graph storage •Pin-and-slide model •Handling general vectors (see the paper) 14
  • 16. Challenges for Graph Storage •Adjacency list vs. adjacency matrix •Two types of graph operations in disk-based graphs •Graph traversal (unique in graphs) •Bitmap operations during computation 15
  • 17. Disk-based representation in TurboGraph •Slotted page of 1 Mbyte size •Page contains records corresponding to adjacency lists •RID consists of a page ID and a slot number •Vertex IDs or RIDs in adjacency list •Vertex ID approach •Good for bitmap operation •Bad for graph traversal –requires a potentially LARGE mapping table! •RID approach •Good for graph traversal •Seems to be bad for bitmap operation?? 16
  • 18. RID (mapping) table •Each entry corresponds to a page (not a single RID) •Size is very small •Each entry stores the starting vertex ID in the page •Translation of RID (pageID, slotNo) to vertex ID •RIDTable[pageID].startVertex + slotNo •Can be done in O(1) 17
  • 19. In-memory Data structures •Buffer pool •Mapping table from page ID to frame ID •Hash-table based mapping incurs significant performance overhead for graph traversal! •TurboGraph uses a page table approach! •A data structure for handling large adjacency list (see paper) 18
  • 21. Core operations in buffer pool •PINPAGE(pid)/UNPINPAGE(pid) •support large adjacency lists •PINCOMPUTEUNPIN(pid, RIDList, uo) •Prepins an available frame •Issues an asynchronous I/O request to the FlashSSD •On completion of the I/O, a callback thread processes the vertices in the RIDList by invoking the user-defined function uo.Compute •After processing all vertices in RIDList, unpin the page 20
  • 22. Supported Query Power: Matrix-vector multiplication •G = (V,E), X (column vector) •M(G)i: i-th column vector of G •Column view: •Applications can define their own multiplication and summation semantics (the user-defined function Compute can generalize both) •M(G)i is represented as the adjacency list of vi •We can restrict the computation to just a subset of vertices 21
  • 23. Column-view of matrix-vector multiplication in TurboGraph 22
  • 24. Pin-and-Slide Model •New computing model for efficiently processing the generalized matrix-vector multiplication in the column view •Utilizing execution thread pool and callback thread pool 23
  • 25. Pin-and-Slide Model (cont’d) •Given a set V of vertices of interest, •Identify the corresponding pages for V •Pin the pages in the buffer pool •Issue parallel asynchronous I/O requests for pages which are not in the buffer •Without waiting for the I/O completion, execution threads concurrently process vertices in V that are in the pages pinned •Slide the processing window one page at a time as soon as either an execution thread or a callback thread finishes the processing of a page 24
  • 26. Example 25 I = (0,1,1,1,0,1,1) v1 v5 1.identify pages (p0, p1, p2, p3, p4) for I 2.Pin p1 and p2 3.Issue asynchronous I/O request for p0 4.Execution threads process v2, v3, and v5 concurrently 5.On completion of I/O request for p0, callback threads process v1 6.After processing any page, unpin the page and slide execution window i.e., process p3 and finally process p4
  • 27. Handling general vectors •Indicator vector can be implemented as a bitmap •However, what if we want to use general vectors instead? •Consider PageRank where we need random accesses to pagerank values and out-degrees in two general vectors 26
  • 28. Main idea of handling general vectors •Adopt the concept of block-based nested loop join •a general vector is partitioned into multiple chunks such that each chunk fits in memory •Regard the pages pinned in the current buffer as a block •Join a block with a chunk of each random vector in-memory until we consume all chunks •Hide this mechanism as much as possible from users! (see paper) 27
  • 30. Processing Graph Queries •We support graph queries based on matrix- vector multiplication •Targeted queries processing only part of a graph •Global queries processing the whole graph •Targeted queries •BFS, K-step neighbors, Induced subgraph, K-step egonet, K-core, cross-edges etc. •Global queries •PageRank, connected component 29
  • 31. Experimental setup •Datasets •LiveJournal (4.8M vertices), Twitter (42M vertices), YahooWeb (1.4B vertices) •Intel i7 6-core PC with 12 GB RAM •512GB SSD (Samsung 840 series) •Bypass OS cache to guarantee real I/Os •Main competitors •GraphChi •GreenMarl [ASPLOS’12] (in-memory graph engine) 30
  • 32. Breadth-First Search (cold-run) •Varying the buffer size 31 •GraphChi does not show performance improvement for larger buffer size •Pin-and-Slide of TurboGraph utilizes the buffer pool in a smart way! •TurboGraph outperforms GreenMarl by a small margin which first loads the whole graph in memory and executes BFS
  • 33. Varying # of execution threads (hot run) 32 •TurboGraph achieves better speedups than GreenMarl, although GreenMarl slightly outperforms TurboGraph •GrapchChi shows poor performance as we increase the number of execution threads
  • 34. Targeted Queries 33 TurboGraph outperforms GraphChi by up to four orders of magnitude.
  • 35. Global Queries 34 TurboGraph outperforms GraphChi by up to 27.69 times for PageRank. 144.11 times for Connected Component+. +upcoming paper for details and much faster performance
  • 36. Triangles in Graph Analysis and Mining 1 Clustering Coefficient Transitivity Triangonal connectivity Community Detection Spam Detection SIGMOD 2014
  • 37. Goal •We propose an Overlapped, Parallel, disk- based Triangulation framework for a single machine 2 SIGMOD 2014
  • 38. HOW •We propose an overlapped, parallel, disk- based triangulation framework in a single machine. –By recognizing common components in disk-based triangulation 4 SIGMOD 2014
  • 39. HOW •We propose an overlapped, parallel, disk- based triangulation framework in a single machine. –By using a two-level overlapping strategy •Micro level: asynchronous, parallel I/O using FlashSSD •Macro level: multi-core parallelism 5 SIGMOD 2014
  • 40. Graph Representation •A graph is represented in the adjacency list form. •Adjacency lists are stored in slotted pages. •I/O is executed in page-level. 6 a b d c e f g h n(a) = {b,c} n(b) = {a,c} n(c) n(d) n(e) n(f) n(g) n(h) p1 p2 p3 p4 SIGMOD 2014
  • 41. When main memory is not enough … 7 a b d c e f g h p1 p2 p3 p4 n(a) n(b) n(c) n(d) No space to load!! Main Memory Disk We want to identify triangles in which a, b, c, and d participate.
  • 42. Observation •△abc and △cdf are identified using loaded adjacency lists in main memory  Internal triangles 8 p1 p2 a b d c e f g h SIGMOD 2014
  • 43. Observation •△cfg, △cgh, and △def cannot be identified in main memory.  External triangles •To identify them, adjacency lists of e, f, g, and h should be loaded in main memory.  External candidate vertices 9 p3 p4 a b d c e f g h SIGMOD 2014
  • 44. Related Work •… •MGT [SIGMOD2013] –The first work to use block-based nested loop –Shows nontrivial bounds for triangulation 10 SIGMOD 2014
  • 45. Overall Procedure 1.Split main memory into two parts – internal area and external area 2.Load a part of adjacency lists in internal area 3.Identify external candidate vertices 4.Identify internal triangles 5.Load adjacency lists of external candidate vertices in external area 6.Find external triangles 7.Go to step 5 until all adjacency lists of external candidate vertices are loaded 8.Go to step 2 until all adjacency lists are loaded in internal area 11 SIGMOD 2014
  • 46. Generic Framework •Any vertex/edge iterator triangulation method is applicable to OPT •Defining –Internal triangulation algorithm –External candidate vertices identification algorithm –External triangulation algorithm are enough. 12
  • 47. Macro-Level Overlapping •Using multi-core parallelism, –OPT overlaps internal triangulation and external triangulation. 13
  • 48. Macro-Level Overlapping •After applying both-level of overlap, OPT 1.Split main memory into two parts – internal area and external area 2.Load a part of adjacency lists in internal area 3.Identify external candidate vertices 4.Identify internal triangles 5.Load adjacency lists of external candidate vertices in external area 6.Find external triangles 7.Go to step 5 until all adjacency lists of external candidate vertices are loaded 8.Go to step 2 until all adjacency lists are loaded in internal area 14 Macro-level overlapping
  • 49. Micro-Level Overlapping •In OPT, all reads are requested by AsyncRead. •After applying micro-level overlapping, OPT 1.Split main memory into two parts – internal area and external area 2.Load a part of adjacency lists in internal area 3.Identify external candidate vertices 4.Identify internal triangles 5.Load adjacency lists of external candidate vertices in external area 6.Find external triangles 7.Go to step 5 until all adjacency lists of external candidate vertices are loaded 8.Go to step 2 until all adjacency lists are loaded in internal area 15 Micro-level overlapping
  • 50. Experiment Setup •Datasets •Intel i7 6-core PC with 16GB •512GB FlashSSD (Samsung 830) •OPT is implemented using TurboGraph [KDD’13]. •Competitors –GraphChi [OSDI’12] –CC-SEQ/CC-DS [KDD’11] –MGT [SIGMOD’13] 16 Dataset |V| |E| LJ 4.8M 69.0M ORKUT 3.1M 223.5M TWITTER 41.7M 1.47B UK 105.9M 3.74B YAHOO 1.41B 6.64B SIGMOD 2014
  • 51. Effect of Micro-Level Overlapping 17 Less than 7% overhead (x axis: memory size (% of graph size), y axis: relative elapsed time to in-memory method) SIGMOD 2014
  • 52. Effect of Number of CPU Cores 18 SIGMOD 2014
  • 53. Result on YAHOO Dataset •Single core –OPT showed 2.04/10.72 times shorter elapsed time than MGT/GraphChi. •Six cores –OPT showed 31.36 times shorter elapsed time than GraphChi. 19 SIGMOD 2014
  • 54. Conclusions •A ultra-fast, parallel graph engine called TurboGraph for efficiently handling billion-scale graphs in a single PC •Efficient Graph Storage •Pin-and-slide model which implements the column view of the matrix-vector multiplication •Extensive experiments shows the outstanding performance of TurboGraph for real, billion-scale graphs 35