prev up inhalt next


Cut-Through-Routing

Im Ring läßt sich die Kommunikationszeit durch CT-Routing verbessern. In jeder Iteration findet eine Kommunikation zwischen Partnern wie im ONE_TO_ALL_BC-Algorithmus für den Hypercube statt. D.h., bei 8 Prozessoren sendet zuerst 000 nach 100, dann gleichzeitig 000 nach 010 und 100 nach 110, dann gleichzeitig 000 nach 001, 010 nach 011, 100 nach 101 und 110 nach 111.


One-to-All mit CT im Ring

In der i -ten Iteration dauert die Kommunikation

ts + tw · m + th · $\displaystyle{\frac{p}{2^i}}$

Die Gesamtzeit lautet daher

Tone - to - all = $\displaystyle\sum_{i = 1}^{\log p}$(ts + tw · m + th · $\displaystyle{\frac{p}{2^i}}$)

= ts · logp + tw · m · logp + th · (p - 1)

Für große m und kleine ts,th bedeutet dies gegenüber SF-Routing eine Beschleunigung um den Faktor ${\frac{p}{2 \cdot \log p}}$ .

Im Gitter läßt sich dieselbe Idee zunächst zum Versorgen einer Zeile anwenden, danach werden analog alle Spalten bearbeitet. Jede dieser beiden Phasen dauert

(ts + tw · m) · log $\displaystyle\sqrt{p}$ + th($\displaystyle\sqrt{p}$ - 1) .


Daraus ergibt sich

Tone - to - all = (ts + tw · m)logp + 2 · th($\displaystyle\sqrt{p}$ - 1)


One-to-all mit Cut-Through-Routing im Gitter


prev up inhalt next