-
Notifications
You must be signed in to change notification settings - Fork 89
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
Add specific communicator for neighborhood communication #1588
base: index-map-pgm
Are you sure you want to change the base?
Conversation
6acf7c4
to
8aa6ab9
Compare
b42ab92
to
8f104fd
Compare
8aa6ab9
to
77398bd
Compare
77398bd
to
d278cad
Compare
8f104fd
to
a0824a8
Compare
d278cad
to
d6112ef
Compare
a0824a8
to
8ad3f2f
Compare
d6112ef
to
1582673
Compare
1582673
to
db9b48a
Compare
8ad3f2f
to
26678b3
Compare
db9b48a
to
72eafff
Compare
26678b3
to
006d67d
Compare
72eafff
to
3c70106
Compare
006d67d
to
b295b11
Compare
3c70106
to
a1567b8
Compare
fe864bb
to
db7f6ed
Compare
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.
Mostly looks good. Some missing tests and doc updates needed
ded4dd3
to
3ad5eee
Compare
db7f6ed
to
0ad4ee8
Compare
0ad4ee8
to
1f49b91
Compare
1f49b91
to
4db050c
Compare
3ad5eee
to
6395054
Compare
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.
First pass, mostly interface and implementation
- What is the moved-from state of a Communicator? Should it match that of an MPI communicator wrapper, and be MPI_NULL, or preserve the MPI communicator?
@upsj I think the moved-from that should be using |
4db050c
to
1ebe59f
Compare
604a6e9
to
ba0982e
Compare
Co-authored-by: Pratik Nayak <pratik.nayak@kit.edu>
Co-authored-by: Pratik Nayak <pratik.nayak@kit.edu>
- fix include guards - update docs - implement copy/move constructors/assignment with tests - add equality test for collective communicators (needed for testing) - always enable neighborhood comm, just throw if openmpi is too old - define moved-from state as MPI_COMM_NULL + empty sizes/offsets - remove unnecessary namespace - make virtual function protected Co-authored-by: Pratik Nayak <pratik.nayak@kit.edu> Co-authored-by: Tobias Ribizel <mail@ribizel.de>
1ebe59f
to
e7d32a1
Compare
This PR adds a communicator that only handles neighborhood all-to-all communication. It implements the new interface
collective_communicator
, which provides different implementations for a selected set of collective mpi routines. Currently, this only includes the non-blocking all-to-all.The communication uses a fixed pattern, i.e. the send/recv sizes are fixed when the neighborhood communicator is constructed. I would have liked to decouple that, but this would require some knowledge of how the sizes are stored at the interface level. If someone has an idea for that, please let me know.
This is the first part of splitting up #1546.
The neighborhood all-to-all has a bug in OpenMPI < v4.1.0, which makes it necessary to disable the neighborhood communicator in this case. As replacement, there is also a dense all-to-all communicator.
Todo:
PR Stack: