Skip to content

gfql: compute_cugraph('pagerank') and compute_igraph('pagerank') rank the 0.9995-quantile tail differently on GPlus (selected-node Jaccard 0.91) #2022

Description

@lmeyerov

Observation (pyg-bench filter→PageRank→filter lane, PyGraphistry 0.59.0 @ 3fb216d, dgx-spark)

Same pipeline, same degree cutoff (stage 2: 73,010 nodes / 11,755,106 edges), same PageRank cutoff quantile (0.9995) on the 30M-edge SNAP GPlus graph:

arm PageRank selected nodes (core + 1-hop)
engine='pandas' igraph PRPACK, {directed: false, params: {damping: 0.85}} 56,725
engine='cudf' cuGraph, {directed: false, params: {alpha: 0.85, max_iter: 100, tol: 1e-6}} 56,930

Jaccard of the two selected sets is 0.9106, below the lane's 0.95 comparability gate. Tightening cuGraph (max_iter 500, tol 1e-8, fail_on_nonconvergence: false) reproduces the identical cuGraph selection (Jaccard 1.0 against the default cuGraph run), so cuGraph is converged: the two solvers rank the extreme tail differently. On Twitter (2.4M edges, 0.99 quantile) the same two arms agree at 0.987, and the igraph arm matches Neo4j GDS at 0.9999. A benchmark-only iterative Polars solver (per-vertex tol 1e-10) matches igraph exactly on GPlus, which points at cuGraph's handling of the undirected projection / dangling mass rather than at igraph.

Effect: the GPlus GPU pipeline time is published only as a diagnostic (non-comparable) on gfql/benchmark_filter_pagerank until the two backends agree on this tail.

Receipts (private pyg-bench): results/filter-pagerank-059-20260904/summary.json and the strict probe under results/runs/.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WwMmVFo44ADiRRj5cxh7i1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions