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
Adding all_to_all #3931
Adding all_to_all #3931
Conversation
@msimberg I'd need some help integrating the doxygen documentation for the |
b4cca5a
to
7c9be63
Compare
What is the underlying implementation based on? I didn't look at the code yet but will review it later in the week if you wish. Does it use any tree based algorithms or anything fancy to minimize latency/bandwidth or total messages sent etc? |
@biddisco the implementation is straightforward, nothing special. It creates a central point of collecting the information where all participants extract the data from. My goal was not to have something very high performant, I needed the abstraction. We can always get fancy implementation-wise later. |
It should "just work", i.e. anything not in detail is added as doxygen docs now. I'll check that it does the right thing though. Another thing this does is create a cyclic dependency between this and the core library. I don't think we can avoid this at the moment without having all the prerequisites in place as modules, but I just want to point out that we should be very careful about not forgetting cyclic dependencies like these. I'm really happy to see this as a module though! |
I thought about this. In this case it doesn't create an issue as |
- flyby: create new module for collectives, all_to_all is the first (and only) facility in this module - flyby: adding promise::get_shared_future to allow extracting a shared future from a promise without access to any (shared-)future that was extracted from this promise before - flyby: minor fixes to gather_here/gather_there This relies on #3902 being merged
- flyby: remove superfluous file, properly install generated files - flyby: fix unregistration for all_to_all server component
@msimberg this is good to go from my end, please review. |
@hkaiser you don't need to do anything additional for this to work. |
- adding minimal docs - fixing pseudo target names - updating create_library_skeleton.py
@msimberg I think I have addressed all of your comments, thanks! |
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.
Thanks!
@hkaiser the |
@msimberg thanks for looking into this. I applied a couple of minor changes to streamline the force-linking even further. Should be good to go now. |
- Generating force_linking source files - remove unneeded source files (those are being generated now) - add missing source groups - export modules as targets only if those are installed
Adding
all_to_all
facilityall_to_all
is the first (and only)facility in this module
promise::get_shared_future
to allow extracting a shared futurefrom a promise without access to any (shared-)future that was extracted
from this promise before
gather_here
/gather_there
This relies on #3902 being merged first