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

how to execute Node2vec with C-SAW? #3

Open
Alexcyh7 opened this issue Dec 3, 2020 · 6 comments
Open

how to execute Node2vec with C-SAW? #3

Alexcyh7 opened this issue Dec 3, 2020 · 6 comments
Labels
enhancement New feature or request

Comments

@Alexcyh7
Copy link

Alexcyh7 commented Dec 3, 2020

Hi, I recently read you paper published in SC2020. The paper used node2vec to demonstrate the system design. However, I do not find this application in the source code, and the api cannot figure out the previous vertex of a walker. Could you please share the source code with node2vec with us? Thanks.

@concept-inversion
Copy link
Owner

Hi.
The design of C-SAW can support the implementation of node2vec but is not reflected in the current public APIs. The previous implementation of node2vec used a different data structure for storing the history of visited nodes which was inefficient. The node2vec implementation with the current C-SAW API is currently under development.

@concept-inversion concept-inversion added the enhancement New feature or request label Dec 7, 2020
@Alexcyh7
Copy link
Author

Alexcyh7 commented Dec 8, 2020

Hi.
I have another question. It seems that the streaming version can't be compiled, I'm wondering whether the public version can support the graph size exceding the GPU memory.

@concept-inversion
Copy link
Owner

It supports a graph with a size exceeding the GPU memory as only a few partitions are transferred at an iteration. I will fix the issues with the streaming version as soon as I have spare time.

@RemyLau
Copy link

RemyLau commented Mar 4, 2021

Hi.
The design of C-SAW can support the implementation of node2vec but is not reflected in the current public APIs. The previous implementation of node2vec used a different data structure for storing the history of visited nodes which was inefficient. The node2vec implementation with the current C-SAW API is currently under development.

Hi, I'm wondering what's the current state of the development on node2vec. I've been thinking about using GPU to generate random walks on graph for a while and recently noticed your paper. So I wanted to test out how well it worked. I've developed an implementation of nodevec (you can find it here) that is significantly faster the original implementations. I haven't had time to fully digest the paper and how the framework works, but do you have any suggestion on how to get started if I want to try to implement node2vec with your API?

@concept-inversion
Copy link
Owner

Hi. I have not been able to update the code recently due to other works. I think it will be updated in a couple of weeks. For implementing node2vec, we need to store the recently sampled nodes which is not supported by the current API. We can use an array for storing recently visited edges for each random walk and update EdgeBias API for considering recently visited nodes while computing edge transition probability for each edge.
I would love to go through your implementation. Are you planning to add GPU support for sampling?

@RemyLau
Copy link

RemyLau commented Mar 8, 2021

I would definitely love to add GPU support. I've had some experience with cuda programing, but mostly on stencil computations, and I haven't thought much about exactly how to implement random walk simulation on GPU, even though I also had this idea of GPU implementation of random walk in my head for a while. So I'm pretty interested to so how would this work out compared to the CPU implementations. And I have a benchmarking repository that could help comparing speedup performances across different implementations to see how much performance increase can be made by the GPU implementation.

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

No branches or pull requests

3 participants