Graph Processing on GraphLab Create

User 3995 | 3/31/2016, 3:18:40 AM

I have run the single-source shortest-path algorithm (python code) on my local machine and it works amazing, and I have looked at the internal code which does the locking, partitioning etc at dato-code/how-to/SFrame/osssrc/sgraph/sgraphtriple_apply.cpp.

If I need to do something similar (e.g triangle counting/something which isn't implemented with dato presently), do I need to write the c++ code with all the partitioning/locking/?

PS : I have seen the sdk and have tried the basic addition and know how it works. I understand this is a newbie question, so hopefully I do get an answer!


User 1178 | 3/31/2016, 9:16:10 PM


Do you mind telling us more about what kind of problem you try to solve? Would it possible to leverage the trip_apply capability that SGraph already provides? If that is the case, you only need to write some Python function.

If you tell us more about your scenario, we maybe able to provide more insights.



User 3995 | 3/31/2016, 9:50:07 PM

Hello Ping,

Thanks for your reply.

I understand that if I would want to perform a BFS on a graph, I can use the existing triply_apply code and I would be fine.

Suppose I want to detect loops in a graph or given 2 random graphs, find if one of them is a structural subgraph of another, would I need to write something more than python code (i.e cpp code and handle vertex cuts, locking for consistency etc) ?

PS : I am a graduate student and I am prepared to write code :)

User 1178 | 3/31/2016, 11:29:21 PM


I believe you need to write your own SDK code for this case. Whether or not you need to do locking or something really depend on what you need to do, whether you need to access and modify state across multiple threads, general programming principals apply here.



User 3995 | 4/1/2016, 10:05:31 PM

Thanks for your help.