-
Notifications
You must be signed in to change notification settings - Fork 37
SDC-DAE MPI Sweepers #439
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
SDC-DAE MPI Sweepers #439
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #439 +/- ##
==========================================
+ Coverage 77.38% 78.26% +0.87%
==========================================
Files 327 332 +5
Lines 26085 26303 +218
==========================================
+ Hits 20187 20585 +398
+ Misses 5898 5718 -180 ☔ View full report in Codecov by Sentry. |
brownbaerchen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! I think the test that MPI and non-MPI produce the same result is quite valuable, actually. But I don't know if it's better than testing the order.
@pancetta, what do you think?
|
I totally agree with you @brownbaerchen! Thus I added also a test checking |
|
LGTM 🚀 |
|
Looks good indeed. Can you add this to the documentation of the project or should this happen in #431 ? |
|
I can add this here and we can directly merge then if you would like to. |
The current SDC-DAE sweepers now get MPI versions by adding
fully_implicit_DAE_MPIandSemiImplicitDAEMPIto the SDC-DAE family! Hooray! For this, I implemented a base class for doing the MPI stuff calledSweeperMPIDAEsimilar to theSweeperMPIbase class. Then, for the SDC-DAE sweepers we have multiple inheritance again and it seems like it works, which is great.To make sure the sweepers do work as they should I added a test that checks the order for both sweepers for different cases of DAEs (index one and index two case). I was struggling how to implement the test, because first I would like to write a test that checks if the MPI and non-MPI versions do match as here and I still want to do this. However, I was not able to understand how the stuff using
argparsedoes work and my tests fail all the time.. Since I don't want to invest too much time (which I would do anyways but I can hear someone calling from far away then..) so I decided to skip that for the first time (but have this still on my to do list in my mind) and wrote instead a test checking the order of accuracy. Another point that is kind of embarrassing for me: Running the fileaccuracy_check_MPI.pydoes work when I run it withmpiexec -n 3 python3 accuracy_check_MPI.pybut fails when I use pytest for the test file, and it returns some "Cant open file [bla bla] - No such file or directory" so maybe I did a mistake using the correct path? Let's see if the test here is successful. Setting path's is still a big mystery for me although I thought I would understand it .. :DSince this PR is a request of @Ouardghi I also added
playground_MPI.pywith some comments how to use and how to run the files. Moreover, the sweepers do also contain some documentation. I'm not sure if this is enough but if he has questions he should not hesitate to ask me!I appreciate your review very much! Feel free to throw comments at me I'm always happy about that!