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

Aperta
#2,022 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
pandas, python
Ambito
data, performance

Direzione di ricerca

Start by reproducing the gfql/benchmark_filter_pagerank lane and inspecting the benchmark results and strict probe referenced in the issue; those receipts are in a private repository. Compare the cuGraph and igraph PageRank configurations on GPlus, focusing on the undirected projection and dangling mass, then verify whether the selected-node Jaccard reaches the 0.95 comparability gate. The issue names no source files or tests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Observation (pyg-bench filter→PageRank→filter lane, PyGraphistry 0.59.0 @ 3fb216dd, 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

Lingua principale
Python
Stelle
2.6k
Fork
229
Merge medio
1g 5h
PR unite (30g)
99

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di graphistry/pygraphistry

Tutte le issue di graphistry/pygraphistry

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.