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

[APP] Parallel PR-Nibble #73

Merged
merged 5 commits into from
May 16, 2021
Merged

[APP] Parallel PR-Nibble #73

merged 5 commits into from
May 16, 2021

Conversation

bkj
Copy link
Contributor

@bkj bkj commented May 13, 2021

Implemented Parallel PR-Nibble.

This should be substantially simpler than the original gunrock version or @neoblizz's work in progress #69

Note: This matches the reference implementation from SDH, which is parameterized slightly different than the HIVE version. I need to dig up the HIVE reference code to make sure this is right, but it's definitely close. Maybe need to change the formulation slightly.

Observations:

  • Uses the batch operator, but I think maybe we're doing lots of small kernel launches. The essentials version actually isn't any faster than a single threaded (!) CPU implementation on jhu.mtx, with the parameters that are hardcoded now. I think this is because the algorithm doesn't actually do a whole lot of work (in Pagerank terms, it doesn't spread mass to enough nodes). If you reduce alpha to 0.05 or 0.01 runtime goes up (less strongly local / more global diffusion) and the essentials version beats the CPU version.

Reference: Fig 5 + 6 in this paper -- https://arxiv.org/pdf/1604.07515.pdf

@neoblizz
Copy link
Member

Gonna merge this as is and then look to see how we can improve the batch operator for the inner-loop.

@neoblizz neoblizz merged commit 8121b38 into gunrock:dev May 16, 2021
@neoblizz neoblizz added the 🍍 algorithms New or existing graph algorithms question. label May 16, 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

local graph clustering
2 participants