Recent increases in supercomputing power, driven by the multi-core revolution
and accelerators such as the IBM Cell processor, graphics processing units
(GPUs) and Intel's Many Integrated Core (MIC) technology have enabled kinetic
simulations of plasmas at unprecedented resolutions, but changing HPC
architectures also come with challenges for writing efficient numerical codes.
This paper describes the Plasma Simulation Code (PSC), an explicit,
electromagnetic particle-in-cell code with support for different order particle
shape functions. We focus on two distinguishing feature of the code:
patch-based load balancing using space-filling curves, and support for Nvidia
GPUs, which achieves substantial speed-up of up to more than 6x on the Cray XK7
architecture compared to a CPU-only implementation.