Previous | Next --- Slide 22 of 42
Back to Lecture Thumbnails
MaxFlowMinCut

GraphLab seems like a very powerful concept, but for widely used applications that require high performance, there may still be value in implementing a DSL. For example, though one could perhaps use GraphLab to implement PDEs on meshes (i.e. we could give GraphLab a list of vertices, edges connecting those vertices to form faces, functions for computing PDEs on those vertices, etc), a DSL like Liszt is likely still able to optimize PDE operations on meshes more intelligently than GraphLab would be able to given that Liszt is tuned specifically to maximize PDEs on meshes (whereas GraphLab can be used more generally for almost any kind of graph computation). In addition, because Liszt is specialized for one purpose, it has a cleaner interface to the user than GraphLab; which as we discussed, can get somewhat messy depending on how you use it.

kayvonf

@MaxFlowMinCut. I want to point out that I fully consider GraphLab to be a DSL. It might be implemented as an API in C++, but a language is defined by a set of operations and their semantics, and systems like GraphLab certainly define such a semantics. Having a unique syntax is not the hallmark of being a language. (Note that I use the term domain specific programming systems as the title of lecture 20.

That said, I agree with your comment above.