dc.description.abstract | A Particle-In-Cell code is a common particle simulation method often used to
simulate the behaviour of plasma. In this work, a parallel PIC
code is developed in CUDA, with a focus on how to adapt the method
for multiple GPUs. An electrostatic three dimensional PIC code is
developed, with an FFT-based solver using the cuFFT library.
Several issues related to parallelizing the PIC code are discussed, along
with the performance on one and two GPUs compared to the
CPU version we developed based on OpenMP and FFTW as a benchmark.
For most problem sizes, the application is found to be memory bound,
with the speed of the memory interface playing a larger role than
the double precision performance. Alternatives to some of the naive
solutions are discussed, with suggestions for how the simulation
could be implemented for a shared memory computer. Benchmarks were
performed on several GPU platforms including Nvidia Tesla K20 and GTX 980,
and the challenges of getting the implementations to simulate plasma
oscillations are discussed. | |