Skip to content
This repository has been archived by the owner on Dec 22, 2022. It is now read-only.

Implementing PageRank #40

Merged
merged 23 commits into from
Apr 13, 2021
Merged

Implementing PageRank #40

merged 23 commits into from
Apr 13, 2021

Conversation

bkj
Copy link
Contributor

@bkj bkj commented Apr 13, 2021

PageRank, implemented from first principals. Should produce ~ the same results as the original Gunrock implementation, though convergence criteria may be different.

Suggestions -- none of these are major, but:

  • would be nice to have a flag in operators::advance::execute to control whether frontiers are automatically swapped.
  • could be nice to have a ForEachEdge that uses the advance load balancing to run a function on every edge
  • likewise, could be nice to have a ForEachNode that runs a function on every node
  • could be nice to have thrust wrappers that help the programmer manage streams -- otherwise, if I'm using thrust::copy_n or something, I have to be careful to use the right stream myself.
  • could be nice to have an easy way to initialize the frontier w/ a sequence of nodes on device, rather than doing
    for (vertex_t v = 0; v < n_vertices; ++v)
     f->push_back(v);

Notes:

  • Only works on unweighted graphs for now. Should work for weighted graphs now.
  • May not handle "dangling" edges in directed graphs correctly at the moment Should treat dangling nodes the same was as networkx now.

@neoblizz neoblizz changed the base branch from master to dev April 13, 2021 17:24
@neoblizz neoblizz added 🍍 algorithms New or existing graph algorithms question. 🐙 c++ C++ related issues. labels Apr 13, 2021
@neoblizz
Copy link
Member

  • could be nice to have a ForEachEdge that uses the advance load balancing to run a function on every edge
  • likewise, could be nice to have a ForEachNode that runs a function on every node

@porumbes very relevant for issue gunrock/gunrock#1001 (specifically the first bullet point).

@neoblizz neoblizz merged commit 9461375 into gunrock:dev Apr 13, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🍍 algorithms New or existing graph algorithms question. 🐙 c++ C++ related issues.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pagerank
2 participants