[Gaia/Engine] Profiling a subtask to identify the performance bottleneck of running some LDBC queries (e.g. CR-6)
- Dominant language
- C++
- Stars
- 3.6k
- Forks
- 468
- Avg merge
- 29m
- Merged PRs (30d)
- 1
Description
There are already benchmarking tools provided in Pegasus's codebase, including:
- `pegasus/graph/examples/graph_load.rs`: a tool to parse some csv-formatted raw graph data into a binary format
- the raw graph data contains many lines, with each line represents:
- `export GRAPH_SPLIT='|'`: to configure the actual splitter in the raw data
- `export GRAPH_SKIP_HEAD=1`: to specify skipping a header in the raw data, if any
- `pegasus/benchmark/src/bin/amsk.rs`: a tool to benchmark the subtask, it defines a workload of the number of k-hop neighbors (the counting of k-hop neighbors as the subtask) of some randomly picked starting vertices
- `--data`: a binary graph data loaded via the above `graph_load`
- `-n`: the number of starting vertices to enter the subtask (default 100)
- `-p`: the number of workers (default 1)
- `-l`: an indicator of whether to use limit by one of computing the neighbors, this can be used to test the effectiveness of early-stop
- `pegasus/benchmark/src/bin/spmsk.rs`: an implementation of `amsk` workload that uses join instead of subtask This can use as a baseline for evaluating how good/bad the subtask's implementation is.
Contributor guide
Assessment
This issue has not been assessed yet.