parallelenichtäquidistanteschnelle fourier ...potts/workgroup/pippig/presentationen/... ·...
TRANSCRIPT
![Page 1: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/1.jpg)
Parallele nichtäquidistante schnelleFourier-Transformation und
schnelle Summation
Michael Pippig
Fakultät für MathematikTechnische Universität Chemnitz
08. Mai 2009
mit freundlicher Unterstüzung des BMBF
![Page 2: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/2.jpg)
Gliederung
1 Diskrete Fourier-Transformationen
2 Parallelisierung der schnellen Fourier-Transformationnichtäquidistanter Daten
3 Schnelle Summation
4 Zusammenfassung
![Page 3: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/3.jpg)
Diskrete Fourier-Transformationen
Trigonometrisches Polynom
f : T3 → C, f (x) =∑
k∈IN
fk e−2πikx , fk ∈ C
N ∈ 2N3, IN := NT ∩ Z3, l/N := ( l0N0, l1
N1, l2
N2)T ∈ T3
Aufgabenstellung 3D-DFT (Realisierung mit 3D-FFT)
fl = f (l/N ) =∑
k∈IN
fk e−2πik(l/N ), l ∈ IN
⇒ O(|IN | log |IN |) statt O(|IN |2)
Aufgabenstellung 3D-NDFT (Realisierung mit 3D-NFFT)
f (xj) =∑
k∈IN
fk e−2πikxj , j ∈M := {1, . . . ,M}
⇒ O(|IN | log(|IN |) + log3(1ε )M ) statt O(|IN |M )
![Page 4: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/4.jpg)
Approximationsidee der NFFT
Ansatz [Dutt, Rohklin 93, Beylkin 95, Steidl 96, . . . ]
f (x) =∑
k∈IN
fke−2πikx ≈ s (x) :=∑l∈In
gl ϕ (x − l/n)
mit N ≤ n
Entwicklung in eine Fourier-Reihe
s (x) =∑r∈Z3
∑k∈In
gk ck+n�r (ϕ) e−2πi(k+n�r)x
mitgk :=
∑l∈In
gl e+2πik(l/n), k ∈ In
ck(ϕ) :=∫
T3ϕ(x) e+2πikxdx, k ∈ Z3
![Page 5: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/5.jpg)
Approximationsidee der NFFT
Approximation im Frequenzbereich
gk ={
fkck(ϕ) : k ∈ IN
0 : k ∈ In\IN
3D-FFT der Größe n0 × n1 × n2
gl = 1|In |
∑k∈IN
gk e−2πik(l/n), l ∈ In
Beispiel für N = (4, 2, 2) und n = (8, 4, 4)k2
k1
k0 (-k0 (-4,-2,-2)
(3,1,1)
→l 2
l 1
l 0
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
![Page 6: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/6.jpg)
Approximationsidee der NFFT
Approximation im Ortsbereich
s (x) :=∑
l∈In,m(x)
gl ϕ (x − l/n)
In,m (x) :={
l = bn � xc+ r ∈ In : r ∈ [−m,m + 2)3}Beispiel für In,m(x) mit m = 1
l 2l 1
l 0
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
→
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
![Page 7: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/7.jpg)
Datenparallelisierung der FFT [FFTW]
Prozessorennetz
P := {p ∈ Z3 : 0 ≤ p < P}, P ∈ N3
Aufgabenstellung parallele FFTgeg.: {I p
n ⊆ In : p ∈ P} Zerlegung von Ingk ∈ C, k ∈ I p
nges.:
gl =∑r∈P
∑k∈I r
n
gk e−2πik(l/n), l ∈ I pn
Beispiel für N = (4, 2, 2), n = (8, 4, 4), P = (8, 1, 1)(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
→
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
![Page 8: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/8.jpg)
Parallelisierung der NFFT
Approximation im Frequenzbereich - seriell
gk := fk|In | ck (ϕ) , k ∈ IN
Approximation im Frequenzbereich - parallel
gk := fk|In | ck (ϕ) , k ∈ Ip
N := I pn ∩ IN
Beispiel für N = (4, 2, 2), n = (8, 4, 4), P = (8, 1, 1)
k0 (-4,-2,-2)
(3,1,1)k2
k1
k0 (-
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
![Page 9: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/9.jpg)
Parallelisierung der NFFT
3D-FFT - seriell
gl :=∑
k∈IN
gk e−2πik(l/n), l ∈ In
3D-FFT - parallel
gl :=∑r∈P
∑k∈Ir
N
gk e−2πik(l/n), l ∈ I pn
Beispiel für N = (4, 2, 2), n = (8, 4, 4), P = (8, 1, 1)(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
→
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
![Page 10: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/10.jpg)
Parallelisierung der NFFT
Approximation im Ortsbereich - seriell
sj :=∑
l∈In,m(xj)
gl ϕ (xj − l/n) , j ∈M
Approximation im Ortsbereich - parallel
sj :=∑
l∈In,m(xj)
gl ϕ (xj − l/n) , j ∈Mp
Mp := {j ∈M : bn � xjc −m1 ∈ I pn }
Beispiel für N = (4, 2, 2), n = (8, 4, 4), P = (8, 1, 1), m = 1
l 2l 1
l 0
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
→
0
0
Transponierte Aufteilung der FFTW
Initialisierung der parallelen FFTW
Initialisierung der FFTW
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
![Page 11: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/11.jpg)
Beschleunigung der parallelen NFFT auf JUGENE
100
101
102
103
100
101
102
103
Anzahl der Prozessoren
Beschle
unig
ung
ideale Beschleunigung
reale Beschleunigung nfft_trafo
reale Beschleunigung fftw_trafo
N = (196, 196, 196), n = (392, 392, 392), M = 1963, m = 4
![Page 12: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/12.jpg)
Effizienz der parallelen NFFT auf JUGENE
100
101
102
103
0
0.5
1
1.5
Anzahl der Prozessoren
Effiz
ienz
ideale Effizienz
reale Effizienz nfft_trafo
reale Effizienz fftw_trafo
N = (196, 196, 196), n = (392, 392, 392), M = 1963, m = 4
![Page 13: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/13.jpg)
Datenaufteilung der parallelen FFTW
(0,0,0)
(1,0,0)
(2,0,0) (4,0,0) (6,0,0)
(3,0,0) (5,0,0) (7,0,0)
(a) Initialisierung derFourier-Koeffizienten
Transponierte Aufteilung der FFTW
(0,0,0)
(1,0,0)
(2,0,0)
(3,0,0)
(b) 1D-FFT in erster Di-mension
![Page 14: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/14.jpg)
3D-Datenaufteilung [Eleftheriou et al. 03]
(0,1,1)
(0,0,1)
(0,1,0)
(0,0,0)
(1,1,1)
(1,0,1)
(1,1,0)
(1,0,0)
(a) Initialisierung der Fourier-Koeffizienten
(1,1,1)(0,1,1)
(1,0,1)(0,0,1)
(1,1,0)(0,1,0)
(1,0,0)(0,0,0)
(b) 1D-FFT in ersterDimension
(0,0,1) (0,1,1) (1,0,1) (1,1,1)
(0,0,0) (0,1,0) (1,0,0) (1,1,0)
(c) 1D-FFT in zweiterDimension
(0,1,0)
(0,0,0)
(0,1,1)
(0,0,1)
(1,1,0)
(1,0,0)
(1,1,1)
(1,0,1)
(d) 1D-FFT in dritter Di-mension
![Page 15: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/15.jpg)
Grenzen der Parallelisierung der NFFTN0 = N1 = N2 = N , n0 = n1 = n2 = 2N , M = N 3, m = 4
Begrenzung der Prozessorenanzahl mit FFTWP ≤ max {min{n0,n1},min{n1,n2},min{n2,n0}} =: Pmax
RAM in GByte 0,5 1 4N0 = N1 = N2 885 1252 2505Pmax 1770 2504 5010
JUGENE CHiC JUMP
Begrenzung der Prozessorenanzahl mit BlueGeneFFTP ≤ min{n0n1,n1n2,n2n0}
⇒ Ab n0 = n1 = n2 = 256 bereits 65536 Prozessoren nutzbar
P 64.000N0 = N1 = N2 4.230N0 ×N1 ×N2 7,57·1010
![Page 16: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/16.jpg)
Schnelle Summation
Aufgabenstellunggeg.: x l ∈ R3, l = 1, . . . ,M1, yj ∈ R3, j = 1, . . . ,M2
al ∈ C, l = 1, . . . ,M1, K : R+ → Rges.:
hj =M1∑l=1
alK (‖yj − x l‖2), j = 1, . . . ,M2
Beispiele für Kernfunktionen K (‖x‖2)1‖x‖2
, log ‖x‖2,(‖x‖22 + c2) 1
2
Anwendung in Partikelsimulationen
φ(xj) :=M1∑l=1l 6=j
ql‖xj − x l‖2
, j = 1, . . . ,M2
![Page 17: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/17.jpg)
Schnelle Summation
Matrix-Vektor-Notation
h = Ka
mit h = (hj)M2j=1, K = (K (‖yj − x l‖2))M2,M1
j,l=1 , a = (al)M1l=1 ∈ CM1
Approximation
h = Ka ≈ A2DAa1 a + KNFa
mitA2 =
(e−2πikyj
)M2j=1,k∈IN
∈ CM2×|IN |, D ∈ R|IN |×|IN |,A1 =
(e−2πikx l
)M1l=1,k∈IN
∈ CM1×|IN |, KNF ∈ RM2×M1
⇒ O(|IN | log |IN |+ (M1 + M2)(log 1ε )3) statt O(M1M2)
Parallelisierung
![Page 18: Parallelenichtäquidistanteschnelle Fourier ...potts/workgroup/pippig/presentationen/... · Parallelenichtäquidistanteschnelle Fourier-Transformationund schnelleSummation Michael](https://reader030.vdocuments.pub/reader030/viewer/2022040713/5e1a1257f720c3439567932b/html5/thumbnails/18.jpg)
Zusammenfassung
FFT↓
NFFT↓
schnelle Summation
parallele 3D-FFT[FFTW, ...]
↓parallele 3D-NFFT
[Programmbibliothek]↓
parallele schnelle Summation[ScaFaCoS - BMBF]