Particle-in-cell algorithms for plasma simulations on heterogeneous architectures
Universitat Politecnica de Catalunya (UPC)
Universitat Politecnica de Catalunya, 2016
@article{saez2016particle,
title={Particle-in-cell algorithms for plasma simulations on heterogeneous architectures},
author={S{‘a}ez Pous, Xavier and others},
year={2016},
publisher={Universitat Polit{‘e}cnica de Catalunya}
}
During the last two decades, High-Performance Computing (HPC) has grown rapidly in performance by improving single-core processors at the cost of a similar growth in power consumption. The single-core processor improvement has led many scientists to exploit mainly the process level parallelism in their codes. However, the performance of HPC systems is becoming increasingly limited by power consumption and power density, which have become a primary concern for the design of new computer systems. As a result, new supercomputers are designed based on the power efficiency provided by new homogeneous and heterogeneous architectures. The growth in computational power has introduced a new approach to science, Computational Physics. Its impact on the study of nuclear fusion and plasma physics has been very significant. This is because the experiments are difficult and expensive to perform whereas computer simulations of plasma are an efficient way to progress. Particle-In-Cell (PIC) is one of the most used methods to simulate plasma. The improvement in the processing power has enabled an increase in the size and complexity of the PIC simulations. Most PIC codes have been designed with a strong emphasis on the physics and have traditionally included only process level parallelism. This approach has not taken advantage of multiprocessor platforms. Therefore, these codes exploit inefficiently the new computing platforms and, as a consequence, they are still limited to using simplified models. The aim of this thesis is to incorporate in a PIC code the latest technologies available in computer science in order to take advantage of the upcoming multiprocessor supercomputers. This will enable an improvement in the simulations, either by introducing more physics in the code or by incorporating more detail to the simulations. This thesis analyses a PIC code named EUTERPE on different computing platforms. EUTERPE is a production code used to simulate fusion plasma instabilities in fusion reactors. It has been implemented for traditional HPC clusters and it has been parallelized prior to this work using only Message Passing Interface (MPI). Our study of its scalability has reached up to tens of thousands of processors, which is several orders of magnitude higher than the scalability achieved when this thesis was initiated. This thesis also describes the strategies adopted for porting a PIC code to a multi-core architecture, such as introducing thread level parallelism, distributing the work among different computing devices, and developing a new thread-safe solver. These strategies have been evaluated by applying them to the EUTERPE code. With respect to heterogeneous architectures, it has been possible to port this kind of plasma physics codes by rewriting part of the code or by using a programming model called OmpSs. This programming model is specially designed to make this computing power easily available to scientists without requiring expert knowledge on computing. Last but not least, this thesis should not be seen as the end of a way, but rather as the beginning of a work to extend the physics simulated in fusion codes through exploiting available HPC resources.
July 30, 2016 by hgpu