Modern high-performance computer architectures highlight parallelism, heterogeneity, and re-configurability to provide both performance and power efficiency enhancements. These degrees of complexity present new challenges to computational physicists, who are required to remap existing software so that simulation tools run efficiently on novel computer architectures. In particular, plasma simulations using the particle-in-cell (PIC) method are widely used on a variety of topics including inertial fusion energy, plasma-based acceleration, space weather, and astrophysics. The goal of this project is to develop a set of general skeleton codes that can be used for experimentation, education, and for developing adaptable PIC software for next-generation many-core architectures. The activities supported here will focus on incorporating the best software practices into production codes for use on present and future high-performance computers, on experimenting with novel ideas for load balancing and tradeoffs in performance and accuracy, for analyzing and storing large data sets, and on developing "desktop" versions of PIC codes for use by a wide audience and broaden their impact.
This project will provide scientists with powerful simulation tools by tapping into the vast computing power of graphic cards commonly used for video games. These tools will enable scientists to pursue research in plasma physics, to build compact particle accelerators, to understand cosmic rays, and to make fusion a practical clean energy source for mankind. The tools developed here will also serve as teaching tools for students to learn complex aspects of plasma physics. This project will provide unique training and research opportunities for students pursuing a career in physics and hands-on experience with state-of-the-art techniques suitable for modern high-performance computational platforms.