Designing Particle-in-Cell Algorithms for Advanced Computer Architectures: Application to GPUs

POSTER

Abstract

New emerging multi-core technologies can achieve high performance, but only in special, restricted cases. For example, modern graphic processors units (GPUs) can achieve TFLOP performance in single precision calculations and have low power usage per FLOP. However, the potential performance of GPUs often comes with a price. They are complex and difficult to program effectively. Therefore, algorithms often need to be redesigned to make effective use of these processors. We will describe two approaches to implementing Particle-in-Cell (PIC) codes on GPUs. One is more general and applicable to other emerging multi-core technologies. We will conclude with lessons learned that can be applied to other problems. Some of these lessons will be familiar to those who have programmed vector processors in the past, others will be new. We have also implemented a real-time visualization feature so that the user can interact on the screen with the simulation, watching the virtual particles movement, enabling real time rotation, translation, and zooming of simulation output (EM field intensity, charge density, current) . This was implemented as part of a fully relativistic PIC code that runs of CUDA enabled devices using the CUDA API.

Authors

  • V.K. Decyk

    • GoLP/Instituto de Plasmas e Fus\~ao Nuclear, Instituto Superior T\'ecnico, Lisboa, Portugal
  • T.V. Singh

    • GoLP/Instituto de Plasmas e Fus\~ao Nuclear, Instituto Superior T\'ecnico, Lisboa, Portugal
  • P. Abreu

    • GoLP/Instituto de Plasmas e Fus\~ao Nuclear, Instituto Superior T\'ecnico, Lisboa, Portugal
  • R.A. Fonseca

    • GoLP/Instituto de Plasmas e Fus\~ao Nuclear, Instituto Superior T\'ecnico, Lisboa, Portugal
  • L.O. Silva

    • GoLP/Instituto de Plasmas e Fus\~ao Nuclear, Instituto Superior T\'ecnico, Lisboa, Portugal