mpi: Add basic2 mode#2307
Conversation
024e82b to
b4e67e3
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2307 +/- ##
========================================
Coverage 87.29% 87.30%
========================================
Files 238 238
Lines 46063 46191 +128
Branches 4080 4098 +18
========================================
+ Hits 40211 40325 +114
- Misses 5162 5175 +13
- Partials 690 691 +1 ☔ View full report in Codecov by Sentry. |
befd078 to
89387c8
Compare
ff919e2 to
895cef3
Compare
895cef3 to
51411cc
Compare
|
|
||
| return SendRecv('sendrecv%s' % key, iet, parameters, bufg, bufs) | ||
|
|
||
| def _call_sendrecv(self, name, *args, msg=None, haloid=None): |
There was a problem hiding this comment.
why do you need a haloid here ? never had to use it. What makes this mode require it?
There was a problem hiding this comment.
Similarly to the same method in OverlapHalo. Each call to sendrecv has its own message indexedpointer
| mapper[(d0, side, region)] = (sizes) | ||
|
|
||
| i = 0 | ||
| for d in f.dimensions: |
There was a problem hiding this comment.
why not :
for i, halo in enumerate(self.halos):
like we have in the other message types?
There was a problem hiding this comment.
I followed the basic style, which does not have yet a method to cleanup the redundant halos as in diag2 for example:
e.g.:
# Only retain the halos required by the Diag scheme
halos = sorted(i for i in hse.halos if isinstance(i.dim, tuple))
I tried this but did not manage to get it working nicely.
51411cc to
6a0ce49
Compare
6a0ce49 to
7d206db
Compare
| assert np.all(f.data_ro_domain[0, -1:, :-1] == side) | ||
|
|
||
| @pytest.mark.parallel(mode=[(8, 'basic'), (8, 'diag'), (8, 'overlap'), | ||
| @pytest.mark.parallel(mode=[(8, 'basic'), (8, 'basic2'), (8, 'diag'), (8, 'overlap'), |
There was a problem hiding this comment.
I would drop basic here and below... or overlap perhaps. These tests can be quite expensive
5a5e826 to
c266e14
Compare
e849e40 to
55b11d5
Compare
| assert args is not None | ||
| return int(subs_op_args(v, args)) | ||
|
|
||
| def _allocate_buffers(self, f, shape, entry): |
There was a problem hiding this comment.
This could use some whitespace to make it more readable
There was a problem hiding this comment.
agree, added a docstring as well
58dbb96 to
dab37fd
Compare
dab37fd to
12f133c
Compare
EdCaunt
left a comment
There was a problem hiding this comment.
Is documentation required somewhere to explain what the new Basic2 mode does?
01ed5e2 to
28825e1
Compare
a54684a to
834a627
Compare
you are right, will add! |
834a627 to
a94b1d5
Compare
|
@EdCaunt I just remember that I have some enhanced docs on another branch, so this can be fine for the moment! |
a94b1d5 to
45c5a3c
Compare
mpi: Drop redundant determinism
45c5a3c to
68631a5
Compare
Preallocated buffers using MPIMsg.
An MPIMsgEnriched version for send/recv, will follow