Skip to content
Projects

Vlasov-Ampere, CPU node vs GPU node: CPU node

all 5all levels

cpu-node.h52026-10-17 12:00 UTCsynthetic 2x64-core CPU node8 ranks5 regions0.384858 s profiled

← Vlasov-Ampere, CPU node vs GPU node · GPU node ›

Wall time385 mssetup to finalize
Ranks8
Regions5
In regions99%of the session
Top hotspotsolve93.8% of the session
Load imbalance+9%solve, slowest on rank 2
  • solve (in simulation) is the largest hotspot: 2.669 s over 80 calls, 93.8% of the session.
  • The three largest hotspots account for 99% of the session.

The leaves of the call tree with the most time: regions without nested regions, and the own time parents spend outside theirs. Shares are of the session. Click one to find it in the table.

region% sessiontotal [s]trend
└─ (own) 1.12% 0.032000
│ └─ (own) 0.00% 0.000000

Durations are in seconds. (own) rows show a region's time excluding its children. % session uses wall-clock coverage; overlapping recursive calls count once. Click a row for its call site and per-rank breakdown.

Each region's own time per rank, excluding nested regions, so a parent does not repeat its children's imbalance. Excess is how much longer the slowest rank spends than the average rank: the most balancing that region could save. Regions are ordered by it.

regionmeanminmaxslowest rankimbalanceexcessmin · mean · max
solve334 ms312 ms363 ms2+9%29.3 ms
setup4 ms4 ms4 ms0+0%0 s
exchange14 ms14 ms14 ms0+0%0 s

Each cell compares one rank's time in a region with the region's mean over the ranks. Rank 2, in red in the header, spends the most time in regions overall. Hover a cell for its time.

faster than the meanslower

regionmean01234567
solve334 ms−1.6%−6.4%+8.8%+2.5%−3.1%+0.3%+4.0%−4.4%
exchange14 ms0%0%0%0%0%0%0%0%
setup4 ms0%0%0%0%0%0%0%0%
all regions352 ms−1.6%−6.1%+8.3%+2.4%−3.0%+0.3%+3.8%−4.2%
Region durations

Each bar shows a region's total recorded duration, summed over the selected ranks, longest first.

Timeline: CPU node (rank 0)

Each bar is one recorded region call on rank 0. Its position and width show when the call started and how long it ran; colors identify regions.

Rank imbalance

Each line compares a region's total duration by rank; its dashed line marks the mean across ranks. Points far from the mean identify stragglers.

Rank heatmap

This heatmap uses exclusive timings. Exclusive duration is the time spent in a region itself, excluding time spent in nested child regions; this prevents the enclosing session region from dominating the heatmap.

Download run.py (715 B)

"""Landau damping of a Langmuir wave with a Vlasov-Ampere solver: the script both runs use."""
import sys
import yaml
from scope_profiler import ProfileManager
def main(parameter_file):
with open(parameter_file) as handle:
parameters = yaml.safe_load(handle)
with ProfileManager.session(label=parameters["label"]):
with ProfileManager.region("setup"):
state = initialise(parameters)
for _ in range(parameters["steps"]):
with ProfileManager.region("solve"):
state = advance(state, parameters["dt"])
with ProfileManager.region("exchange"):
exchange_halos(state)
if __name__ == "__main__":
main(sys.argv[1])
commit0000000
systemsynthetic
chip_informationsynthetic 2x64-core CPU node
mpi_size8
num_nodes4
omp_num_threads2
platformsynthetic
scope_profiler_versionsample
timestamp2026-10-17T12:00:00Z
total_cores16