Hello Praveen, This very much depends on the algorithm. Due to some recent optimizations (intra-loop merging) many algorithms should be as fast as hand-implemented code. Publications on this subject are in preparation. The only Giraph feature we do not currently use is combiners, but we are thinking about generating those automatically as well.
- Jan On Tue, Jul 10, 2012 at 9:14 PM, Praveen Sripati <[email protected]>wrote: > Nice to know about `Green-Marl`. Abstraction would make working with Graphs > more easy, but also would also add a bit of a performance overhead. Has any > study been done on the same? > > Thanks, > Praveen > > > On Wed, Jul 11, 2012 at 7:40 AM, Avery Ching <[email protected]> wrote: > > > This is really cool stuff. > > > > Avery > > > > > > On 7/10/12 6:25 PM, Jan van der Lugt wrote: > > > >> Hi everyone, > >> > >> Some of you might already know Green-Marl, Green-Marl compatibility was > >> even mentioned as a new feature for Giraph 0.2, but for those who don't, > >> let me give you a quick introduction. > >> > >> Green-Marl is a domain-specific language tailored to graph algorithms. > It > >> has many features that makes it possible to write graph algorithms very > >> concise and intuitive. For example, it has built-in constructs for > graphs, > >> node properties, and traversals. A more complete description is given > >> here: > >> http://ppl.stanford.edu/**papers/asplos12_hong.pdf< > http://ppl.stanford.edu/papers/asplos12_hong.pdf>. > >> Apart from the language, > >> there is also a Green-Marl compiler that compiles the language to > >> different > >> targets. C++/OpenMP was initially supported, after which support for > >> Stanford GPS (a Pregel-clone developed at Stanford) was added for a > subset > >> of the features in the Green-Marl language. The big advantage of using a > >> language like Green-Marl is that it enables you to write implicitly > >> parallel programs in an intuitive way with the compiler doing most of > the > >> heavy work such as generating the messaging, converting pull-based > >> operation (remote reading) to push-based operations (message sending), > >> etc. > >> In the last few months I have worked on a few features in Giraph that > >> enable Green-Marl to target Giraph as a back-end (namely GIRAPH-127, > >> GIRAPH-192 and GIRAPH-216). Since these have all been merged, Green-Marl > >> and Giraph should be compatible as of last week! > >> > >> Using Green-Marl with Giraph is very simple, as long as you have a > working > >> Hadoop/Giraph environment. Since the Green-Marl compiler is a > >> source-to-source compiler, it is very easy to use it in an existing > >> set-up. > >> The steps to using Green-Marl are like this: > >> > >> 1. Download the Green-Marl compiler from > >> https://github.com/stanford-**ppl/Green-Marl< > https://github.com/stanford-ppl/Green-Marl>, > >> run make_dirs.sh in the > >> top-level dir and run make in the src dir. A more detailed > >> explanation is > >> given in the Github readme. > >> 2. Compile one of the examples (in the top-level directory) like > >> this: bin/gm_comp -t=giraph apps/src/pagerank.gm > >> 3. Move pagerank.java to the Giraph src directory or your own > project, > >> package it into a .jar and go! > >> 4. Explore more examples, modify them and start writing your own > >> > >> Green-Marl is actively being worked on within Oracle Labs, new features > >> are > >> being added to the language (such as collection node properties) and > >> support for these features will be added to the distributed back-ends in > >> the near future. > >> > >> In case of questions or suggestions, please send us a message! Feedback > is > >> very much appreciated and people are more than welcome to contribute > >> everything from small bugfixes to entire back-ends ;-) > >> > >> - Jan > >> > >> > > > > >
