dash
dash copied to clipboard
DART-MPI: call into MPI every once in a while for local put/get
We need to call into MPI every once in a while as otherwise polling on a local variable may not trigger progress if that is needed.
Codecov Report
Merging #712 into development will increase coverage by
1.12%. The diff coverage isn/a.
@@ Coverage Diff @@
## development #712 +/- ##
===============================================
+ Coverage 84.06% 85.19% +1.12%
===============================================
Files 336 336
Lines 24954 24945 -9
Branches 11349 11540 +191
===============================================
+ Hits 20977 21251 +274
Misses 3693 3693
+ Partials 284 1 -283
| Impacted Files | Coverage Δ | |
|---|---|---|
| dart-impl/mpi/src/dart_communication.c | 69.44% <ø> (-0.33%) |
:arrow_down: |
| dash/include/dash/pattern/BlockPattern1D.h | 99.49% <0.00%> (+0.50%) |
:arrow_up: |
| dash/include/dash/pattern/ShiftTilePattern.h | 93.06% <0.00%> (+0.66%) |
:arrow_up: |
| dash/include/dash/memory/GlobHeapMem.h | 97.18% <0.00%> (+0.70%) |
:arrow_up: |
| dash/include/dash/GlobRef.h | 92.03% <0.00%> (+0.88%) |
:arrow_up: |
| .../include/dash/matrix/internal/LocalMatrixRef-inl.h | 95.19% <0.00%> (+0.96%) |
:arrow_up: |
| dash/include/dash/matrix/internal/Matrix-inl.h | 98.17% <0.00%> (+1.21%) |
:arrow_up: |
| dash/include/dash/memory/GlobStaticMem.h | 90.90% <0.00%> (+1.29%) |
:arrow_up: |
| dash/include/dash/pattern/TilePattern.h | 95.53% <0.00%> (+1.31%) |
:arrow_up: |
| dash/include/dash/pattern/BlockPattern.h | 99.15% <0.00%> (+1.41%) |
:arrow_up: |
| ... and 32 more |
After having given this some more thought I modified the PR to always call into MPI for local memory accesses. If fast local access without progress is required the application should just dereference the native pointer provided by DASH. Once we are in DART we have lost the latency race anyway. Everything else just adds complexity.
+1