scope_profiler.html_report
Self-contained HTML reports for profiling results.
The report deliberately has no plotting dependency: it is useful on a remote machine immediately after a run, and can be opened locally in any browser.
One run gets a full report: a summary, its hotspots, the region table, load balance across ranks, line profiles, hardware counters and charts. Several runs get a comparison report instead - what changed between them — which links to a full report built for each run alongside it.
Functions
| Name | Description |
|---|---|
create_html_report | Write a standalone HTML report for one or more profiling results. |
create_html_reportfunction#
def create_html_report(profiling_data: ProfilingResults | str | Path | Sequence[ProfilingResults | str | Path], filepath: str | Path, *, include=None, exclude=None, ranks: list[int] | None = None, sort: str = 'start', columns=None, charts_cdn: bool = False, include_charts: bool = True, individual_reports: bool = True, scaling: str = 'both', speedup_x: str = 'auto') -> PathWrite a standalone HTML report for one or more profiling results.
One run gets a full report. Several runs get a comparison report, the
first run being the baseline; with individual_reports (the default)
a full report for each run is also written next to it, as
<stem>-<index>-<label>.html, and linked from the comparison.
When the compared runs differ in ranks or threads, scaling says what
kind of study they are, which the profiles cannot tell: "strong" (the
same total problem size on every run) charts each region’s speedup,
"weak" (the same problem size per rank or core) its weak-scaling
efficiency, and "both" (the default) charts both.
speedup_x sets the x-axis of a comparison’s scaling charts: "ranks"
(MPI ranks), "nodes", "threads" (OpenMP threads) or "cores"
(ranks times threads). "auto", the default, uses MPI ranks when they
change, threads when only they change, and draws no scaling chart when the
runs differ in neither. A named axis must be recorded by every run, or this raises
ValueError. Either way, each chart has a button for every other axis
the runs differ in.