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

[RELEASE] cugraph v0.18 #1417

Merged
merged 222 commits into from
Feb 24, 2021
Merged

[RELEASE] cugraph v0.18 #1417

merged 222 commits into from
Feb 24, 2021

Conversation

GPUtester
Copy link
Contributor

❄️ Code freeze for branch-0.18 and v0.18 release

What does this mean?

Only critical/hotfix level issues should be merged into branch-0.18 until release (merging of this PR).

What is the purpose of this PR?

  • Update documentation
  • Allow testing for the new release
  • Enable a means to merge branch-0.18 into main for the release

seunghwak and others added 30 commits November 5, 2020 12:25
seunghwak and others added 23 commits January 25, 2021 14:46
Implement induced subgraph extraction (SG C++)
Updated SOURCEBUILD.md to include the latest build.sh options
This PR prepares the changelog to be automatically updated during releases.

Authors:
  - AJ Schmidt (@ajschmidt8)

Approvers:
  - Rick Ratzel (@rlratzel)

URL: rapidsai/cuml#1368
Close #1313 #1331 #1330

Authors:
  - @Iroy30

Approvers:
  - Brad Rees (@BradReesWork)
  - Rick Ratzel (@rlratzel)
  - Alex Fender (@afender)

URL: #1332
This PR adds the GitHub action [PR Labeler](https://github.com/actions/labeler) to auto-label PRs based on their content. 

Labeling is managed with a configuration file `.github/labeler.yml` using the following [options](https://github.com/actions/labeler#usage).

Authors:
  - Joseph (@jolorunyomi)

Approvers:
  - AJ Schmidt (@ajschmidt8)
  - Rick Ratzel (@rlratzel)

URL: #1358
added the coverage plugin option by default
added pytest-cov package

Authors:
  - @jnke2016

Approvers:
  - AJ Schmidt (@ajschmidt8)
  - Brad Rees (@BradReesWork)

URL: #1352
Bug fixes for MNMG coarsen_graph, renumber_edgelist, relabel

Authors:
  - Seunghwa Kang (@seunghwak)

Approvers:
  - Andrei Schaffer (@aschaffer)
  - Rick Ratzel (@rlratzel)
  - Chuck Hastings (@ChuckHastings)
  - Alex Fender (@afender)

URL: #1364
updated the conda environments to have cmake 3.18 and update the README file

Authors:
  - Brad Rees (@BradReesWork)

Approvers:
  - AJ Schmidt (@ajschmidt8)
  - Rick Ratzel (@rlratzel)
  - Alex Fender (@afender)

URL: #1369
This exposes to cython / python newly added C++ functions `sort_and_shuffle_values()` and `renumber_edgelist()` in order to perform MNMG renumbering.

Authors:
  - Andrei Schaffer (@aschaffer)

Approvers:
  - Chuck Hastings (@ChuckHastings)
  - Seunghwa Kang (@seunghwak)
  - Alex Fender (@afender)

URL: #1355
…t cugraph as an external project and other tech debt removal (#1367)

This PR makes cuGraph's cmake files more consistent with other RAPIDS libs by matching the minimum required cmake version, adding `project()` statements to cugraph's thirdparty modules, and using `CMAKE_CURRENT_SOURCE_DIR` appropriately so paths are relative to the CMakeLists.txt file rather than the top-level cmake dir of the project (since that may not be the cugraph cpp dir in the case of cugraph being used as an external project by another application).

This also adds a `CUDA_ARCHITECTURES=OFF` setting to suppress the warning printed for each test target. This setting may be replaced/changed once the findcudatoolkit feature is used in a future cmake version.

This also removes the Arrow and GTest cmake files since Arrow is not a direct dependency and those files were not being used, and GTest is now a build requirement in the conda dev environment and does not need to be built from source (the conda dev env files have been updated accordingly).

This PR also addresses much of #1075 , but not completely since gunrock is still using `ExternalProject` due to (I think) updates that need to be made to their cmake files to support this.

This was tested by observing a successful clean build, however it was **not** tested by creating a separate cmake application to simulate cugraph being used as a 3rd party package.

Note: the changes in this PR were modeled after rapidsai/rmm#541

closes #1137 
closes #1266

Authors:
  - Rick Ratzel (@rlratzel)

Approvers:
  - Chuck Hastings (@ChuckHastings)
  - AJ Schmidt (@ajschmidt8)
  - Brad Rees (@BradReesWork)

URL: #1367
### Description
Let the egonet graph of a node x be the subgraph that includes the neighborhood of x and all edges between them. Here is a basic description (1-hop, single seed) :
- Add center node x to the graph.
- Go through all the neighbors y of this center node x, add edge (x, y) to the graph. 
- For each neighbor y of center node x, go through all the neighbors z of center node x, if there is an edge between y and z in the original graph, add edge (y, z) to our new graph. 

### Proposed solution
Rather than doing custom one/two hops features, we propose a generic k-hops solution leveraging BFS with cutoff to identify neighbors within a given radius. 

In addition to the single source version (matching what's available in Nx), we propose to handle multiple sources (seeds) at once which allows better performances.

This PR also enables a path in the experimental stack for returning multiple graphs (edge list format) from CUDA prims to python without using the legacy classes.

As future work, we want to enable concurrency for the cutoff BFS for each seed. This is dependent of #957 

Close #475

Authors:
  - Alex Fender (@afender)
  - @Iroy30

Approvers:
  - @Iroy30
  - Brad Rees (@BradReesWork)

URL: #1365
Authors:
  - @Iroy30

Approvers:
  - Brad Rees (@BradReesWork)
  - Alex Fender (@afender)

URL: #1378
Preparing for MNMG Leiden and ECG identified an area for code cleanup.

The original cuGraph implementation of Louvain would flatten the hierarchical clustering as it was computed, filling (and returning) the final clustering.  This adds an awkward step in the middle of the Louvain computation.  Additionally, since Louvain (and Leiden and ECG which derive from it) is actually a hierarchical clustering algorithm it would be nice to generate the actual Dendrogram.

This PR implements a Dendrogram class, a function for flattening the Dendrogram, and modifies Louvain, Leiden and ECG to use the Dendrogram class.

It was suggested that the Dendrogram class could be moved to raft, decided to defer that until later, it's easy enough to move.

Authors:
  - Chuck Hastings (@ChuckHastings)

Approvers:
  - Alex Fender (@afender)
  - Brad Rees (@BradReesWork)
  - Andrei Schaffer (@aschaffer)
  - Rick Ratzel (@rlratzel)
  - AJ Schmidt (@ajschmidt8)

URL: #1359
…ted LD_LIBRARY_PATH for project flash runs (#1386)

* Updated CI scripts to use a different error handling convention
* Updated LD_LIBRARY_PATH for project flash runs
* Added extra logging to report status after each test command
* Added comments
* Removed unused "top-20 slowest" report
* Minor updates for consistency

Tested locally by simulating various error conditions (removed .so files, inserted errors in NBs, killed processes, etc.) and checked exit codes.  Still need to verify in a project Flash env, but using CI for that.

Authors:
  - Rick Ratzel (@rlratzel)

Approvers:
  - AJ Schmidt (@ajschmidt8)
  - Ray Douglass (@raydouglass)
  - Dillon Cullinan (@dillon-cullinan)

URL: #1386
Modify experimental::louvain to use the new `coarsen_graph` primitive.  This replaces the original implementation of `shrink_graph`.

Authors:
  - Chuck Hastings (@ChuckHastings)

Approvers:
  - Andrei Schaffer (@aschaffer)
  - Rick Ratzel (@rlratzel)
  - Seunghwa Kang (@seunghwak)

URL: #1362
…t using it (#1361)

Added initial infrastructure for MG C++ testing and a Pagerank MG test using it.

<s>Still a WIP, need to:</s>
* <s>Shuffle step is currently failing</s>
* <s>`graph_t` ctor expensive check is failing</s>
* <s>Finish comparison code to reference SG Pagerank results</s>
* <s>Fix the `#include` guard hack in `test_utilities.hpp`</s>
* <s>Lots of cleanup</s>
* <s>Refactor common steps into proper `SetUp()` and `TearDown()` functions</s>

closes #1136

Authors:
  - Rick Ratzel (@rlratzel)
  - Seunghwa Kang (@seunghwak)

Approvers:
  - Brad Rees (@BradReesWork)
  - Andrei Schaffer (@aschaffer)
  - Chuck Hastings (@ChuckHastings)

URL: #1361
This PR implements an approximated solution to the Traveling Salesperson Problem (TSP).
The algorithm is exposed under ```traversal``` through a Python API taking 2D pos as input and returning a route.
This PR relies on RAFT KNN: rapidsai/raft#126
Solves: #1185

Authors:
  - Hugo Linsenmaier (@hlinsen)

Approvers:
  - AJ Schmidt (@ajschmidt8)
  - Brad Rees (@BradReesWork)
  - Rick Ratzel (@rlratzel)
  - Alex Fender (@afender)
  - Andrei Schaffer (@aschaffer)

URL: #1360
Issues and PRs without activity for 30d will be marked as stale.
If there is no activity for 90d, they will be marked as rotten.

Authors:
  - Jordan Jacobelli (@Ethyling)

Approvers:
  - Brad Rees (@BradReesWork)
  - AJ Schmidt (@ajschmidt8)

URL: #1408
Follows #1408 

Updates the stale GHA with the following changes:

- [x] Uses `inactive-30d` and `inactive-90d` labels instead of `stale` and `rotten`
- [x] Updates comments to reflect changes in labels
- [x] Exempts the following labels from being marked `inactive-30d` or `inactive-90d`
  - `0 - Blocked`
  - `0 - Backlog`
  - `good first issue`

Authors:
  - Mike Wendt (@mike-wendt)

Approvers:
  - Ray Douglass (@raydouglass)

URL: #1413
The vertex list that was fed as input to TSP was of type `int64` which ended up being corrupted when passed down
to the cpp layer as `vtx_ptr`. I updated the wrapper to cast the vertices to `int32`. In addition, I fixed the handling of nstart in the wrapper which was assuming vertex ids were starting at 1.
Solves: #1410

Authors:
  - Hugo Linsenmaier (@hlinsen)

Approvers:
  - Brad Rees (@BradReesWork)

URL: #1412
@GPUtester GPUtester requested review from a team as code owners February 17, 2021 20:43
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@raydouglass raydouglass merged commit 101c17a into main Feb 24, 2021
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

Successfully merging this pull request may close these issues.