next up previous contents
Nächste Seite: Algorithmus 2: Basis 4 Aufwärts: Parallele 2D-FFT Algorithmen Vorherige Seite: Parallele 2D-FFT Algorithmen   Inhalt

Algorithmus 1: Realisierung durch 1D-FFTs

Abbildung: Algorithmus 1, Ansatz: 2-stufiger Butterfly-Graph zur Basis 2 ($N^2 = 16$).
Abbildung: Algorithmus 1, 1. Schritt: Übergang zu einem homogenen Datenflußgraph ($N^2 = 16$).
\begin{figure}\vbox{
\centerline{\psfig{figure=graph5.70b.ps}}\vspace{1cm}
\centerline{\psfig{figure=graph6.70b.ps}}}
\end{figure}

Abbildung: Algorithmus 1, 2. Schritt: Skalierung auf $P$ Prozessoren ($N^2 = 16$, $P = 4$).
Abbildung: Algorithmus 1, Ergebnis: Einbettung in den Kommunikationsgraph des Zielsystems ($N^2 = 16$ und $P = 4$).
\begin{figure}\vbox{
\centerline{\psfig{figure=graph7.70b.ps}}\vspace{1cm}
\centerline{\psfig{figure=graph8.70b.ps}}}
\end{figure}

Ein 2D-FFT Algorithmus läßt sich gemäß der Gleichung


\begin{displaymath}
y_{j_1, j_2}(x)
= \sum_{k_2=0}^{N-1} ( \sum_{k_1=0}^{N-1} x_{k_1, k_2}
\omega_{N}^{j_1 k_1} ) \omega_{N}^{j_2 k_2}
\end{displaymath} (16)

unter Verwendung des 1D-FFT Algorithmus konstruieren. Zunächst werden die Spalten der Eingabematrix durch die 1D-FFT transformiert. Anschließend werden dann auf gleiche Weise die Zeilen transformiert. Die Datenflußstruktur läßt sich wie bei der 1D-FFT durch einen Butterfly-Graph beschreiben, in dem jedoch jetzt in der ersten Hälfte die Spalten- und in der zweiten die Zeilentransformationen stattfinden. Hieraus ergeben sich andere Gewichte der Knotenfunktionen. Aus der Reihenfolge der Transformationen ergibt folgende Datenverteilung auf die Knoten des Butterfly-Graphen (Abbildung [*])


0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15


Ein paralleler 2D-FFT Algorithmus für $P$ Prozessoren auf Basis dieses Butterfly-Graphen läßt sich wie folgt konstruieren


next up previous contents
Nächste Seite: Algorithmus 2: Basis 4 Aufwärts: Parallele 2D-FFT Algorithmen Vorherige Seite: Parallele 2D-FFT Algorithmen   Inhalt
Jörg Haeger 2001-05-07