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
broker: support binomial tree topology #4730
Conversation
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.
Wow, cool! It was pretty nice to see how simple this was to implement.
I didn't see any issues, except that I wondered if this should be documented in flux-broker-attributes(7)
. Since the binomial option is experimental at this stage, it isn't crucial IMO.
6b9e84e
to
7b4c8d2
Compare
Thanks, I went ahead and added an update to BTW, it was your suggestion of using a URI for the topology that made this so simple. That was a good one! |
Codecov Report
@@ Coverage Diff @@
## master #4730 +/- ##
==========================================
+ Coverage 80.05% 83.35% +3.30%
==========================================
Files 413 413
Lines 69309 69756 +447
==========================================
+ Hits 55483 58147 +2664
+ Misses 13826 11609 -2217
|
Problem: the binomial tree has some interesting properties for HPC overlay networks, but we only support k-ary and custom topologies. This topology has been explored extensively for use in MPI collectives, such as in "Optimization of Collective Communication Operations in MPICH", Rajeev Thakur et al, IJHPCA, 2005. A binomial tree of order k has the following general properties: - it has 2^k nodes - the root has fanout k - each level has a maximum fanout of one less than the next level up - its height is k See also page 4 of: https://www3.cs.stonybrook.edu/~rezaul/Fall-2017/CSE548/CSE548-lecture-9.pdf How these properties might affect Flux TBON performance is an open question, but now we have an option to experiment with.
Problem: no unit tests exist for binomial topology. Add unit tests.
Problem: no system tests exist for tbon.topo=binomial Add one to t0001-basic.t.
Problem: tbon.topo=binomial is not documented. Add binomial to the tbon.topo attribute description.
7b4c8d2
to
d80be12
Compare
I think @trws suggested we try a binomial tree overlay topology. This adds an option to play with: