Download - Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Transcript
Page 1: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

1

Graham Lopez – Keeneland (http://keeneland.gatech.edu)17 July 2014

Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs

Page 2: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Acknowledgements

Brownian dynamics / SPME

Xing Liu and Edmond Chow, ''Large-scale Hydrodynamic Brownian

Simulations on Multicore and Manycore Architectures,'' In 28th IEEE International

Parallel & Distributed Processing Symposium (IPDPS), Phoenix, AZ, May 19-23,

2014.

Mitch Horton

Keeneland Project http://keeneland.gatech.edu

Jeff Vetter

Dick Glassbrook

2

Page 3: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

What is Brownian dynamics?3

Simulate motion of molecules, macromolecules, and

nanoparticles in a fluid environment

Page 4: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

What is Brownian dynamics?4

Simulate motion of molecules, macromolecules, and

nanoparticles in a fluid environment

Figure fromhttp://en.wikipedia.org/wiki/Brownian_motion

Page 5: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

What is Brownian dynamics?5

Simulate motion of molecules, macromolecules, and

nanoparticles in a fluid environment

Solute molecules treated explicitly; fluid is treated implicitly as

random forces

Page 6: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

What is Brownian dynamics?6

Simulate motion of molecules, macromolecules, and

nanoparticles in a fluid environment

Solute molecules treated explicitly; fluid is treated implicitly as

random forces

Page 7: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

What is Brownian dynamics?7

Simulate motion of molecules, macromolecules, and

nanoparticles in a fluid environment

Solute molecules treated explicitly; fluid is treated implicitly as

random forces

Add hydrodynamic interactions to BD: long-range interactions

of each particle on all other particles, mediated by the fluid

Page 8: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Matrix-free BD → PME

BD with hydrodynamic interactions require 3n x 3n dense

mobility matrices (n = number of particles) –

10k particles with 32GB (Liu, Chow)

8

Page 9: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Matrix-free BD → PME

BD with hydrodynamic interactions require 3n x 3n dense

mobility matrices (n = number of particles) –

10k particles with 32GB (Liu, Chow)

Replace the mobility matrix with a particle-mesh Ewald (PME)

summation –

Same* PME used in MD for electrostatic interactions

9

Page 10: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Matrix-free BD → PME

BD with hydrodynamic interactions require 3n x 3n dense

mobility matrices (n = number of particles) –

10k particles with 32GB (Liu, Chow)

Replace the mobility matrix with a particle-mesh Ewald (PME)

summation –

Same* PME used in MD for electrostatic interactions

Liu, Chow also showed that matrix-free was faster for as few

as 1k particles

*MD/PME operates with scalar E fields, BD/PME involves vector field of forces

10

Page 11: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Smooth Particle Mesh Ewald (SPME)

Ewald summation (Paul Peter Ewald) used to sum slowly

converging, infinite sums (e.g. Coulomb interaction in a crystal)

Short-range interactions summed in real space

Long-range interactions summed in recipricol space

11

Page 12: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Smooth Particle Mesh Ewald (SPME)

Ewald summation (Paul Peter Ewald) used to sum slowly

converging, infinite sums (e.g. Coulomb interaction in a crystal)

Short-range interactions summed in real space

Long-range interactions summed in recipricol space

12

Page 13: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Smooth Particle Mesh Ewald (SPME)13

Ewald summation (Paul Peter Ewald) used to sum slowly

converging, infinite sums (e.g. Coulomb interaction in a crystal)

Short-range interactions summed in real space

Long-range interactions summed in recipricol space

Would like to use an FFT, but this is easier with a regular mesh

Place particles on a regular mesh and use FFT

Page 14: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Smooth Particle Mesh Ewald (SPME)14

Ewald summation (Paul Peter Ewald) used to sum slowly

converging, infinite sums (e.g. Coulomb interaction in a crystal)

Short-range interactions summed in real space

Long-range interactions summed in recipricol space

Would like to use an FFT, but this is easier with a regular mesh

Place particles on a regular mesh and use FFT

Use cardinal B-splines to spread particle positions onto grid

points, and then interpolate back to original positions at the

end of the algorithm

Page 15: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm15

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 16: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm16

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 17: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm17

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 18: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm18

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 19: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm19

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 20: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm20

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 21: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm21

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 22: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm22

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back

to real space

6. Interpolate velocities back to

original particle positions

Page 23: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME algorithm23

1. Construct 'P' matrix

2. Spread particle forces

3. FFT the interpolation grid

4. Apply the influence function

5. iFFT interpolation grid back to

real space

6. Interpolate velocities back to

original particle positions

Page 24: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU implementation24

1. Construct P – custom kernel

2. Spread forces – SPMV (custom or CUSPARSE)

3. FFT – CUFFT

4. Influence function – custom kernel

5. iFFT – CUFFT

6. Interpolation – SPMV (custom or CUSPARSE)

Note: Spread → grid = P * forces;

Interpolation → vels = P^T * grid

Page 25: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU implementation - gotchas25

1. Construct P

a. register/memory usage

b. device utilization

2. Spread forces

a. memory access patterns

b. atomic operations

3. FFT

a. batched

Page 26: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU implementation - gotchas26

4. Influence function

a. memory bound

5. iFFT

a. batched

6. Interpolation (current bottleneck)

a. memory access patterns

b. atomic operations

c. CUSPARSE formatting

Page 27: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

1000 10000 1e+05Number of particles

0.01

0.1

1Ti

me (

sec.

)CPUGPU FermiGPU KeplerCUSPARSE FermiCUSPARSE Kepler

SPME GPU performance27

Page 28: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance28

Page 29: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance29

2x Xeon X5660 – 12 Cores / 12 threads1x M2090 Fermi OR 1x K20 Kepler

2x Xeon X5680 – 12 Cores / 24threads1x Xeon Phi 7120 – native mode

Page 30: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance30

2x Xeon X5660 – 12 Cores / 12 threads1x M2090 Fermi OR 1x K20 Kepler

2x Xeon X5680 – 12 Cores / 24threads2x Xeon Phi 7120 – hybrid algorithm

Page 31: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance31

Why does GPU version seem to struggle at larger input

values?

Page 32: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance32

Why does GPU version seem to struggle at larger input

values?

Look at the performance of the individual components of

the SPME algorithm

Page 33: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance33

Page 34: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance34

Page 35: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance35

Interpolation is just an SPMV, so what about CUSPARSE?

Page 36: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance36

Page 37: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance37

Page 38: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

SPME GPU performance38

Page 39: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Future work

Construct 'P' matrix in CSR format

Might help with interpolation rate-limiting step

39

Page 40: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Future work

Construct 'P' matrix in CSR format

Might help with interpolation rate-limiting step

Atomics vs. reductions

Might help with larger input sets

40

Page 41: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Future work

Construct 'P' matrix in CSR format

Might help with interpolation rate-limiting step

Atomics vs. reductions

Might help with larger input sets

Examine accuracy / performance of other interpolation orders

Is there a better way to choose alpha?

Scale out to multiple GPUs/nodes (PaRSEC)

41

Page 42: Brownian Dynamics Simulations with Hydrodynamic ... · Brownian Dynamics Simulations with Hydrodynamic Interactions on GPUs. Acknowledgements Brownian dynamics / SPME ... 1x Xeon

Thanks42

Questions?