Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upper case mpi4py communication in convergence controllers #343

Merged
merged 3 commits into from
Aug 8, 2023

Conversation

brownbaerchen
Copy link
Contributor

I am starting to merge back some of the changes I have in a development branch of mine, so expect some PRs in the upcoming days with random small things. This is one of them.

I ran into issues with the pipeline on GitHub behaving differently from my local machine and going to upper case communication in mpi4py solved that. It is a few more lines, but also should be faster because it does not pickle everything before sending because you have to specify a buffer yourself. There is still the option to do the lower case stuff and I believe it is still used in some places as well.
The tests for which this was relevant are not part of this PR and I don't actually know if the issue persists or has been solved by some updates. Anyways, I guess forgoing the pickling is enough to merit doing this.

The second small change is a different initial guess for RK methods. Instead of the initial conditions, they now use the last stage as recommended by Daniel.

@pancetta
Copy link
Member

pancetta commented Aug 8, 2023

Could you please encapsulate the additional lines of code in the send and recv functions? I just cleaned up the controller a bit to make it more readable (hahahaha)..

@brownbaerchen
Copy link
Contributor Author

I don't think I can because different convergence controllers will need different buffers. And the same convergence controller will need different buffers when communicating different things. The controller, I believe, only communicates the solution so there everything is the same, but here this is not the case.
I could overload the functions in some convergence controllers to streamline it a bit, but honestly I am afraid that would be even more mess.
Maybe I misunderstood and you can elaborate?

@codecov
Copy link

codecov bot commented Aug 8, 2023

Codecov Report

Patch coverage: 92.50% and project coverage change: -0.01% ⚠️

Comparison is base (65195b3) 73.51% compared to head (c475623) 73.51%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #343      +/-   ##
==========================================
- Coverage   73.51%   73.51%   -0.01%     
==========================================
  Files         266      266              
  Lines       22301    22322      +21     
==========================================
+ Hits        16395    16409      +14     
- Misses       5906     5913       +7     
Files Changed Coverage Δ
...SDC/implementations/sweeper_classes/Runge_Kutta.py 94.97% <ø> (ø)
pySDC/core/ConvergenceController.py 88.42% <81.81%> (-9.41%) ⬇️
...convergence_controller_classes/basic_restarting.py 97.02% <92.85%> (-0.80%) ⬇️
...onvergence_controller_classes/check_convergence.py 85.18% <100.00%> (+1.85%) ⬆️
...entations/convergence_controller_classes/hotrod.py 92.10% <100.00%> (+0.67%) ⬆️

... and 1 file with indirect coverage changes

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

@pancetta
Copy link
Member

pancetta commented Aug 8, 2023

No, no, I understand. Since you're not touching the controller directly, I'm ok with this.

@pancetta pancetta merged commit eba1a0d into Parallel-in-Time:master Aug 8, 2023
24 of 25 checks passed
@brownbaerchen
Copy link
Contributor Author

I am excited to see the new clean controller by the way! :D

@brownbaerchen brownbaerchen deleted the merge branch August 8, 2023 07:48
@pancetta
Copy link
Member

pancetta commented Aug 8, 2023

There is none besides the one that is already in the master branch. The "cleanup" was done many weeks ago and didn't help much. So, no excitement here.

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.

2 participants