Skip to content

perf: speed up time loop in processed var init sens#5000

Merged
kratman merged 2 commits into
developfrom
perf-proc-var-sens
Apr 29, 2025
Merged

perf: speed up time loop in processed var init sens#5000
kratman merged 2 commits into
developfrom
perf-proc-var-sens

Conversation

@martinjrobins
Copy link
Copy Markdown
Contributor

@martinjrobins martinjrobins commented Apr 29, 2025

Description

Speeds up initial sensitivitiy calculation in ProcessedVariable. The diagcat and vertcat is done once instead of every timestep

I did a simple test using the DFN model and one input paramter (current), before the change the timings were (over 10 runs)

(env-pybammsolvers) ➜  PyBaMM git:(develop) ✗ python test.py
Time taken to compute sensitivities: 0.05452 seconds
Time taken to compute sensitivities: 0.04619 seconds
Time taken to compute sensitivities: 0.04333 seconds
Time taken to compute sensitivities: 0.04116 seconds
Time taken to compute sensitivities: 0.04146 seconds
Time taken to compute sensitivities: 0.04142 seconds
Time taken to compute sensitivities: 0.04156 seconds
Time taken to compute sensitivities: 0.04135 seconds
Time taken to compute sensitivities: 0.04133 seconds
Time taken to compute sensitivities: 0.04186 seconds

After the change the timings were:

(env-pybammsolvers) ➜  PyBaMM git:(develop) ✗ python test.py
Time taken to compute sensitivities: 0.02355 seconds
Time taken to compute sensitivities: 0.02262 seconds
Time taken to compute sensitivities: 0.02266 seconds
Time taken to compute sensitivities: 0.02286 seconds
Time taken to compute sensitivities: 0.02309 seconds
Time taken to compute sensitivities: 0.02277 seconds
Time taken to compute sensitivities: 0.02158 seconds
Time taken to compute sensitivities: 0.01918 seconds
Time taken to compute sensitivities: 0.01988 seconds
Time taken to compute sensitivities: 0.02149 seconds

Type of change

Important checks:

Please confirm the following before marking the PR as ready for review:

  • No style issues: nox -s pre-commit
  • All tests pass: nox -s tests
  • The documentation builds: nox -s doctests
  • Code is commented for hard-to-understand areas
  • Tests added that prove fix is effective or that feature works

@martinjrobins martinjrobins requested a review from a team as a code owner April 29, 2025 10:20
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 29, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.57%. Comparing base (dce8938) to head (baf332c).
⚠️ Report is 117 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #5000      +/-   ##
===========================================
- Coverage    98.57%   98.57%   -0.01%     
===========================================
  Files          304      304              
  Lines        23652    23645       -7     
===========================================
- Hits         23316    23309       -7     
  Misses         336      336              

☔ View full report in Codecov by Sentry.
📢 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.

Copy link
Copy Markdown
Member

@MarcBerliner MarcBerliner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great speedup, thanks!

@martinjrobins martinjrobins enabled auto-merge (squash) April 29, 2025 13:21
@martinjrobins martinjrobins disabled auto-merge April 29, 2025 13:22
@kratman
Copy link
Copy Markdown
Contributor

kratman commented Apr 29, 2025

@martinjrobins I re-triggered the CI, looks like a link check failure

@kratman kratman merged commit 34186fe into develop Apr 29, 2025
45 of 46 checks passed
@kratman kratman deleted the perf-proc-var-sens branch April 29, 2025 20: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.

3 participants