All Projects → thu-pacman → Geminigraph

thu-pacman / Geminigraph

Licence: apache-2.0
A computation-centric distributed graph processing system.

Projects that are alternatives of or similar to Geminigraph

Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+2278.57%)
Mutual labels:  in-memory, distributed-computing
Ml Systems
papers on scalable and efficient machine learning systems
Stars: ✭ 182 (-7.14%)
Mutual labels:  distributed-computing
Libcache
A Lightweight in-memory key:value cache library for Go.
Stars: ✭ 152 (-22.45%)
Mutual labels:  in-memory
Future.apply
🚀 R package: future.apply - Apply Function to Elements in Parallel using Futures
Stars: ✭ 159 (-18.88%)
Mutual labels:  distributed-computing
Wukong Agent
Web scan foundation framework
Stars: ✭ 153 (-21.94%)
Mutual labels:  distributed-computing
Hydra Express
A module which wraps Hydra and ExpressJS into a library for building distributed applications - such as microservices
Stars: ✭ 166 (-15.31%)
Mutual labels:  distributed-computing
Dizk
Java library for distributed zero knowledge proof systems
Stars: ✭ 140 (-28.57%)
Mutual labels:  distributed-computing
Mpi Operator
Kubernetes Operator for Allreduce-style Distributed Training
Stars: ✭ 190 (-3.06%)
Mutual labels:  distributed-computing
Opq
A simple, in-memory queue with worker pooling and rate limiting in Elixir.
Stars: ✭ 178 (-9.18%)
Mutual labels:  in-memory
Unitydoorstop
Doorstop -- run C# before Unity does!
Stars: ✭ 157 (-19.9%)
Mutual labels:  in-memory
Bit7z
A C++ static library offering a clean and simple interface to the 7-zip DLLs.
Stars: ✭ 159 (-18.88%)
Mutual labels:  in-memory
Kiwi
A minimalistic in-memory key value store.
Stars: ✭ 154 (-21.43%)
Mutual labels:  in-memory
Klyng
A message-passing distributed computing framework for node.js
Stars: ✭ 167 (-14.8%)
Mutual labels:  distributed-computing
Httpimport
Module for remote in-memory Python package/module loading through HTTP/S
Stars: ✭ 153 (-21.94%)
Mutual labels:  in-memory
Mlcomp
Distributed DAG (Directed acyclic graph) framework for machine learning with UI
Stars: ✭ 183 (-6.63%)
Mutual labels:  distributed-computing
Spark With Python
Fundamentals of Spark with Python (using PySpark), code examples
Stars: ✭ 150 (-23.47%)
Mutual labels:  distributed-computing
Sysmon
An intuitive remotely-accessible system performance monitoring and task management tool for servers and headless Raspberry Pi setups.
Stars: ✭ 158 (-19.39%)
Mutual labels:  distributed-computing
Unifrost
Making it easier to push pubsub events directly to the browser.
Stars: ✭ 166 (-15.31%)
Mutual labels:  in-memory
Sparktorch
Train and run Pytorch models on Apache Spark.
Stars: ✭ 195 (-0.51%)
Mutual labels:  distributed-computing
Js Spark
Realtime calculation distributed system. AKA distributed lodash
Stars: ✭ 187 (-4.59%)
Mutual labels:  distributed-computing

Gemini

A computation-centric distributed graph processing system.

Quick Start

Gemini uses MPI for inter-process communication and libnuma for NUMA-aware memory allocation. A compiler supporting OpenMP and C++11 features (e.g. lambda expressions, multi-threading, etc.) is required.

Implementations of five graph analytics applications (PageRank, Connected Components, Single-Source Shortest Paths, Breadth-First Search, Betweenness Centrality) are inclulded in the toolkits/ directory.

To build:

make

The input parameters of these applications are as follows:

./toolkits/pagerank [path] [vertices] [iterations]
./toolkits/cc [path] [vertices]
./toolkits/sssp [path] [vertices] [root]
./toolkits/bfs [path] [vertices] [root]
./toolkits/bc [path] [vertices] [root]

[path] gives the path of an input graph, i.e. a file stored on a shared file system, consisting of |E| <source vertex id, destination vertex id, edge data> tuples in binary. [vertices] gives the number of vertices |V|. Vertex IDs are represented with 32-bit integers and edge data can be omitted for unweighted graphs (e.g. the above applications except SSSP). Note: CC makes the input graph undirected by adding a reversed edge to the graph for each loaded one; SSSP uses float as the type of weights.

If Slurm is installed on the cluster, you may run jobs like this, e.g. 20 iterations of PageRank on the twitter-2010 graph:

srun -N 8 ./toolkits/pagerank /path/to/twitter-2010.binedgelist 41652230 20

Resources

Xiaowei Zhu, Wenguang Chen, Weimin Zheng, and Xiaosong Ma. Gemini: A Computation-Centric Distributed Graph Processing System. 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI '16).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].