Performance: Why do large equilibrium splines slow down the code?

Open
#376 4 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
julia
Domain
performance

Research direction

Start by reading the spline evaluation calls made during ForceFreeStates ODE integration, especially how knot hints are used as mpsi grows. Compare performance across equilibrium sizes to identify what causes the slowdown. Done means explaining the scaling and showing whether an optimization makes runtime less sensitive to knot count.

Written by the indexing model from the issue text.

Description

perf

Empirically, we all know larger mpsi slows down the ForceFreeStates.

The hand waving reason is the 10s of thousands of spline interpolations done during the ODE integration are a bit slower. But why would this be the case when we are using hints to cleanly provide the knot locations of interest and these are only slowly (and monotonically) incrementing? It seems like there would be effectively no search difference with knot number in this case. Is there some further optimization of the spline evaluation calls that would make this loop insensitive to the spline knot length? It seems like there should be.

@mgyoo86 might have some insights.

Possible topic for David Smitth ( @drsmith48 ) and UW hackathon

Dominant language
Julia
Stars
11
Forks
7
Avg merge
4d 1h
Merged PRs (30d)
68

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenFUSIONToolkit/GPEC

All issues in OpenFUSIONToolkit/GPEC

Similar issues

More Julia issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.