Trixi.jl icon indicating copy to clipboard operation
Trixi.jl copied to clipboard

Change backend threading behavior

Open afilogo opened this issue 7 months ago • 7 comments

This PR is based on the discussion #2159, having into account your feedback. I apologize for the late reply and hope did not make any mistake.

afilogo avatar May 22 '25 20:05 afilogo

Review checklist

This checklist is meant to assist creators of PRs (to let them know what reviewers will typically look for) and reviewers (to guide them in a structured review process). Items do not need to be checked explicitly for a PR to be eligible for merging.

Purpose and scope

  • [ ] The PR has a single goal that is clear from the PR title and/or description.
  • [ ] All code changes represent a single set of modifications that logically belong together.
  • [ ] No more than 500 lines of code are changed or there is no obvious way to split the PR into multiple PRs.

Code quality

  • [ ] The code can be understood easily.
  • [ ] Newly introduced names for variables etc. are self-descriptive and consistent with existing naming conventions.
  • [ ] There are no redundancies that can be removed by simple modularization/refactoring.
  • [ ] There are no leftover debug statements or commented code sections.
  • [ ] The code adheres to our conventions and style guide, and to the Julia guidelines.

Documentation

  • [ ] New functions and types are documented with a docstring or top-level comment.
  • [ ] Relevant publications are referenced in docstrings (see example for formatting).
  • [ ] Inline comments are used to document longer or unusual code sections.
  • [ ] Comments describe intent ("why?") and not just functionality ("what?").
  • [ ] If the PR introduces a significant change or new feature, it is documented in NEWS.md with its PR number.

Testing

  • [ ] The PR passes all tests.
  • [ ] New or modified lines of code are covered by tests.
  • [ ] New or modified tests run in less then 10 seconds.

Performance

  • [ ] There are no type instabilities or memory allocations in performance-critical parts.
  • [ ] If the PR intent is to improve performance, before/after time measurements are posted in the PR.

Verification

  • [ ] The correctness of the code was verified using appropriate tests.
  • [ ] If new equations/methods are added, a convergence test has been run and the results are posted in the PR.

Created with :heart: by the Trixi.jl community.

github-actions[bot] avatar May 22 '25 20:05 github-actions[bot]

Thanks for your contribution! I am not so sure if we really want to offer other threading strategies (namely dynamic) in the main repository. Same holds also for the serial option - IMO, this is not really necessary, as one could just run the program with a single thread.

DanielDoehring avatar May 25 '25 12:05 DanielDoehring

Thanks for the feedback @DanielDoehring and @vchuravy. Appreciate you taking the time to review it. I thought it might increase user control, but I also understand your perspective.

afilogo avatar May 29 '25 05:05 afilogo

Codecov Report

Attention: Patch coverage is 40.00000% with 6 lines in your changes missing coverage. Please review.

Project coverage is 96.79%. Comparing base (55d44d9) to head (657311f). Report is 41 commits behind head on main.

Files with missing lines Patch % Lines
src/auxiliary/math.jl 0.00% 6 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2417      +/-   ##
==========================================
- Coverage   96.80%   96.79%   -0.01%     
==========================================
  Files         495      495              
  Lines       40917    40919       +2     
==========================================
- Hits        39608    39607       -1     
- Misses       1309     1312       +3     
Flag Coverage Δ
unittests 96.79% <40.00%> (-0.01%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

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

codecov[bot] avatar Jun 02 '25 16:06 codecov[bot]

CI is failing, so it appears that something is off. Could you please take a look and see what's going on?

ranocha avatar Jun 02 '25 17:06 ranocha

CI is failing, so it appears that something is off. Could you please take a look and see what's going on?

I believe the issue is the in static macro "@static if _PREFERENCE_THREADING === :polyester && LoopVectorization.check_args(u_ode)" code line. It should be fine now.

afilogo avatar Jun 02 '25 20:06 afilogo

I've also missed a previous _PREFERENCE_POLYESTER line. Sorry about that.

afilogo avatar Jun 02 '25 20:06 afilogo

@afilogo thank you very much for your contribution. I am going to bring this PR to the finish line in #2476

vchuravy avatar Jul 18 '25 08:07 vchuravy