GPU Computing in Neo4j - clumsyspeedboat/Decision-Tree-Neo4j GitHub Wiki

What is GPU?

GPU stand for "Graphics processing unit". GPU focused on an an idea that is parallel computing. Instead of go through all the tasks and work on them, GPU will break down complex problems into many separate tasks and work on them simultaneously.

)

Why do we need GPU computing in Graph Database - Neo4j?

When working with a very large database(more than 10 millions nodes and edges) the storage and computation of algorithm can be vastly affected. GPUs have the advantages of memory bandwidth which is a great way to accelerate data analytics and graph analytics

GPUs have many different processing units that can be used at the same time. Because of that they are suited for the computational tasks in graph to go through all of the vertices or edges in a very large graph.

Using GPUs for graph analytics can bring a lot of benefits.

  • 10X reduction in communication costs
  • 2X or greater speedup for BFS with Pascal
  • Much larger problem sizes -> Analyze large graphs faster

Other work and implementation of GPUs on Graph Database

After researched from various articles we have gathered information, evidence of using GPUs computing on Neo4j:

Performance Evaluations of Graph Database using CUDA and OpenMP - Compatible Libraries

using Nvidia cuGraph to make graph analysis accessible

Comparison between the performance of querying data store in Neo4j using GPU and using Cyper-queries