Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support of data structs binding on V/E layer #1

Open
archenroot opened this issue Jan 8, 2019 · 3 comments
Open

Support of data structs binding on V/E layer #1

archenroot opened this issue Jan 8, 2019 · 3 comments

Comments

@archenroot
Copy link

Hello,

this work looks superior, going to run some stuff on and test it. Especially against GUNROCK project.

Q: Do you think about supporting binding data structs to V/E, which can be used to limit/restrict traversal algorithms implemented?

@jiazhihao
Copy link
Collaborator

Thanks for your interests in Lux!

I am not sure if I fully understand what do you mean by binding data structs to V/E. Currently we use CSC/CSR format to store graphs internally, and both node and edge properties can be any type (e.g., scalar, vector, etc..)

@archenroot
Copy link
Author

archenroot commented Jan 8, 2019

@jiazhihao - thanks for prompt answer. I actually didn't yet compile and looked in more detail in API, but I already looked at Legion and other GASNe yesterday :-) very nice stuff.

I discussed similar topic with guys from GUNROCK team:
gunrock/gunrock#453

Also guys from GUNROCK actively participate in newly released project by NVIDIA and its partners RAPIDS platform which resulted in sub-project:
https://github.com/rapidsai/cugraph

.... these are just information for you if you are not aware yet :-)

But back to my question (from gunrock issue):

Scenario:
Simple graph of 4 nodes (square) with properties (Strings, can be in form of vector of course):
Vertex id: A (number, but for clear representation)- property: alfa
| Edge id: AB - property: USE THIS PATH
Vertex id: B - property: LAMBDA
| Edge id: BC - property: USE THIS PATH
Vertex id: C - property: PHI
| Edge id: CD - property: DONT USE PATH
Vertex id: D - property: OMEGA
| Edge id: DA - property: DONT USE PATH

Now I would like to search in such structure for SHORTEST PATH trough edges where property=USE THIS PATH.

Can I achieve such effect with Lux at moment? This is to to demonstrate real world benchmark.

Also more details on similar discussion you can find at referenced issue from GUNROCK project, especially I discuss the idea of Mega-KV project integration potential for efficient large data binding to N/E in graph structures on GPU.

@jiazhihao
Copy link
Collaborator

@archenroot Thanks for the references.

Yes, Lux can support your scenario. If the edge properties are USE or DONT USE, a simple solution would be treating the edge value as 1 and infinite in the SSSP example. You can also define any complex data structure along with edges/nodes.

We also have a collaborative filtering example whose nodes' properties are vector representations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants