Skip to content

Commit 4cc6456

Browse files
lmeyerovclaude
andcommitted
docs(gfql): F5 — per-engine CSR index numbers (seeded = CPU's game, all 4 engines)
The CSR index works on all four engines; benchmarked seeded 1-hop on LiveJournal 35M (guarded, index==scan): pandas ~0.13ms / polars ~0.16ms (numpy searchsorted) vs cuDF ~3ms (GPU kernel-launch floor) — the clean inverse of bulk. Pick the index for selective traversal + a CPU engine to drive it. Reproducer benchmarks/gfql/index_largegraph_bench.py. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 053c6d0 commit 4cc6456

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

docs/source/gfql/engines.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,12 @@ result as a GPU run (see *Honesty* below).
215215

216216
**[F5] Selective traversal is an indexing problem, not an engine choice.** A seeded ``hop``
217217
from a few nodes is fastest with the opt-in **CSR adjacency index** (``g.create_index(...)``,
218-
``index_policy=``), which turns the O(E) scan into an O(degree) gather — on CPU, independent
219-
of ``engine=``. (A dedicated index guide is in progress; the methods live under the GFQL API.)
218+
``index_policy=``), which turns the O(E) scan into an O(degree) gather. The index works on all
219+
four engines, but seeded work is so small that **CPU wins**: on LiveJournal 35M a typical-seed
220+
1-hop is ~0.13 ms on pandas and ~0.16 ms on Polars (numpy ``searchsorted``) vs ~3 ms on cuDF
221+
(GPU kernel-launch floor) — the clean inverse of bulk, where the GPU pulls ahead. So pick the
222+
index for selective traversal and a CPU engine to drive it. (A dedicated index guide is in
223+
progress; the methods live under the GFQL API.)
220224

221225
cuDF vs Polars-GPU
222226
------------------

0 commit comments

Comments
 (0)