-
Notifications
You must be signed in to change notification settings - Fork 626
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
updated multi-threading branch #1628
Conversation
6a676dc
to
760c97c
Compare
The tests don't currently exercise the openmp code (we need to configure with It would be good to do a quick performance benchmark without openmp on this branch, to make sure that @smartalecH's loop rewriting didn't hurt the serial performance. |
We probably want to parallelize the |
73154b4
to
d24111d
Compare
@@ -0,0 +1,80 @@ | |||
/* |
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.
@smartalecH, should this file be included in make check
?
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.
No, this was just for my personal debugging. Didn't realize it was added.
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #1628 +/- ##
=======================================
Coverage 73.46% 73.46%
=======================================
Files 13 13
Lines 4557 4557
=======================================
Hits 3348 3348
Misses 1209 1209 |
This branch should be rebased after #1737 is merged first. |
All of the There's a nifty swig feature, |
b58cb84
to
79ffca8
Compare
After this PR was merged earlier today, I noticed that if building Meep from the master branch (commit: 74cb6dd) using |
According to this page:
|
Maybe we should call |
* multithreading branch by smartalecH * compilation fixes * rm pragma unroll statements, which shouldn't be needed * parallelize update_dft * use MPI_Init_thread with openmp * fix idx_dft counter for parallel loop * IVEC_LOOP_COUNTER macro * disable non-thread-safe PLOOP for epsilon averaging * simplifications, fixes * make sure step_generic_stride1.cpp is re-generated * nevermind, step_generic.cpp dependency is sufficient * comment formatting Co-authored-by: Alec Hammond <[email protected]>
* multithreading branch by smartalecH * compilation fixes * rm pragma unroll statements, which shouldn't be needed * parallelize update_dft * use MPI_Init_thread with openmp * fix idx_dft counter for parallel loop * IVEC_LOOP_COUNTER macro * disable non-thread-safe PLOOP for epsilon averaging * simplifications, fixes * make sure step_generic_stride1.cpp is re-generated * nevermind, step_generic.cpp dependency is sufficient * comment formatting Co-authored-by: Alec Hammond <[email protected]>
WIP torebase @smartalecH's multithreading branch to fix #1627 and fix #228.Includes some additional thread-safety fixes (to parallelize the DFT updates, and to avoid calling back to Python or other user callbacks from multiple threads).