You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The SCALE-20 ComputePool numbers (GU-06-MD-D00) were taken from an in-process AdjacencyGraph::with_test_edges kernel. That is not Official-track engineering green: no GraphForge ingest, no reopen/recount, no measured GSI after load, no one-hop/two-hop LIMIT Cypher.
Objective
Add a thin in-tree reference client that runs Graph500 parameters (SCALE=20, ef=16, undirected Kronecker/R-MAT) through the published Rust facade: generate → bulk ingest → reopen → recount/GSI → LIMIT 1000 one-hop and two-hop. Optional ComputePool 1 vs 4 rank observations on that same project.
Debt / regime
Debt type: test/proof (scale evidence on the wrong surface)
Quality regime: A (compute) — counts, GSI grade, LIMIT row bounds, evidence JSON. Timing is hardware-specific, never a CI millisecond gate.
Requirements
Ingest uses GraphForge::new + publish_bulk_nodes / publish_bulk_edges only (UUIDv7 identities). Not AdjacencyGraph::with_test_edges, not GraphWriter.
Reopen via a second GraphForge::new(Some(path)) and recount live V/E.
Run MATCH (a)-[r]->(b) RETURN b.node_uuid AS id LIMIT 1000 and the two-hop form; both finish with ≤1000 rows.
Evidence JSON matches docs/reference/scale-evaluation.md field names (schema_version: "1"). Generator identity discloses a bench-local Kronecker, not the pinned graph500 binary.
Do not set track: official. This is Official-parameter engineering green.
SCALE-6 smoke is required CI. SCALE-20 is ignored / Makefile opt-in. Not GitHub Actions.
No Graph500 generator in product crates.
Graph500 BFS kernel / TEPS is a non-goal (paths(by="bfs") is not that kernel).
Pairwise neighborhood kernels stay skipped at V=2^20.
Ignored SCALE-20 run: same pipeline; GSI GU-06-MD-*; evidence written to GF_G500_SCALE20_EVIDENCE_OUT (default under build/).
Generator disclosure is bench-local Kronecker (name/source/seed), not github.com/graph500/graph500.
Docs state this is not Official-track and not TEPS.
Makefile bench-g500-scale20 wraps the ignored release test.
Product crates do not grow a Graph500 generator.
BDD Completion Scenarios
Scenario: SCALE-6 smoke on the public facade
Given Kronecker parameters SCALE=6 ef=16
When the reference client generates, bulk-ingests, reopens, recounts, and runs both LIMIT 1000 queries
Then V/E match the ingested unique-undirected graph
And GSI is GU-01-XS-*
And both LIMIT queries return ≤1000 rows
And evidence JSON has schema_version"1"
Scenario: SCALE-20 engineering green (manual)
Given Kronecker parameters SCALE=20 ef=16
When the ignored release client runs the same pipeline
Then GSI is GU-06-MD-* after reopen
And one-hop and two-hop LIMIT 1000 finish
And evidence records generate/ingest/reopen/cypher_limit_1hop/cypher_limit_2hop
And track is not official
Non-Goals
Pinned official graph500 binary
Graph500 BFS / TEPS
track: official in harness evidence
Adding Kronecker to graphforge-exec / graphforge-api libraries
Problem
The SCALE-20 ComputePool numbers (
GU-06-MD-D00) were taken from an in-processAdjacencyGraph::with_test_edgeskernel. That is not Official-track engineering green: no GraphForge ingest, no reopen/recount, no measured GSI after load, no one-hop/two-hopLIMITCypher.Objective
Add a thin in-tree reference client that runs Graph500 parameters (SCALE=20, ef=16, undirected Kronecker/R-MAT) through the published Rust facade: generate → bulk ingest → reopen → recount/GSI →
LIMIT 1000one-hop and two-hop. Optional ComputePool 1 vs 4 rank observations on that same project.Debt / regime
Requirements
GraphForge::new+publish_bulk_nodes/publish_bulk_edgesonly (UUIDv7 identities). NotAdjacencyGraph::with_test_edges, notGraphWriter.GraphForge::new(Some(path))and recount live V/E.GUfrom known undirected intent) until feat(api): workspace GSI profiler (GD/GU/Gx grade) #398 ships a profiler.MATCH (a)-[r]->(b) RETURN b.node_uuid AS id LIMIT 1000and the two-hop form; both finish with ≤1000 rows.docs/reference/scale-evaluation.mdfield names (schema_version: "1"). Generator identity discloses a bench-local Kronecker, not the pinnedgraph500binary.track: official. This is Official-parameter engineering green.paths(by="bfs")is not that kernel).Acceptance Criteria
GU-01-XS-*, both LIMIT queries, evidence JSON schema.GU-06-MD-*; evidence written toGF_G500_SCALE20_EVIDENCE_OUT(default underbuild/).github.com/graph500/graph500.bench-g500-scale20wraps the ignored release test.BDD Completion Scenarios
Scenario: SCALE-6 smoke on the public facade
Given Kronecker parameters SCALE=6 ef=16
When the reference client generates, bulk-ingests, reopens, recounts, and runs both LIMIT 1000 queries
Then V/E match the ingested unique-undirected graph
And GSI is
GU-01-XS-*And both LIMIT queries return ≤1000 rows
And evidence JSON has
schema_version"1"Scenario: SCALE-20 engineering green (manual)
Given Kronecker parameters SCALE=20 ef=16
When the ignored release client runs the same pipeline
Then GSI is
GU-06-MD-*after reopenAnd one-hop and two-hop LIMIT 1000 finish
And evidence records generate/ingest/reopen/cypher_limit_1hop/cypher_limit_2hop
And
trackis notofficialNon-Goals
graph500binarytrack: officialin harness evidencegraphforge-exec/graphforge-apilibrariesRelated Issues
Open Questions