Skip to main content
Ctrl+K

cugraph-docs 25.04.00 documentation

  • cuGraph Introduction
  • nx-cugraph
  • Installation
  • Tutorials
  • Graph Support
    • WholeGraph
    • References
    • Developer Resources
    • API Reference
  • GitHub
  • Twitter
Home
cugraph
cucimcudf-javacudfcugraphcumlcuprojcuspatialcuvscuxfilterdask-cudadask-cudfkvikiolibcudflibcumllibcuprojlibcuspatiallibkvikiolibrmmlibucxxraftrapids-cmakerapidsmpfrmm
stable (25.04)
nightly (25.06)stable (25.04)legacy (25.02)
  • cuGraph Introduction
  • nx-cugraph
  • Installation
  • Tutorials
  • Graph Support
  • WholeGraph
  • References
  • Developer Resources
  • API Reference
  • GitHub
  • Twitter

Section Navigation

Core Graph API Documentation

  • cugraph API Reference
    • Graph Classes
      • cugraph.Graph
      • cugraph.MultiGraph
      • cugraph.Graph.from_cudf_adjlist
      • cugraph.Graph.from_cudf_edgelist
      • cugraph.Graph.from_dask_cudf_edgelist
      • cugraph.Graph.from_pandas_adjacency
      • cugraph.Graph.from_pandas_edgelist
      • cugraph.Graph.from_numpy_array
      • cugraph.Graph.from_numpy_matrix
      • cugraph.Graph.add_internal_vertex_id
      • cugraph.Graph.add_nodes_from
      • cugraph.Graph.clear
      • cugraph.Graph.unrenumber
      • cugraph.symmetrize
      • cugraph.symmetrize_ddf
      • cugraph.symmetrize_df
      • cugraph.from_adjlist
      • cugraph.from_cudf_edgelist
      • cugraph.from_edgelist
      • cugraph.from_numpy_array
      • cugraph.from_numpy_matrix
      • cugraph.from_pandas_adjacency
      • cugraph.from_pandas_edgelist
      • cugraph.to_numpy_array
      • cugraph.to_numpy_matrix
      • cugraph.to_pandas_adjacency
      • cugraph.to_pandas_edgelist
      • cugraph.structure.NumberMap
      • cugraph.structure.NumberMap.from_internal_vertex_id
      • cugraph.structure.NumberMap.to_internal_vertex_id
      • cugraph.structure.NumberMap.add_internal_vertex_id
      • cugraph.structure.NumberMap.compute_vals
      • cugraph.structure.NumberMap.compute_vals_types
      • cugraph.structure.NumberMap.generate_unused_column_name
      • cugraph.structure.NumberMap.renumber
      • cugraph.structure.NumberMap.renumber_and_segment
      • cugraph.structure.NumberMap.set_renumbered_col_names
      • cugraph.structure.NumberMap.unrenumber
      • cugraph.structure.NumberMap.vertex_column_size
      • cugraph.hypergraph
    • Graph Implementation
      • cugraph.structure.graph_implementation.simpleGraphImpl.view_edge_list
      • cugraph.structure.graph_implementation.simpleGraphImpl.delete_edge_list
      • cugraph.structure.graph_implementation.simpleGraphImpl.view_adj_list
      • cugraph.structure.graph_implementation.simpleGraphImpl.view_transposed_adj_list
      • cugraph.structure.graph_implementation.simpleGraphImpl.delete_adj_list
      • cugraph.structure.graph_implementation.simpleGraphImpl.enable_batch
      • cugraph.structure.graph_implementation.simpleGraphImpl.get_two_hop_neighbors
      • cugraph.structure.graph_implementation.simpleGraphImpl.number_of_vertices
      • cugraph.structure.graph_implementation.simpleGraphImpl.number_of_nodes
      • cugraph.structure.graph_implementation.simpleGraphImpl.number_of_edges
      • cugraph.structure.graph_implementation.simpleGraphImpl.in_degree
      • cugraph.structure.graph_implementation.simpleGraphImpl.out_degree
      • cugraph.structure.graph_implementation.simpleGraphImpl.degree
      • cugraph.structure.graph_implementation.simpleGraphImpl.degrees
      • cugraph.structure.graph_implementation.simpleGraphImpl.has_edge
      • cugraph.structure.graph_implementation.simpleGraphImpl.has_node
      • cugraph.structure.graph_implementation.simpleGraphImpl.has_self_loop
      • cugraph.structure.graph_implementation.simpleGraphImpl.edges
      • cugraph.structure.graph_implementation.simpleGraphImpl.nodes
      • cugraph.structure.graph_implementation.simpleGraphImpl.neighbors
      • cugraph.structure.graph_implementation.simpleGraphImpl.vertex_column_size
    • Property Graph
      • cugraph.experimental.PropertySelection
      • cugraph.experimental.PropertyGraph
      • cugraph.experimental.PropertyGraph.add_edge_data
      • cugraph.experimental.PropertyGraph.add_vertex_data
      • cugraph.experimental.PropertyGraph.annotate_dataframe
      • cugraph.experimental.PropertyGraph.edge_props_to_graph
      • cugraph.experimental.PropertyGraph.extract_subgraph
      • cugraph.experimental.PropertyGraph.get_edge_data
      • cugraph.experimental.PropertyGraph.get_num_edges
      • cugraph.experimental.PropertyGraph.get_num_vertices
      • cugraph.experimental.PropertyGraph.get_vertex_data
      • cugraph.experimental.PropertyGraph.get_vertices
      • cugraph.experimental.PropertyGraph.has_duplicate_edges
      • cugraph.experimental.PropertyGraph.is_multigraph
      • cugraph.experimental.PropertyGraph.renumber_edges_by_type
      • cugraph.experimental.PropertyGraph.renumber_vertices_by_type
      • cugraph.experimental.PropertyGraph.select_edges
      • cugraph.experimental.PropertyGraph.select_vertices
    • Centrality
      • cugraph.centrality.betweenness_centrality
      • cugraph.centrality.edge_betweenness_centrality
      • cugraph.dask.centrality.betweenness_centrality
      • cugraph.centrality.katz_centrality
      • cugraph.dask.centrality.katz_centrality.katz_centrality
      • cugraph.centrality.degree_centrality
      • cugraph.centrality.eigenvector_centrality
      • cugraph.dask.centrality.eigenvector_centrality.eigenvector_centrality
    • Community
      • cugraph.batched_ego_graphs
      • cugraph.ego_graph
      • cugraph.ecg
      • cugraph.k_truss
      • cugraph.ktruss_subgraph
      • cugraph.leiden
      • cugraph.louvain
      • cugraph.dask.community.louvain.louvain
      • cugraph.analyzeClustering_edge_cut
      • cugraph.analyzeClustering_modularity
      • cugraph.analyzeClustering_ratio_cut
      • cugraph.spectralBalancedCutClustering
      • cugraph.spectralModularityMaximizationClustering
      • cugraph.subgraph
      • cugraph.triangle_count
    • Components
      • cugraph.connected_components
      • cugraph.strongly_connected_components
      • cugraph.weakly_connected_components
      • cugraph.dask.components.connectivity.weakly_connected_components
    • Cores
      • cugraph.core_number
      • cugraph.k_core
    • Layout
      • cugraph.force_atlas2
    • Linear Assignment
      • cugraph.hungarian
      • cugraph.dense_hungarian
    • Link Analysis
      • cugraph.hits
      • cugraph.dask.link_analysis.hits.hits
      • cugraph.pagerank
      • cugraph.dask.link_analysis.pagerank.pagerank
    • Link Prediction
      • cugraph.jaccard
      • cugraph.jaccard_coefficient
      • cugraph.overlap
      • cugraph.overlap_coefficient
      • cugraph.sorensen
      • cugraph.sorensen_coefficient
    • Sampling
      • cugraph.random_walks
      • cugraph.ego_graph
      • cugraph.uniform_neighbor_sample
      • cugraph.node2vec
    • Traversal
      • cugraph.bfs
      • cugraph.bfs_edges
      • cugraph.dask.traversal.bfs.bfs
      • cugraph.filter_unreachable
      • cugraph.shortest_path
      • cugraph.shortest_path_length
      • cugraph.sssp
      • cugraph.dask.traversal.sssp.sssp
    • Tree
      • cugraph.tree.minimum_spanning_tree.minimum_spanning_tree
      • cugraph.tree.minimum_spanning_tree.maximum_spanning_tree
    • Generators
      • cugraph.generators.rmat
    • DASK MG Helper functions
      • cugraph.dask.comms.comms.initialize
      • cugraph.dask.comms.comms.destroy
      • cugraph.dask.comms.comms.is_initialized
      • cugraph.dask.comms.comms.get_comms
      • cugraph.dask.comms.comms.get_workers
      • cugraph.dask.comms.comms.get_session_id
      • cugraph.dask.comms.comms.get_2D_partition
      • cugraph.dask.comms.comms.get_default_handle
      • cugraph.dask.comms.comms.get_handle
      • cugraph.dask.comms.comms.get_worker_id
      • cugraph.dask.common.read_utils.get_chunksize
    • Multi-GPU with cuGraph
  • pylibcugraph API reference
    • pylibcugraph.eigenvector_centrality
    • pylibcugraph.katz_centrality
    • pylibcugraph.strongly_connected_components
    • pylibcugraph.weakly_connected_components
    • pylibcugraph.pagerank
    • pylibcugraph.hits
    • pylibcugraph.node2vec
    • pylibcugraph.bfs
    • pylibcugraph.sssp
  • cuGraph C API documentation
    • Centrality
    • Community
    • Core
    • Components
    • Sampling
    • Similarity
    • Traversal
  • cuGraph C++ API
    • Algorithmns
      • Centrality
      • Community
      • Sampling
      • Similarity
      • Traversal
      • Linear
      • Link Analysis
      • Layout
      • Tree
      • Utility Functions
    • Graph Functions
    • Graph Generators
    • Legacy Graph Functions
    • Sampling Functions
    • Collection Wrappers
    • Low Level cuGraph C++ API

Graph Neural Networks API Documentation

  • cugraph-dgl API Reference
    • cugraph_dgl.convert.cugraph_storage_from_heterograph
    • cugraph_dgl.cugraph_storage.CuGraphStorage
  • cugraph-pyg API Reference
    • cugraph_pyg.data.dask_graph_store.DaskGraphStore
    • cugraph_pyg.data.graph_store.GraphStore
    • cugraph_pyg.data.feature_store.TensorDictFeatureStore
    • cugraph_pyg.data.feature_store.WholeFeatureStore
    • cugraph_pyg.loader.dask_node_loader.DaskNeighborLoader
    • cugraph_pyg.loader.dask_node_loader.BulkSampleLoader
    • cugraph_pyg.loader.node_loader.NodeLoader
    • cugraph_pyg.loader.neighbor_loader.NeighborLoader
    • cugraph_pyg.sampler.sampler.BaseSampler
    • cugraph_pyg.sampler.sampler.SampleReader
    • cugraph_pyg.sampler.sampler.HomogeneousSampleReader
    • cugraph_pyg.sampler.sampler.SampleIterator

Additional Graph Packages API Documentation

  • cugraph-service API Reference
    • cugraph-service-client API Reference
    • cugraph-service-server API Reference
  • API Reference
  • cugraph API Reference
  • Link Analysis
  • cugraph.dask.link_analysis.pagerank.pagerank

cugraph.dask.link_analysis.pagerank.pagerank#

cugraph.dask.link_analysis.pagerank.pagerank(input_graph, alpha=0.85, personalization=None, precomputed_vertex_out_weight=None, max_iter=100, tol=1e-05, nstart=None, fail_on_nonconvergence=True)[source]#

Find the PageRank values for each vertex in a graph using multiple GPUs. cuGraph computes an approximation of the Pagerank using the power method. The input graph must contain edge list as dask-cudf dataframe with one partition per GPU. All edges will have an edge_attr value of 1.0 if not provided.

Parameters:
input_graphcugraph.Graph

cuGraph graph descriptor, should contain the connectivity information as dask cudf edge list dataframe(edge weights are not used for this algorithm).

alphafloat, optional (default=0.85)

The damping factor alpha represents the probability to follow an outgoing edge, standard value is 0.85. Thus, 1.0-alpha is the probability to “teleport” to a random vertex. Alpha should be greater than 0.0 and strictly lower than 1.0.

personalizationcudf.Dataframe, optional (default=None)

GPU Dataframe containing the personalization information. (a performance optimization)

personalization[‘vertex’]cudf.Series

Subset of vertices of graph for personalization

personalization[‘values’]cudf.Series

Personalization values for vertices

precomputed_vertex_out_weightcudf.Dataframe, optional (default=None)

GPU Dataframe containing the precomputed vertex out weight (a performance optimization) information.

precomputed_vertex_out_weight[‘vertex’]cudf.Series

Subset of vertices of graph for precomputed_vertex_out_weight

precomputed_vertex_out_weight[‘sums’]cudf.Series

Corresponding precomputed sum of outgoing vertices weight

max_iterint, optional (default=100)

The maximum number of iterations before an answer is returned. This can be used to limit the execution time and do an early exit before the solver reaches the convergence tolerance. If this value is lower or equal to 0 cuGraph will use the default value, which is 100.

tolfloat, optional (default=1e-05)

Set the tolerance the approximation, this parameter should be a small magnitude value. The lower the tolerance the better the approximation. If this value is 0.0f, cuGraph will use the default value which is 1.0E-5. Setting too small a tolerance can lead to non-convergence due to numerical roundoff. Usually values between 0.01 and 0.00001 are acceptable.

nstartcudf.Dataframe, optional (default=None)

GPU Dataframe containing the initial guess for pagerank. (a performance optimization)

nstart[‘vertex’]cudf.Series

Subset of vertices of graph for initial guess for pagerank values

nstart[‘values’]cudf.Series

Pagerank values for vertices

fail_on_nonconvergencebool (default=True)

If the solver does not reach convergence, raise an exception if fail_on_nonconvergence is True. If fail_on_nonconvergence is False, the return value is a tuple of (pagerank, converged) where pagerank is a cudf.DataFrame as described below, and converged is a boolean indicating if the solver converged (True) or not (False).

Returns:
The return value varies based on the value of the fail_on_nonconvergence
paramter. If fail_on_nonconvergence is True:
PageRankdask_cudf.DataFrame

GPU data frame containing two dask_cudf.Series of size V: the vertex identifiers and the corresponding PageRank values.

NOTE: if the input cugraph.Graph was created using the renumber=False option of any of the from_*_edgelist() methods, pagerank assumes that the vertices in the edgelist are contiguous and start from 0. If the actual set of vertices in the edgelist is not contiguous (has gaps) or does not start from zero, pagerank will assume the “missing” vertices are isolated vertices in the graph, and will compute and return pagerank values for each. If this is not the desired behavior, ensure the input cugraph.Graph is created from the from_*_edgelist() functions with the renumber=True option (the default)

ddf[‘vertex’]dask_cudf.Series

Contains the vertex identifiers

ddf[‘pagerank’]dask_cudf.Series

Contains the PageRank score

If fail_on_nonconvergence is False:
(PageRank, converged)tuple of (dask_cudf.DataFrame, bool)

PageRank is the GPU dataframe described above, converged is a bool indicating if the solver converged (True) or not (False).

Examples

>>> import cugraph.dask as dcg
>>> import dask_cudf
>>> # ... Init a DASK Cluster
>>> #    see https://docs.rapids.ai/api/cugraph/stable/dask-cugraph.html
>>> # Download dataset from https://github.com/rapidsai/cugraph/datasets/..
>>> chunksize = dcg.get_chunksize(datasets_path / "karate.csv")
>>> ddf = dask_cudf.read_csv(datasets_path / "karate.csv",
...                          blocksize=chunksize, delimiter=" ",
...                          names=["src", "dst", "value"],
...                          dtype=["int32", "int32", "float32"])
>>> dg = cugraph.Graph(directed=True)
>>> dg.from_dask_cudf_edgelist(ddf, source='src', destination='dst')
>>> pr = dcg.pagerank(dg)

previous

cugraph.pagerank

next

Link Prediction

On this page
  • pagerank()

This Page

  • Show Source

© Copyright 2024, NVIDIA Corporation.

Created using Sphinx 8.1.3.

Built with the PyData Sphinx Theme 0.16.1.