parallel spectral methods: fast fourier transform (ffts) with applications

80
Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications James Demmel www.cs.berkeley.edu/~demmel/ cs267_Spr12

Upload: kawena

Post on 07-Jan-2016

59 views

Category:

Documents


8 download

DESCRIPTION

Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications. James Demmel www.cs.berkeley.edu/~demmel/cs267_Spr12. Motifs. The Motifs (formerly “ Dwarfs ” ) from “ The Berkeley View ” (Asanovic et al.) Motifs form key computational patterns. Topic of this lecture. 2. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Parallel Spectral Methods:Fast Fourier Transform (FFTs)

with Applications

James Demmel

www.cs.berkeley.edu/~demmel/cs267_Spr12

Page 2: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 252

Motifs

The Motifs (formerly “Dwarfs”) from “The Berkeley View” (Asanovic et al.)

Motifs form key computational patterns

Topic of this lecture

2

Page 3: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Ouline and References

° Outline• Definitions

• A few applications of FFTs

• Sequential algorithm

• Parallel 1D FFT

• Parallel 3D FFT

• Autotuning FFTs: FFTW and Spiral projects

° References• Previous CS267 lectures

• FFTW project: http://www.fftw.org

• Spiral project: http://www.spiral.net

• Lecture by Geoffrey Fox: http://grids.ucs.indiana.edu/ptliupages/presentations/PC2007/cps615fft00.ppt

3

Page 4: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Definition of Discrete Fourier Transform (DFT)

° The 2D DFT of an m-by-m matrix V is F*V*F• Do 1D DFT on all the columns independently, then all the rows

° Higher dimensional DFTs are analogous

° Let i=sqrt(-1) and index matrices and vectors from 0.

° The (1D) DFT of an m-element vector v is:

F*v

where F is an m-by-m matrix defined as:

F[j,k] = (j*k)

and where is:

= e (2i/m) = cos(2/m) + i*sin(2/m)

is a complex number with whose mth power m =1 and is therefore called an mth root of unity

° E.g., for m = 4: = i, = -1, = -i, = 1

4

Page 5: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Motivation for Fast Fourier Transform (FFT)

° Signal processing

° Image processing

° Solving Poisson’s Equation nearly optimally• O(N log N) arithmetic operations, N = #unknowns

° Fast multiplication of large integers

° …

04/17/2012 CS267 Lecture 25 5

Page 6: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

CS267 Lecture 25

Using the 1D FFT for filtering

° Signal = sin(7t) + .5 sin(5t) at 128 points

° Noise = random number bounded by .75

° Filter by zeroing out FFT components < .25

6

Page 7: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Using the 2D FFT for image compression

° Image = 200x320 matrix of values

° Compress by keeping largest 2.5% of FFT components

° Similar idea used by jpeg

7

Page 8: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Recall: Poisson’s equation arises in many models

° Electrostatic or Gravitational Potential: Potential(position)

° Heat flow: Temperature(position, time)

° Diffusion: Concentration(position, time)

° Fluid flow: Velocity,Pressure,Density(position,time)

° Elasticity: Stress,Strain(position,time)

° Variations of Poisson have variable coefficients

3D: 2u/x2 + 2u/y2 + 2u/z2 = f(x,y,z)

2D: 2u/x2 + 2u/y2 = f(x,y)

1D: d2u/dx2 = f(x)

f represents the sources; also need boundary conditions

8

Page 9: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Solving Poisson Equation with FFT (1/2)° 1D Poisson equation: solve L1x = b where

2 -1

-1 2 -1

-1 2 -1

-1 2 -1

-1 2

L1 =2-1 -1

Graph and “stencil”

° 2D Poisson equation: solve L2x = b where

4 -1 -1

-1 4 -1 -1

-1 4 -1

-1 4 -1 -1

-1 -1 4 -1 -1

-1 -1 4 -1

-1 4 -1

-1 -1 4 -1

-1 -1 4

L2=

4

-1

-1

-1

-1

Graph and “5 point stencil”

3D case is analogous (7 point stencil) 9

Page 10: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Solving 2D Poisson Equation with FFT (2/2)

° Use facts that• L1 = F · D · FT is eigenvalue/eigenvector decomposition, where

- F is very similar to FFT (imaginary part)

– F(j,k) = (2/(n+1))1/2 · sin(j k /(n+1))- D = diagonal matrix of eigenvalues

– D(j,j) = 2(1 – cos(j / (n+1)) )

• 2D Poisson same as solving L1 · X + X · L1 = B where

- X square matrix of unknowns at each grid point, B square too

° Substitute L1 = F · D · FT into 2D Poisson to get algorithm• Perform 2D “FFT” on B to get B’ = FT ·B · F

• Solve D X’ + X’ D = B’ for X’: X’(j,k) = B’(j,k)/ (D(j,j) + D(k,k))

• Perform inverse 2D “FFT” on X’ to get X = F ·X’ · FT

° Cost = 2 2D-FFTs plus n2 adds, divisions = O(n2 log n)

° 3D Poisson analogous04/17/2012 CS267 Lecture 25 10

Page 11: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Algorithms for 2D (3D) Poisson Equation (N = n2 (n3) vars)

Algorithm Serial PRAM Memory #Procs

° Dense LU N3 N N2 N2

° Band LU N2 (N7/3) N N3/2 (N5/3) N (N4/3)

° Jacobi N2 (N5/3) N (N2/3) N N

° Explicit Inv. N2 log N N2 N2

° Conj.Gradients N3/2 (N4/3) N1/2(1/3) *log N N N

° Red/Black SOR N3/2 (N4/3) N1/2 (N1/3) N N

° Sparse LU N3/2 (N2) N1/2 N*log N (N4/3) N

° FFT N*log N log N N N

° Multigrid N log2 N N N

° Lower bound N log N N

PRAM is an idealized parallel model with zero cost communication

Reference: James Demmel, Applied Numerical Linear Algebra, SIAM, 1997.11

Page 12: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Related Transforms

° Most applications require multiplication by both F and F-1

• F(j,k) = exp(2ijk/m)

° Multiplying by F and F-1 are essentially the same. • F-1 = complex_conjugate(F) / m

° For solving the Poisson equation and various other applications, we use variations on the FFT

• The sin transform -- imaginary part of F

• The cos transform -- real part of F

° Algorithms are similar, so we will focus on F

12

Page 13: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Serial Algorithm for the FFT

° Compute the FFT (F*v) of an m-element vector v

(F*v)[j] = F(j,k) * v(k)

= (j*k) * v(k)

= ( j)k * v(k)

= V(j)

where V is defined as the polynomial

V(x) = xk * v(k)

m-1

k = 0

m-1

k = 0

m-1

k = 0

m-1

k = 0

13

Page 14: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Divide and Conquer FFT° V can be evaluated using divide-and-conquer

V(x) = xk * v(k)

= v[0] + x2*v[2] + x4*v[4] + …

+ x*(v[1] + x2*v[3] + x4*v[5] + … )

= Veven(x2) + x*Vodd(x2)

° V has degree m-1, so Veven and Vodd are polynomials of degree m/2-1

° We evaluate these at m points: (j)2 for 0 ≤ j ≤ m-1

° But this is really just m/2 different points, since

( (j+m/2) )2 = ( j *m/2 )2 = 2j *m = ( j)2

° So FFT on m points reduced to 2 FFTs on m/2 points• Divide and conquer!

m-1

k = 0

14

Page 15: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Divide-and-Conquer FFT (D&C FFT)FFT(v, , m)

if m = 1 return v[0]

else

veven = FFT(v[0:2:m-2], 2, m/2)

vodd = FFT(v[1:2:m-1], 2, m/2)

-vec = [0, 1, … (m/2-1) ]

return [veven + (-vec .* vodd),

veven - (-vec .* vodd) ]

° Matlab notation: “.*” means component-wise multiply.

Cost: T(m) = 2T(m/2)+O(m) = O(m log m) operations.

precomputed

15

Page 16: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

An Iterative Algorithm

° The call tree of the D&C FFT algorithm is a complete binary tree of log m levels

° An iterative algorithm that uses loops rather than recursion, does each level in the tree starting at the bottom

• Algorithm overwrites v[i] by (F*v)[bitreverse(i)]

° Practical algorithms combine recursion (for memory hierarchy) and iteration (to avoid function call overhead) – more later

FFT(0,1,2,3,…,15) = FFT(xxxx)

FFT(1,3,…,15) = FFT(xxx1)FFT(0,2,…,14) = FFT(xxx0)

FFT(xx10) FFT(xx01) FFT(xx11)FFT(xx00)

FFT(x100) FFT(x010) FFT(x110) FFT(x001) FFT(x101) FFT(x011) FFT(x111)FFT(x000)

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

even odd

16

Page 17: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Parallel 1D FFT

° Data dependencies in 1D FFT

• Butterfly pattern

• From veven w .* vodd

° A PRAM algorithm takes O(log m) time

• each step to right is parallel

• there are log m steps

° What about communication cost?

° (See UCB EECS Tech report UCB/CSD-92-713 for details, aka “LogP paper”)

17

Data dependencies in a 16-point FFT

Page 18: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Block Layout of 1D FFT

° Using a block layout (m/p contiguous words per processor)

° No communication in last log m/p steps

° Significant communication in first log p steps

18

CommunicationRequired

log(p) steps

No communicationlog(m/p) steps

Block Data Layout of an m=16-point FFT on p=4 Processors

Page 19: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Cyclic Layout of 1D FFT

° Cyclic layout (consecutive words map to consecutive processors)

° No communication in first log(m/p) steps

° Communication in last log(p) steps

19

No communicationlog(m/p) steps

CommunicationRequired

log(p) steps

Cyclic Data Layout of an m=16-point FFT on p=4 Processors

Page 20: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Parallel Complexity

° m = vector size, p = number of processors

° f = time per flop = 1

° = latency for message

° = time per word in a message

° Time(block_FFT) = Time(cyclic_FFT) =

2*m*log(m)/p … perfectly parallel flops

+ log(p) * message/stage, log p stages

+ m*log(p)/p * … m/p words/message

20

Page 21: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

FFT With “Transpose”

° If we start with a cyclic layout for first log(m/p) steps, there is no communication

° Then transpose the vector for last log(p) steps

° All communication is in the transpose

° Note: This example has log(m/p) = log(p)

• If log(m/p) < log(p) more phases/layouts will be needed

• We will work with this assumption for simplicity

21

No communicationlog(m/p) steps

No communicationlog(p) steps

Transpose

Transpose Algorithm for an m=16-point FFT on p=4 Processors

Page 22: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Why is the Communication Step Called a Transpose?

° Analogous to transposing an array

° View as a 2D array of m/p by p

° Note: same idea is useful for caches

22

Page 23: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Parallel Complexity of the FFT with Transpose

° If no communication is pipelined (overestimate!)

° Time(transposeFFT) =

2*m*log(m)/p same as before

+ (p-1) * was log(p) *

+ m*(p-1)/p2 * was m* log(p)/p

° If communication is pipelined, so we do not pay for p-1 messages, the second term becomes simply , rather than (p-1)

° This is close to optimal. See LogP paper for details.

° See also following papers• A. Sahai, “Hiding Communication Costs in Bandwidth Limited FFT”

• R. Nishtala et al, “Optimizing bandwidth limited problems using one-sided communication”

23

Page 24: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Sequential Communication Complexity of the FFT

° How many words need to be moved between main memory and cache of size M to do the FFT of size m?

° Thm (Hong, Kung, 1981): #words = (m log m / log M)

° Proof follows from each word of data being reusable only log M times

° Attained by transpose algorithm

° Sequential algorithm “simulates” parallel algorithm

° Imagine we have P = m/M processors, so each processor stores and works on O(M) words

° Each local computation phase in parallel FFT replaced by similar phase working on cache resident data in sequential FFT

° Each communication phase in parallel FFT replaced by reading/writing data from/to cache in sequential FFT

° Attained by recursive, “cache-oblivious” algorithm (FFTW)

24

Page 25: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Comment on the 1D Parallel FFT

° The above algorithm leaves data in bit-reversed order• Some applications can use it this way, like Poisson

• Others require another transpose-like operation

° Other parallel algorithms also exist• A very different 1D FFT is due to Edelman

- http://www-math.mit.edu/~edelman

• Based on the Fast Multipole algorithm

• Less communication for non-bit-reversed algorithm

• Approximates FFT

25

Page 26: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Higher Dimensional FFTs

° FFTs on 2 or more dimensions are defined as 1D FFTs on vectors in all dimensions.

• 2D FFT does 1D FFTs on all rows and then all columns

° There are 3 obvious possibilities for the 2D FFT:• (1) 2D blocked layout for matrix, using parallel 1D FFTs for each

row and column

• (2) Block row layout for matrix, using serial 1D FFTs on rows, followed by a transpose, then more serial 1D FFTs

• (3) Block row layout for matrix, using serial 1D FFTs on rows, followed by parallel 1D FFTs on columns

• Option 2 is best, if we overlap communication and computation

° For a 3D FFT the options are similar• 2 phases done with serial FFTs, followed by a transpose for 3rd

• can overlap communication with 2nd phase in practice

26

Page 27: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Bisection Bandwidth

° FFT requires one (or more) transpose operations:• Every processor sends 1/p-th of its data to each other one

° Bisection Bandwidth limits this performance• Bisection bandwidth is the bandwidth across the narrowest part

of the network

• Important in global transpose operations, all-to-all, etc.

° “Full bisection bandwidth” is expensive• Fraction of machine cost in the network is increasing

• Fat-tree and full crossbar topologies may be too expensive

• Especially on machines with 100K and more processors

• SMP clusters often limit bandwidth at the node level

° Goal: overlap communication and computation

27

Page 28: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Modified LogGP Model

° LogGP: no overlap

P0

P1

osend

L

orecv

EEL: end to end latency (1/2 roundtrip)g: minimum time between small message sendsG: gap per byte for larger messages

° LogGP: with overlap

P0

P1

g

28

Page 29: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Historical Perspective

0

5

10

15

20

25

use

c

Added Latency

Send Overhead (Alone)

Send & Rec Overhead

Rec Overhead (Alone)

• Potential performance advantage for fine-grained, one-sided programs• Potential productivity advantage for irregular applications

½ round-trip latency

29

Page 30: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

General Observations

° “Overlap” means computing and communicating simultaneously, (or communication with other communication, aka pipelining

° Rest of slide about comm/comp

° The overlap potential is the difference between the gap and overhead

• No potential if CPU is tied up throughout message send

- E.g., no send-side DMA

• Potential grows with message size for machines with DMA (per byte cost is handled by network, i.e. NIC)

• Potential grows with amount of network congestion

- Because gap grows as network becomes saturated

° Remote overhead is 0 for machine with RDMA

30

Page 31: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

GASNet Communications System

GASNet offers put/get communication

° One-sided: no remote CPU involvement required in API (key difference with MPI)

• Message contains remote address

• No need to match with a receive

• No implicit ordering required

Compiler-generated code

Language-specific runtime

GASNet

Network Hardware

° Used in language runtimes (UPC, etc.)

° Fine-grained and bulk transfers

° Split-phase communication

31

Page 32: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Performance of 1-Sided vs 2-sided Communication: GASNet vs MPI

0

100000

200000

300000

400000

500000

600000

700000

800000

900000

10 100 1,000 10,000 100,000 1,000,000 10,000,000

Size (bytes)

Ban

dw

idth

(K

B/s

)

gasnet_put_nbi_bulk

MPI Flood

Relative BW (put_nbi_bulk/MPI_Flood)

1.0

1.2

1.4

1.6

1.8

2.0

2.2

2.4

10 1000 100000 10000000

Size (bytes)

Up is

good

° Comparison on Opteron/InfiniBand – GASNet’s vapi-conduit and OSU MPI 0.9.5

° Up to large message size (> 256 Kb), GASNet provides up to 2.2X improvement in streaming bandwidth

° Half power point (N/2) differs by one order of magnitude32

Page 33: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

(up

is

go

od

)

GASNet usually reaches saturation bandwidth before MPI - fewer costs to amortize

Usually outperforms MPI at medium message sizes - often by a large margin

GASNet: Performance for mid-range message sizes

Flood Bandwidth for 4KB messages

1189547

420

190

702

152

252

(13,196)

750

714231

763223

679

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Elan3/Alpha Elan4/IA64 Myrinet/x86 IB/G5 IB/Opteron SP/Fed Altix

Pe

rce

nt

HW

pe

ak

MPI

GASNet

33

Page 34: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

NAS FT Benchmark Case Study

° Performance of Exchange (All-to-all) is critical• Communication to computation ratio increases with faster, more

optimized 1-D FFTs (used best available, from FFTW)

• Determined by available bisection bandwidth

• Between 30-40% of the applications total runtime

° Assumptions• 1D partition of 3D grid

• At most N processors for N^3 grid

• HPC Challenge benchmark has large 1D FFT (can be viewed as 3D or more with proper roots of unity)

° Reference for details• “Optimizing Bandwidth Limited Problems Using One-side

Communication and Overlap”, C. Bell, D. Bonachea, R. Nishtala, K. Yelick, IPDPS’06 (www.eecs.berkeley.edu/~rajashn)

• Started as CS267 project

34

Page 35: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Performing a 3D FFT (1/3)

° NX x NY x NZ elements spread across P processors

° Will Use 1-Dimensional Layout in Z dimension• Each processor gets NZ / P “planes” of NX x NY elements per

plane

1D Partition

NX

NY

Example: P = 4

NZ

p0p1

p2p3

NZ/P

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick 35

Page 36: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Performing a 3D FFT (2/3)

° Perform an FFT in all three dimensions

° With 1D layout, 2 out of the 3 dimensions are local while the last Z dimension is distributed

Step 1: FFTs on the columns(all elements local)

Step 2: FFTs on the rows (all elements local)

Step 3: FFTs in the Z-dimension(requires communication)

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

04/17/2012 CS267 Lecture 25

36

Page 37: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Performing the 3D FFT (3/3)

° Can perform Steps 1 and 2 since all the data is available without communication

° Perform a Global Transpose of the cube• Allows step 3 to continue

Transpose

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick 37

Page 38: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

The Transpose

° Each processor has to scatter input domain to other processors

• Every processor divides its portion of the domain into P pieces

• Send each of the P pieces to a different processor

° Three different ways to break it up the messages

1. Packed Slabs (i.e. single packed “All-to-all” in MPI parlance)

2. Slabs

3. Pencils

° Going from approach Packed Slabs to Slabs to Pencils leads to

• An order of magnitude increase in the number of messages

• An order of magnitude decrease in the size of each message

° Why do this? Slabs and Pencils allow overlapping communication and computation and leverage RDMA support in modern networks

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick 38

Page 39: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Algorithm 1: Packed Slabs

Example with P=4, NX=NY=NZ=16

1. Perform all row and column FFTs

2. Perform local transpose • data destined to a remote

processor are grouped together

3. Perform P puts of the data

Local transpose

put to proc 0

put to proc 1

put to proc 2

put to proc 3

• For 5123 grid across 64 processors– Send 64 messages of 512kB each

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 40: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Bandwidth Utilization

° NAS FT (Class D) with 256 processors on Opteron/InfiniBand

• Each processor sends 256 messages of 512kBytes

• Global Transpose (i.e. all to all exchange) only achieves 67% of peak point-to-point bidirectional bandwidth

• Many factors could cause this slowdown- Network contention

- Number of processors with which each processor communicates

° Can we do better?

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 41: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Algorithm 2: Slabs

° Waiting to send all data in one phase bunches up communication events

° Algorithm Sketch

• for each of the NZ/P planes- Perform all column FFTs

- for each of the P “slabs”

(a slab is NX/P rows)– Perform FFTs on the rows in the slab– Initiate 1-sided put of the slab

• Wait for all puts to finish

• Barrier

° Non-blocking RDMA puts allow data movement to be overlapped with computation.

° Puts are spaced apart by the amount of time to perform FFTs on NX/P rows

Start computation for next plane

plane 0

put to proc 0

put to proc 1

put to proc 2

put to proc 3

• For 5123 grid across 64 processors– Send 512 messages of

64kB each

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 42: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Algorithm 3: Pencils

° Further reduce the granularity of communication

• Send a row (pencil) as soon as it is ready

° Algorithm Sketch

• For each of the NZ/P planes- Perform all 16 column FFTs

- For r=0; r<NX/P; r++ – For each slab s in the plane

• Perform FFT on row r of slab s• Initiate 1-sided put of row r

• Wait for all puts to finish

• Barrier

° Large increase in message count

° Communication events finely diffused through computation

• Maximum amount of overlap

• Communication starts early

plane 00000111122223333

Start computation for next plane

• For 5123 grid across 64 processors– Send 4096 messages

of 8kB each

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 43: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Communication Requirements

° 5123 across 64 processors

• Alg 1: Packed Slabs- Send 64 messages of 512kB

• Alg 2: Slabs- Send 512 messages of 64kB

• Alg 3: Pencils- Send 4096 messages of 8kB

With Slabs GASNet is slightly faster than MPI

GASNet achieves close to peak bandwidth with Pencils but MPI is about 50% less efficient at 8k With the message sizes in Packed Slabs both

comm systems reach the same peak bandwidth

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 44: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Platforms

Name Processor Network Software

Opteron/Infiniband

“Jacquard” @ NERSC

Dual 2.2 GHz Opteron (320 nodes @ 4GB/node)

Mellanox Cougar InfiniBand 4x HCA

Linux 2.6.5, Mellanox VAPI, MVAPICH 0.9.5, Pathscale CC/F77 2.0

Alpha/Elan3

“Lemieux” @ PSC

Quad 1 GHz Alpha 21264 (750 nodes @ 4GB/node)

Quadrics QsNet1 Elan3 /w dual rail (one rail used)

Tru64 v5.1, Elan3 libelan 1.4.20, Compaq C V6.5-303, HP Fortra Compiler X5.5A-4085-48E1K

Itanium2/Elan4

“Thunder” @ LLNL

Quad 1.4 Ghz Itanium2 (1024 nodes @ 8GB/node)

Quadrics QsNet2 Elan4 Linux 2.4.21-chaos, Elan4 libelan 1.8.14, Intel ifort 8.1.025, icc 8.

1.029

P4/Myrinet

“FSN” @

UC Berkeley Millennium Cluster

Dual 3.0 Ghz Pentium 4 Xeon (64 nodes @ 3GB/node)

Myricom Myrinet 2000 M3S-PCI64B

Linux 2.6.13, GM 2.0.19, Intel ifort 8.1-20050207Z, icc 8.1-20050207Z

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick 44

Page 45: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Comparison of Algorithms

° Compare 3 algorithms against original NAS FT

• All versions including Fortran use FFTW for local 1D FFTs

• Largest class that fit in the memory (usually class D)

° All UPC flavors outperform original Fortran/MPI implantation by at least 20%

• One-sided semantics allow even exchange based implementations to improve over MPI implementations

• Overlap algorithms spread the messages out, easing the bottlenecks

• ~1.9x speedup in the best case

up is good

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 46: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Time Spent in Communication

° Implemented the 3 algorithms in MPI using Irecvs and Isends

° Compare time spent initiating or waiting for communication to finish

• UPC consistently spends less time in communication than its MPI counterpart

• MPI unable to handle pencils algorithm in some cases

312.8 34.1 28.6

MP

I C

rash

(P

en

cils

)

dow

n is

goo

d

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick

Page 47: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Performance Summaryup is good

Source: R. Nishtala, C. Bell, D. Bonachea, K. Yelick 47

Page 48: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

FFT Performance on BlueGene/P

HPC Challenge Peak as of July 09 is ~4.5 Tflops on 128k Cores

• PGAS implementations consistently outperform MPI

• Leveraging communication/computation overlap yields best performance

• More collectives in flight and more communication leads to better performance

• At 32k cores, overlap algorithms yield 17% improvement in overall application time

• Numbers are getting close to HPC record

• Future work to try to beat the record

04/17/2012 CS267 Lecture 25 48

Page 49: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

FFT Performance on Cray XT4

° 1024 Cores of the Cray XT4• Uses FFTW for local FFTs

• Larger the problem size the more effective the overlap

4904/17/2012

Page 50: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

FFTW – Fastest Fourier Transform in the West

° www.fftw.org

° Produces FFT implementation optimized for• Your version of FFT (complex, real,…)

• Your value of n (arbitrary, possibly prime)

• Your architecture

• Very good sequential performance (competes with Spiral)

° Similar in spirit to PHIPAC/ATLAS/OSKI/Sparsity

° Won 1999 Wilkinson Prize for Numerical Software

° Widely used • Added MPI versions in v3.3 Beta 1 (June 2011)

• Layout constraints from users/apps + network differences are hard to support

50

Page 51: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

FFTW

• C library for real & complex FFTs (arbitrary size/dimensionality)

• Computational kernels (80% of code) automatically generated

• Self-optimizes for your hardware (picks best composition of steps)= portability + performance

(+ parallel versions for threads & MPI)

free software: http://www.fftw.org/

the “FastestFourier Tranform

in the West”

51

Page 52: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012

FFTW performancepower-of-two sizes, double precision

833 MHz Alpha EV6 2 GHz PowerPC G5

2 GHz AMD Opteron 500 MHz Ultrasparc IIe

52

Page 53: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012

FFTW performancenon-power-of-two sizes, double precision

833 MHz Alpha EV6

2 GHz AMD Opteron

unusual: non-power-of-two sizesreceive as much optimization

as powers of two

…because welet the code do the optimizing

53

Page 54: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012

FFTW performancedouble precision, 2.8GHz Pentium IV: 2-way SIMD (SSE2)

powers of two

…because welet the code write itself

non-powers-of-two

exploiting CPU-specificSIMD instructions

(rewriting the code)is easy

54

Page 55: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Why is FFTW fast?three unusual features

FFTW implements many FFT algorithms: A planner picks the best composition

by measuring the speed of different combinations.

The resulting plan is executedwith explicit recursion:

enhances locality

3

1

2 The base cases of the recursion are codelets:highly-optimized dense code

automatically generated by a special-purpose “compiler”55

Page 56: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012

FFTW is easy to use

{complex x[n];plan p;

p = plan_dft_1d(n, x, x, FORWARD, MEASURE);...execute(p); /* repeat as needed */...destroy_plan(p);

}

Key fact: usually,many transforms of same size

are required.56

Page 57: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Why is FFTW fast?three unusual features

FFTW implements many FFT algorithms: A planner picks the best composition

by measuring the speed of different combinations.

The resulting plan is executedwith explicit recursion:

enhances locality

3

1

2 The base cases of the recursion are codelets:highly-optimized dense code

automatically generated by a special-purpose “compiler”57

Page 58: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

But traditional implementation is non-recursive,breadth-first traversal:

log2 n passes over whole array

FFTW Uses Natural Recursion

Size 8 DFT

Size 4 DFT Size 4 DFT

Size 2 DFT Size 2 DFT Size 2 DFT Size 2 DFT

p = 2 (radix 2)

58

Page 59: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

breadth-first, but with blocks of size = cache

Traditional cache solution: Blocking

Size 8 DFT

Size 4 DFT Size 4 DFT

Size 2 DFT Size 2 DFT Size 2 DFT Size 2 DFT

p = 2 (radix 2)

…requires program specialized for cache size

59

Page 60: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012

Recursive Divide & Conquer is Good

Size 8 DFT

Size 4 DFT Size 4 DFT

Size 2 DFT Size 2 DFT Size 2 DFT Size 2 DFT

p = 2 (radix 2)

eventually small enough to fit in cache…no matter what size the cache is

(depth-first traversal) [Singleton, 1967]

60

Page 61: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Cache Obliviousness

• A cache-oblivious algorithm does not know the cache size— it can be optimal for any machine & for all levels of cache simultaneously

• Exist for many other algorithms, too [Frigo et al. 1999]

— all via the recursive divide & conquer approach

61

Page 62: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Why is FFTW fast?three unusual features

FFTW implements many FFT algorithms: A planner picks the best composition

by measuring the speed of different combinations.

The resulting plan is executedwith explicit recursion:

enhances locality

3

1

2 The base cases of the recursion are codelets:highly-optimized dense code

automatically generated by a special-purpose “compiler”62

Page 63: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Spiral

° Software/Hardware Generation for DSP Algorithms

° Autotuning not just for FFT, many other signal processing algorithms

° Autotuning not just for software implementation, hardware too

° More details at• www.spiral.net

- On-line generators available

• Survey talk at www.spiral.net/pdf-pueschel-feb07.pdf

04/17/2012 CS267 Lecture 25 63

Page 64: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 2564

Motifs – so far this semester

The Motifs (formerly “Dwarfs”) from “The Berkeley View” (Asanovic et al.)

Motifs form key computational patterns

64

Page 65: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Rest of the semester

° Parallel Sorting; Dynamic Load Balancing (Jim Demmel)

° Computational Astrophysics (Julian Borrill)

° Materials Project (Kristin Persson)

04/17/2012 CS267 Lecture 25 65

Page 66: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Extra slides

04/17/2012 CS267 Lecture 25 66

Page 67: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Rest of the semester

° Parallel Graph Algorithms (Aydin Buluc)

° Frameworks for multiphysics problems (John Shalf)

° Climate modeling (Michael Wehner)

° Parallel Sorting; Dynamic Load Balancing (Jim Demmel)

° ??

° Computational Astrophysics (Julian Borrill)

° The future of Exascale Computing (Kathy Yelick)

04/17/2012 CS267 Lecture 25 67

Page 68: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Rest of the semester

° Architecting Parallel Software with Patterns, Kurt Keutzer (2 lectures)

° Cloud Computing (Matei Zaharia)

° Parallel Graph Algorithms (Kamesh Madduri)

° Frameworks for multiphysics problems (John Shalf)

° Climate modeling (Michael Wehner)

° Parallel Sorting; Dynamic Load Balancing (Kathy Yelick)

° Petascale simulation of blood flow on 200K cores and heterogeneous processors (Richard Vuduc – 2010 Gordon Bell Prize winner)

° Computational Astrophysics (Julian Borrill)

° The future of Exascale Computing (Kathy Yelick)04/17/2012 CS267 Lecture 25 68

Page 69: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

3D FFT Operation with Global Exchange

Cachelines

1D-FFT Columns

1D-FFT (Columns)

Transpose + 1D-FFT

(Rows)1D-FFT Rows

Exchange (Alltoall)

send to Thread 0

send to Thread 1

send to Thread 2

Last 1D-FFT(Thread 0’s view)

Transpose + 1D-FFT

Divide rows among threads

° Single Communication Operation (Global Exchange) sends THREADS large messages

° Separate computation and communication phases

69

Page 70: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Communication Strategies for 3D FFT

Source: Kathy Yelick, Chris Bell, Rajesh Nishtala, Dan Bonachea

chunk = all rows with same destination

pencil = 1 row

° Three approaches:• Chunk:

- Wait for 2nd dim FFTs to finish

- Minimize # messages

• Slab:

- Wait for chunk of rows destined for 1 proc to finish

- Overlap with computation

• Pencil:

- Send each row as it completes

- Maximize overlap and

- Match natural layout

slab = all rows in a single plane with same destination

70

Page 71: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Decomposing NAS FT Exchange into Smaller Messages

Exchange (Default) 512 Kbytes

Slabs (set of contiguous rows) 65 Kbytes

Pencils (single row) 16 Kbytes

° Three approaches:• Chunk:

- Wait for 2nd dim FFTs to finish

• Slab:

- Wait for chunk of rows destined for 1 proc to finish

• Pencil:

- Send each row as it completes

° Example Message Size Breakdown for • Class D (2048 x 1024 x 1024)

• at 256 processors

71

Page 72: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Overlapping Communication

° Goal: make use of “all the wires”• Distributed memory machines allow for asynchronous

communication

• Berkeley Non-blocking extensions expose GASNet’s non-blocking operations

° Approach: Break all-to-all communication• Interleave row computations and row communications since 1D-

FFT is independent across rows

• Decomposition can be into slabs (contiguous sets of rows) or pencils (individual row)

• Pencils allow:

- Earlier start for communication “phase” and improved local cache use

- But more smaller messages (same total volume)

72

Page 73: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

NAS FT: UPC Non-blocking MFlops

° Berkeley UPC compiler support non-blocking UPC extensions

° Produce 15-45% speedup over best UPC Blocking version

° Non-blocking version requires about 30 extra lines of UPC code

0

200

400

600

800

1000

MF

lops

per

Thr

ead

MFlop rate in UPC Blocking and Non-blocking FT

UPC BlockingUPC Non-Blocking

73

Page 74: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

NAS FT Variants Performance Summary

° Shown are the largest classes/configurations possible on each test machine

° MPI not particularly tuned for many small/medium size messages in flight (long message matching queue depths)

74

Page 75: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Pencil/Slab optimizations: UPC vs MPI

° Same data, viewed in the context of what MPI is able to overlap

° “For the amount of time that MPI spends in communication, how much of that time can UPC effectively overlap with computation”

° On Infiniband, UPC overlaps almost all the time the MPI spends in communication

° On Elan3, UPC obtains more overlap than MPI as the problem scales up

0

0.2

0.4

0.6

0.8

1

Fraction of Unoverlapped MPI Communication that UPC Effectively Overlaps with ComputationBest MPI and Best UPC for each System (Class/NProcs)

Myrinet 64

InfiniBand 256Elan3 256

Elan3 512

Tim

e S

pent

in C

omm

unic

atio

n (B

est

MP

I)

75

Page 76: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Summary of Overlap in FFTs

° One-sided communication has performance advantages• Better match for most networking hardware

- Most cluster networks have RDMA support

- Machines with global address space support (Cray X1, SGI Altix) shown elsewhere

• Smaller messages may make better use of network

- Spread communication over longer period of time

- Postpone bisection bandwidth pain

• Smaller messages can also prevent cache thrashing for packing

- Avoid packing overheads if natural message size is reasonable

76

Page 77: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Solving Poisson Equation with FFT (1/2)° 1D Poisson equation: solve L1x = b where

2 -1

-1 2 -1

-1 2 -1

-1 2 -1

-1 2

L1 =2-1 -1

Graph and “stencil”

° 2D Poisson equation: solve L2x = b where

4 -1 -1

-1 4 -1 -1

-1 4 -1

-1 4 -1 -1

-1 -1 4 -1 -1

-1 -1 4 -1

-1 4 -1

-1 -1 4 -1

-1 -1 4

L2=

4

-1

-1

-1

-1

Graph and “5 point stencil”

3D case is analogous (7 point stencil) 77

Page 78: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

Solving 2D Poisson Equation with FFT (2/2)

° Use facts that• L1 = F · D · FT is eigenvalue/eigenvector decomposition, where

- F is very similar to FFT (imaginary part)

– F(j,k) = (2/(N+1))1/2 · sin(j k /(N+1))- D diagonal matrix of eigenvalues

– D(j,j) = 2(1 – cos(j / (N+1)) )

• 2D Poisson same as solving L1 · X + X · L1 = B where

- X square matrix of unknowns at each grid point, B square too

° Substitute L1 = F · D · FT into 2D Poisson to get algorithm• Perform 2D “FFT” on B to get B’ = FT ·B · F

• Solve D X’ + X’ D = B’ for X’: X’(j,k) = B’(j,k)/ (D(j,j) + D(k,k))

• Perform inverse 2D “FFT” on X’ to get X: get X = F ·X’ · FT

° 3D Poisson analogous

04/17/2012 CS267 Lecture 25 78

Page 79: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Solving Poisson’s Equation with the FFT

° Express any 2D function defined in 0 x,y 1 as a series x,y= j k jk sin( jx) sin( ky)

• Here jk are called Fourier coefficient of (x,y)

° The inverse of this is: jk = 4 (x,y) sin( jx) sin( ky)

° Poisson’s equation /x2 + 2 /y2 = f(x,y) becomesj k (-j2 - k2) jk sin( jx) sin( ky)

j k fjk sin( jx) sin( ky)

° where fjk are Fourier coefficients of f(x,y)

andfx,y= j k fjk sin( jx) sin( ky)

° This implies PDE can be solved exactly algebraically jk = fjk / (-j2 - k2) 79

Page 80: Parallel Spectral Methods: Fast Fourier Transform (FFTs) with Applications

04/17/2012 CS267 Lecture 25

Solving Poisson’s Equation with the FFT

° So solution of Poisson’s equation involves the following steps

° 1) Find the Fourier coefficients fjk of f(x,y) by performing integral

° 2) Form the Fourier coefficients of by

jk = fjk / (-j2 - k2)

° 3) Construct the solution by performing sum (x,y)

° There is another version of this (Discrete Fourier Transform) which deals with functions defined at grid points and not directly the continuous integral

• Also the simplest (mathematically) transform uses exp(-2ijx) not sin( jx)

• Let us first consider 1D discrete version of this case

• PDE case normally deals with discretized functions as these needed for other parts of problem

80