Community#
Triangle Counting#
-
cugraph_error_code_t cugraph_triangle_count(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *start, bool_t do_expensive_check, cugraph_triangle_count_result_t **result, cugraph_error_t **error)#
Triangle Counting.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
start – [in] Device array of vertices we want to count triangles for. If NULL the entire set of vertices in the graph is processed
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Output from the triangle_count call
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Louvain#
-
cugraph_error_code_t cugraph_louvain(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t max_level, double threshold, double resolution, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#
Compute Louvain.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
max_level – [in] Maximum level in hierarchy
threshold – [in] Threshold parameter, defines convergence at each level of hierarchy
resolution – [in] Resolution parameter (gamma) in modularity formula. This changes the size of the communities. Higher resolutions lead to more smaller communities, lower resolutions lead to fewer larger communities.
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Output from the Louvain call
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Leiden#
-
cugraph_error_code_t cugraph_leiden(const cugraph_resource_handle_t *handle, cugraph_rng_state_t *rng_state, cugraph_graph_t *graph, size_t max_level, double resolution, double theta, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#
Compute Leiden.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
rng_state – [inout] State of the random number generator, updated with each call
max_level – [in] Maximum level in hierarchy
resolution – [in] Resolution parameter (gamma) in modularity formula. This changes the size of the communities. Higher resolutions lead to more smaller communities, lower resolutions lead to fewer larger communities.
theta – [in] (optional) The value of the parameter to scale modularity gain in Leiden refinement phase. It is used to compute the probability of joining a random leiden community. Called theta in the Leiden algorithm.
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Output from the Leiden call
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
ECG#
-
cugraph_error_code_t cugraph_ecg(const cugraph_resource_handle_t *handle, cugraph_rng_state_t *rng_state, cugraph_graph_t *graph, double min_weight, size_t ensemble_size, size_t max_level, double threshold, double resolution, bool_t do_expensive_check, cugraph_hierarchical_clustering_result_t **result, cugraph_error_t **error)#
Compute ECG clustering.
- Parameters:
handle – [in] Handle for accessing resources
rng_state – [inout] State of the random number generator, updated with each call
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
min_weight – [in] Minimum edge weight in final graph
ensemble_size – [in] The number of Louvain iterations to run
max_level – [in] Maximum level in hierarchy for final Louvain
threshold – [in] Threshold parameter, defines convergence at each level of hierarchy for final Louvain
resolution – [in] Resolution parameter (gamma) in modularity formula. This changes the size of the communities. Higher resolutions lead to more smaller communities, lower resolutions lead to fewer larger communities.
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Output from the Louvain call
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Extract Egonet#
-
cugraph_error_code_t cugraph_extract_ego(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, const cugraph_type_erased_device_array_view_t *source_vertices, size_t radius, bool_t do_expensive_check, cugraph_induced_subgraph_result_t **result, cugraph_error_t **error)#
Extract ego graphs.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
source_vertices – [in] Device array of vertices we want to extract egonets for.
radius – [in] The number of hops to go out from each source vertex
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Opaque object containing the extracted subgraph
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Balanced Cut#
-
cugraph_error_code_t cugraph_balanced_cut_clustering(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, size_t n_eigenvectors, double evs_tolerance, int evs_max_iterations, double k_means_tolerance, int k_means_max_iterations, bool_t do_expensive_check, cugraph_clustering_result_t **result, cugraph_error_t **error)#
Balanced cut clustering.
NOTE: This currently wraps the legacy balanced cut clustering implementation and is only available in Single GPU implementation.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
n_clusters – [in] The desired number of clusters
n_eigenvectors – [in] The number of eigenvectors to use
evs_tolerance – [in] The tolerance to use for the eigenvalue solver
evs_max_iterations – [in] The maximum number of iterations of the eigenvalue solver
k_means_tolerance – [in] The tolerance to use for the k-means solver
k_means_max_iterations – [in] The maximum number of iterations of the k-means solver
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Opaque object containing the clustering result
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Spectral Clustering - Modularity Maximization#
-
cugraph_error_code_t cugraph_spectral_modularity_maximization(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, size_t n_eigenvectors, double evs_tolerance, int evs_max_iterations, double k_means_tolerance, int k_means_max_iterations, bool_t do_expensive_check, cugraph_clustering_result_t **result, cugraph_error_t **error)#
Spectral clustering.
NOTE: This currently wraps the legacy spectral clustering implementation and is only available in Single GPU implementation.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
n_clusters – [in] The desired number of clusters
n_eigenvectors – [in] The number of eigenvectors to use
evs_tolerance – [in] The tolerance to use for the eigenvalue solver
evs_max_iterations – [in] The maximum number of iterations of the eigenvalue solver
k_means_tolerance – [in] The tolerance to use for the k-means solver
k_means_max_iterations – [in] The maximum number of iterations of the k-means solver
do_expensive_check – [in] A flag to run expensive checks for input arguments (if set to true)
result – [out] Opaque object containing the clustering result
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
-
cugraph_error_code_t cugraph_analyze_clustering_modularity(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#
Compute modularity of the specified clustering.
NOTE: This currently wraps the legacy spectral modularity implementation and is only available in Single GPU implementation.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
n_clusters – [in] The desired number of clusters
vertices – [in] Vertex ids from the clustering result
clusters – [in] Cluster ids from the clustering result
score – [out] The modularity score for this clustering
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Spectral Clustering - Edge Cut#
-
cugraph_error_code_t cugraph_analyze_clustering_edge_cut(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#
Compute edge cut of the specified clustering.
NOTE: This currently wraps the legacy spectral edge cut implementation and is only available in Single GPU implementation.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
n_clusters – [in] The desired number of clusters
vertices – [in] Vertex ids from the clustering result
clusters – [in] Cluster ids from the clustering result
score – [out] The edge cut score for this clustering
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
-
cugraph_error_code_t cugraph_analyze_clustering_ratio_cut(const cugraph_resource_handle_t *handle, cugraph_graph_t *graph, size_t n_clusters, const cugraph_type_erased_device_array_view_t *vertices, const cugraph_type_erased_device_array_view_t *clusters, double *score, cugraph_error_t **error)#
Compute ratio cut of the specified clustering.
NOTE: This currently wraps the legacy spectral ratio cut implementation and is only available in Single GPU implementation.
- Parameters:
handle – [in] Handle for accessing resources
graph – [in] Pointer to graph. NOTE: Graph might be modified if the storage needs to be transposed
n_clusters – [in] The desired number of clusters
vertices – [in] Vertex ids from the clustering result
clusters – [in] Cluster ids from the clustering result
score – [out] The ratio cut score for this clustering
error – [out] Pointer to an error object storing details of any error. Will be populated if error code is not CUGRAPH_SUCCESS
- Returns:
error code
Community Support Functions#
- cugraph_type_erased_device_array_view_t *cugraph_triangle_count_result_get_vertices(cugraph_triangle_count_result_t *result)#
Get triangle counting vertices.
- cugraph_type_erased_device_array_view_t *cugraph_triangle_count_result_get_counts(cugraph_triangle_count_result_t *result)#
Get triangle counting counts.
- void cugraph_triangle_count_result_free(cugraph_triangle_count_result_t *result)#
Free a triangle count result.
- Parameters:
result – [in] The result from a sampling algorithm
- cugraph_type_erased_device_array_view_t *cugraph_hierarchical_clustering_result_get_vertices(cugraph_hierarchical_clustering_result_t *result)#
Get hierarchical clustering vertices.
- cugraph_type_erased_device_array_view_t *cugraph_hierarchical_clustering_result_get_clusters(cugraph_hierarchical_clustering_result_t *result)#
Get hierarchical clustering clusters.
- double cugraph_hierarchical_clustering_result_get_modularity(cugraph_hierarchical_clustering_result_t *result)#
Get modularity.
- void cugraph_hierarchical_clustering_result_free(cugraph_hierarchical_clustering_result_t *result)#
Free a hierarchical clustering result.
- Parameters:
result – [in] The result from a sampling algorithm