Skip to content

Add function to plot scaling per-component - #85

Merged
micaeljtoliveira merged 2 commits into
mainfrom
component-scaling
Oct 6, 2026
Merged

micaeljtoliveira merged 2 commits into
mainfrom
component-scaling

Conversation

@micaeljtoliveira

Copy link
Copy Markdown
Member

No description provided.

micaeljtoliveira and others added 2 commits October 2, 2026 13:51
- Keep the layout on the experiment, either the one it was generated from or one
  read back from its configuration by the new parse_layout.
- Add plot_component_scaling_data, taking RegionGroups that name both the log the
  regions come from and the component to read them against.
- Add find_component, since access.config offers no lookup over a layout.
- Read the ACCESS-ESM1.6 layout back from the Payu submodels. Cylc Rose declines,
  as it does for the rest of the layout API.

plot_scaling_data reads every component against the whole job, which is what a
study costs; this reads each against its own cores, which is what says whether
giving the ocean more of them bought anything. A log and a component are not the
same thing in either direction, and a region's name does not say which component
it belongs to, so a group states it.

Where two experiments give a component the same cores the fastest is plotted,
region by region. A parsed layout states cores, ranks and threads but not
decompositions, so it is for reading rather than generating from.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Add the curve each one would be if every core were bought in full, drawn after
  the measured ones so a reference sits on top of what it refers to, all in one
  colour under a single legend entry.
- Put both axes on a log scale, which is what makes an ideal straight.
- Drop the title and let the caller name either axis.
- Plot a relabelled region under the name it was given alone, rather than behind
  the log it came from.

A falling curve on its own says little: halving the time for twice the cores and
shaving a tenth off it look much alike. Note that every power of the cores is
straight on these axes, so what separates a component keeping up with its cores
from one falling behind is whether its curve runs parallel to its ideal.

Removing the title takes clearing one rather than not setting it, xarray titling
the axes after whichever region it drew last.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (38a2aa6) to head (575a8ac).

Additional details and impacted files
@@            Coverage Diff             @@
##              main       #85    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           16        16            
  Lines         1319      1454   +135     
==========================================
+ Hits          1319      1454   +135     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@micaeljtoliveira
micaeljtoliveira requested review from manodeep and removed request for manodeep October 5, 2026 23:50
@micaeljtoliveira
micaeljtoliveira merged commit 5a2aa02 into main Oct 6, 2026
8 checks passed
@micaeljtoliveira
micaeljtoliveira deleted the component-scaling branch October 6, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant