DerThe ESBT-Broadcastbroadcast (Edge-disjoint Spanning Binomial Tree) Algorithmusalgorithm<ref>{{cite journal|last1=Johnsson|first1=S.L.|last2=Ho|first2=C.-T.|title=Optimum broadcasting and personalized communication in hypercubes|journal=IEEE Transactions on Computers|volume=38|issue=9|year=1989|pages=1249–1268|issn=00189340|doi=10.1109/12.29465}}</ref> istis eina zeitoptimalerpipelined Broadcastbroadcast füralgorithm Rechnerbündelwith mitoptimal Hyperwürfel-Netztopologie.runtime Dazufor wirdclusters daswith Netzhypercube ausgehendnetwork vontopology. derThe Quelle (imalgorithm Folgendem derembeds <math>0d</math> edge-Rechner)disjoint binomial trees in the hypercube, such that each neighbor of processing element <math>d0</math> kantendisjunkteis Binomialbäumethe aufgeteilt,root soof dassa jederspanning Nachbarbinomial dertree Quelle die Wurzel eines Binomialbaums miton <math>2^d - 1</math> Rechnern istnodes. DieTo Quellebroadcast zerteilta ihremessage, Nachrichtthe nunsource innode splits its message into <math>k</math> Teilnachrichten,chunks dieof dannequal zyklischsize anand diecyclically Wurzelnsends derthem Binomialbäumeto verteiltthe werden.roots Jederof Binomialbaumthe führtbinomial anschließendtrees. einenUpon Broadcastreceiving aus.a chunk, the binomial trees broadcast it.▼
VerteiltThe dieruntime Quelleof inthis jedemalgorithm Schrittis eineas Teilnachrichtfollows. In each step, hatthe source node sends one sieof nachits <math>k</math> Schrittenchunks alleto Teilnachrichtena verteiltbinomial tree. DerBroadcasting Broadcastthe inchunk einemwithin Binomialbaumthe benötigtbinomial tree takes <math>d</math> Schrittesteps. InsgesamtThus, werdenit somittakes <math>k</math> +steps to distribute all chunks and additionally <math>d</math> Schrittesteps benötigtuntil the last binomial tree broadcast has finished, bisresulting derin Broadcast<math>k für+ died</math> letztesteps Nachrichtoverall. abgeschlossenTherefore, istthe undruntime diefor Laufzeita ergibtmessage sichof length <math>n</math> zuis <math>T(n, p, k) = \left(\frac{n}{k} T_\text{byte} + T_\text{start} \right) (k + d)</math>. DasWith optimalethe optimal chunk size <math>k^* = \sqrt{\frac{nd \cdot T_\text{byte}}{T_\text{start}}}</math>, the optimal runtime minimiertof diethe Laufzeitalgorithm zuis <math>T^*(n, p) = n \cdot T_\text{byte} + \log(p) \cdot T_\text{start} + \sqrt{n \log(p) \cdot T_\text{start} \cdot T_\text{byte}}</math>.▼
▲Der ESBT-Broadcast (Edge-disjoint Spanning Binomial Tree) Algorithmus<ref>{{cite journal|last1=Johnsson|first1=S.L.|last2=Ho|first2=C.-T.|title=Optimum broadcasting and personalized communication in hypercubes|journal=IEEE Transactions on Computers|volume=38|issue=9|year=1989|pages=1249–1268|issn=00189340|doi=10.1109/12.29465}}</ref> ist ein zeitoptimaler Broadcast für Rechnerbündel mit Hyperwürfel-Netztopologie. Dazu wird das Netz ausgehend von der Quelle (im Folgendem der <math>0</math>-Rechner) in <math>d</math> kantendisjunkte Binomialbäume aufgeteilt, so dass jeder Nachbar der Quelle die Wurzel eines Binomialbaums mit <math>2^d - 1</math> Rechnern ist. Die Quelle zerteilt ihre Nachricht nun in <math>k</math> Teilnachrichten, die dann zyklisch an die Wurzeln der Binomialbäume verteilt werden. Jeder Binomialbaum führt anschließend einen Broadcast aus.
=== Construction of the Binomial Trees ===
▲Verteilt die Quelle in jedem Schritt eine Teilnachricht, hat sie nach <math>k</math> Schritten alle Teilnachrichten verteilt. Der Broadcast in einem Binomialbaum benötigt <math>d</math> Schritte. Insgesamt werden somit <math>k + d</math> Schritte benötigt, bis der Broadcast für die letzte Nachricht abgeschlossen ist und die Laufzeit ergibt sich zu <math>T(n, p, k) = \left(\frac{n}{k} T_\text{byte} + T_\text{start} \right)</math>. Das optimale <math>k^* = \sqrt{\frac{nd \cdot T_\text{byte}}{T_\text{start}}}</math> minimiert die Laufzeit zu <math>T^*(n, p) = n \cdot T_\text{byte} + \log(p) \cdot T_\text{start} + \sqrt{n \log(p) \cdot T_\text{start} \cdot T_\text{byte}}</math>.
=== Aufbau der Binomialbäume ===
[[File:HypergraphESBT.png|thumb|A <math>3</math>-dimensional hypercubes with three ESBT embedded.]]
This section describes how to construct the binomial trees systematically. First, construct a single binomial spanning tree von <math>2^d</math> nodes as follows. Number the nodes from <math>0</math> to <math>2^d - 1</math> and consider their binary representation. Then the children of each nodes are obtained by negating single leading zeroes. This results in a single binomial spanning tree. To obtain <math>d</math> edge-disjoint copies of the tree, translate and rotate the nodes: for the <math>k</math>-th copy of the tree, apply a XOR operation with <math>2^k</math> to each node. Afterwards, right rotate all nodes by <math>k</math> digits. The resulting binomial trees are edge-disjoint and therefore, fulfill the requirements for the ESBT-broadcasting algorithm.
Die <math>d</math> Binomialbäume können systematisch nach der folgender Vorschrift konstruiert werden. Dazu wird zunächst ein Binomialbaum mit <math>2^d</math> Knoten definiert. Anschließend werden durch Translation und Rotation <math>d</math> kantendisjunkte Kopien des Binomialbaums in den Hyperwürfel eingebettet.
Ein einzelner Binomialbaum hat Knoten <math>0</math> als Wurzel. Die Kinder eines Knotens ergeben sich durch Negation der führenden Nullen in der Binärdarstellung der Knotennummer. Der so resultierende Graph ist offensichtlich ein Binomialbaum. Die Kantenmenge des <math>k</math>-ten Binomialbaums im Hyperwürfel erhält man nun wie folgt: auf jeden Knoten wendet man eine XOR-Operation mit <math>2^k</math> an und verschiebt die Binärdarstellung der Knotennummer anschließend um <math>k</math> Stellen zyklisch nach rechts. Die so entstehenden <math>d</math> Kopien des ausgehenden Binomialbaums sind kantendisjunkt und erfüllen somit die Voraussetzungen des ESBT-Broadcast Algorithmus.