What is Signal/Collect? - Signal/Collect Paper

The amount of data that we have access to is growing at an incredible pace, enabling opportunities to discover new knowledge by interlinking and analyzing previously unconnected data sets. This confronts researchers with a conundrum: Whilst the data is available the programming models that facilitate scalability and the infrastructure to run various algorithms on the graph are missing.

Some use MapReduce a good solution for many problems. However, even some simple iterative graph algorithms do not map nicely to that programming model requiring programmers to shoehorn their problem to the MapReduce model.

We present the Signal/Collect programming model for synchronous and asynchronous graph algorithms. This abstraction can capture the essence of many algorithms on graphs in a concise and elegant way. You can find a more detailed description in our paper.



How do I use Signal/Collect?

We released Signal/Collect under the free and open Apache 2.0 License. Download a current snapshot Jar and add it to the build path of your Scala project. The best way to get started is to use the source code of the example algorithms (PageRank, VertexColoring, Single-source shortest path, Sudoku solver, Hamiltonian path finder) as a starting point. You will soon be able to find more documentation at Google Code.


How does Signal/Collect scale?

The current version of the framework takes advantage of having several processors/cores in one machine (vertical scalability/scale up), but it does not yet support running on a grid of compute nodes (horizontal scalability/scale out). We are working on this.



Can I implement Signal/Collect algorithms in Java?

Currently not. If you need a Java API please send us an email and we will give priority to this feature.



I have another question.

Please send us an email.