-
Notifications
You must be signed in to change notification settings - Fork 32
Home
Welcome to the Signal/Collect wiki!
Signal/Collect is a programming model and framework for large-scale graph processing. The model is expressive enough to concisely formulate many iterated and data-flow algorithms on graphs, while allowing the framework to transparently parallelize the processing.
In Signal/Collect an algorithm is written from the perspective of vertices and edges. Once a graph has been specified the edges will signal and the vertices will collect. When an edge signals it computes a message based on the state of its source vertex. This message is then sent along the edge to the target vertex of the edge. When a vertex collects it uses the received messages to update its state. These operations happen in parallel all over the graph until all messages have been collected and all vertex states have converged.
Many algorithms have very simple and elegant implementations in Signal/Collect. You can find more information about the programming model and features in the project wiki. Please take the time to explore some of the example algorithms below.
- PageRank - Scala, Java
- Single-source shortest path - Scala, Java
- Vertex coloring - Scala
- Sudoku solver - Scala
- Web crawler - Scala
- Schelling Segregation - Scala
- Conway's Game of Life - Scala, Java
#Tutorial pages
##Getting Started:
- Programming model
- Java Example Algorithm
- Scala Example Algorithm
##How it works:
- Default Vertex Types
- Default Edge Types
- Signal/Collect Operations
- Execution Modes
- Interacting with the Graph
- Algorithm Termination
- Aggregation Operations
- Custom Graph-Elements
##About the Project
##For Developers
- Recommended Tools
- Setting Up Signal/Collect