Query Performance Data
The benchpark query command searches one or more directories for Caliper .cali
files and writes selected metadata or performance data to a CSV file. It is useful when
you want tabular data for custom plotting or downstream analysis instead of the
pre-defined figures generated by benchpark analyze.
benchpark query requires Caliper data generated by an experiment using the Caliper
modifier, such as caliper=time,mpi (Benchpark Modifiers). It uses the Thicket performance analysis library to read the Caliper
files.
benchpark query requires the same additional Python packages as benchpark
analyze. Install them by running pip install .[analyze] in the Benchpark
directory.
To query a metadata metric:
$ benchpark query wkp/kripke/cuda/strong/lassen/workspace/ --metric Final-FOM
To query a performance metric for matching regions:
$ benchpark query wkp/kripke/cuda/strong/lassen/workspace/ \
--metric "Avg time/rank" \
--query-regions-byname main
For example, this command queries the Problem region from a Frontier ROCm workspace
and excludes MPI regions:
$ benchpark query wkp/rocm642-frontier/amg2023/ --query-regions-byname Problem --metric "Avg time/rank" --exclude-regions MPI_
query-20260811-181919.csv
The generated CSV contains one row per matching Caliper profile. Duplicate values in the
metadata columns can occur when the workspace contains multiple trials for the same
experiment configuration. Lines beginning with # are comments. The first comment
records the command line. The trailing comments record the queried call tree structure
after region selection and exclusion:
# benchpark query wkp/rocm642-frontier/amg2023/ --query-regions-byname Problem --metric 'Avg time/rank' --exclude-regions MPI_
cluster,application_name,Avg time/rank
frontier,amg2023,7.8742357827500005
frontier,amg2023,7.9076165642800005
frontier,amg2023,7.98603465824
frontier,amg2023,8.17716916271
frontier,amg2023,7.905229214139999
# Problem
# ├─ Setup
# │ ├─ hipDeviceSynchronize
# │ ├─ hipGetDevice
# │ ├─ hipGetDevicePropertiesR0600
# │ ├─ hipGetLastError
# │ ├─ hipHostMalloc
# │ ├─ hipLaunchKernel
# │ ├─ hipMalloc
# │ ├─ hipMemcpy
# │ ├─ hipMemcpyAsync
# │ ├─ hipMemcpyWithStream
# │ ├─ hipMemset
# │ ├─ hipMemsetAsync
# │ ├─ hipPeekAtLastError
# │ └─ hipStreamSynchronize
# └─ Solve
# ├─ hipDeviceSynchronize
# ├─ hipGetDevice
# ├─ hipGetDevicePropertiesR0600
# ├─ hipGetLastError
# ├─ hipLaunchKernel
# ├─ hipMemcpy
# ├─ hipMemcpyWithStream
# ├─ hipMemsetAsync
# ├─ hipPeekAtLastError
# └─ hipStreamSynchronize
The command writes a file named query-YYYYMMDD-HHMMSS.csv in the current working
directory and prints the filename.
Region Queries
When --metric names a performance data column instead of a metadata column, provide
at least one region selector:
--query-regions-bynameselects regions and their children whose name contains one of the provided strings.--filter-regions-bynamekeeps regions whose name matches one of the provided prefixes.--exclude-regionsremoves regions and their children whose name contains one of the provided strings before the query is evaluated.
For example, to query computation regions while excluding MPI regions:
$ benchpark query wkp/kripke/cuda/strong/lassen/workspace/ \
--metric "Avg time/rank" \
--query-regions-byname Solve Generate \
--exclude-regions MPI_
Metadata Columns
The CSV always includes cluster and application_name. Use --metadata-columns
to include additional metadata columns in the output:
$ benchpark query wkp/kripke/cuda/strong/lassen/workspace/ \
--metric "Avg time/rank" \
--query-regions-byname main \
--metadata-columns n_nodes processes_per_node
The command accepts these arguments:
Argument |
Description |
|---|---|
|
One or more directories to recursively search for Caliper |
|
Metadata or performance metric to write to the CSV. |
|
Region name substrings to query. |
|
Region path prefixes to keep. |
|
Additional metadata columns to include in the CSV. |
|
Region name substrings to exclude before evaluating the query. |