Report kvikio I/O statistics per rank in the streaming engines - #23738
Draft
madsbk wants to merge 1 commit into
Draft
Report kvikio I/O statistics per rank in the streaming engines#23738madsbk wants to merge 1 commit into
madsbk wants to merge 1 commit into
Conversation
madsbk
force-pushed
the
kvikio-statistics
branch
from
August 20, 2026 13:32
e74e2d3 to
33436ca
Compare
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
madsbk
force-pushed
the
kvikio-statistics
branch
3 times, most recently
from
August 21, 2026 09:01
22cfea7 to
282dbf0
Compare
madsbk
force-pushed
the
kvikio-statistics
branch
from
August 21, 2026 09:11
282dbf0 to
8d91990
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR enables KvikIO statistics on every rank and gathers them on the client. Depends on rapidsai/kvikio#1036, which adds the monitor that does the counting.
Each rank turns on counting when the engine is configured with
statistics=True, andStreamingEngine.gather_io_summary()brings back onekvikio.Summaryper rank, keyed by rank index.What a rank reports
KvikIO renders the report, so this PR formats nothing. A single-rank run of a parquet scan:
Busy time counts only the stretches with a read in flight, so busy bandwidth measures the storage rather than the query: this scan spent 15 % of its wall time reading, and dividing by the whole span would have reported it at a tenth of the rate the disk was really giving.
In the benchmarks
The PDS runners record the per-rank summaries on each iteration's record when
--rapidsmpf-statisticsis passed, so I/O stays queryable across a whole sweep rather than being printed once and lost.print_results_file.py(new file) reads a results file back and prints it, since nothing existed that could. Timings and I/O side by side, one row per rank per iteration:Caveats worth knowing
Monitordocs the cuFile async API on a working GDS system and the batch API report nothing, and anything cudf-polars reads outside KvikIO is invisible.busy_fractionand the bandwidths, are unaffected.