Hybrid-view programming of nuclear fusion simulation code in the PGAS parallel programming language XcalableMP
2014 20th IEEE International Conference on Parallel and Distributed Systems (ICPADS) (2014)
Dec. 16, 2014 to Dec. 19, 2014
Keisuke Tsugane , Graduate School of Systems and Information Engineering, University of Tsukuba, Japan
Hideo Nuga , Japan Atomic Energy Agency, Japan
Taisuke Boku , Graduate School of Systems and Information Engineering, University of Tsukuba, Japan
Hitoshi Murai , Advanced Institute for Computational Science, RIKEN, Japan
Mitsuhisa Sato , Graduate School of Systems and Information Engineering, University of Tsukuba, Japan
William Tang , Prince Plasma Physics Laboratory, Princeton University, USA
Bei Wang , Princeton Institute for Computational Science and Engineering, Princeton University, USA
Recently, the Partitioned Global Address Space (PGAS) parallel programming model has emerged as a usable distributed memory programming model. XcalableMP (XMP) is a PGAS parallel programming language that extends base languages such as C and Fortran with directives in OpenMP-like style. XMP supports a global-view model that allows programmers to define global data and to map them to a set of processors, which execute the distributed global data as a single thread. In XMP, the concept of a coarray is also employed for local-view programming. In this study, we port Gyrokinetic Toroidal Code - Princeton (GTC-P), which is a three-dimensional PIC code developed at Princeton University to study the microturbulence phenomenon in magnetically confined fusion plasmas, to XMP as an example of hybrid memory model coding with the global-view and local-view programming models. In local-view programming, the coarray notation is simple and intuitive compared with Message Passing Interface (MPI) programming while the performance is comparable to that of the MPI version. Thus, because the global-view programming model is suitable for expressing the data parallelism for a field of grid space data, we implement a hybrid-view version using a global-view programming model to compute the field and a local-view programming model to compute the movement of particles. The performance is degraded by 5–25% compared with the original MPI version, but the hybrid-view version facilitates more natural data expression for static grid space data (in global-view model) and dynamic particle data (in local-view model), and it also increases the readability of the code for higher productivity.
Programming, Computational modeling, Data models, Arrays, Program processors, Distributed databases, Toroidal magnetic fields
K. Tsugane et al., "Hybrid-view programming of nuclear fusion simulation code in the PGAS parallel programming language XcalableMP," 2014 20th IEEE International Conference on Parallel and Distributed Systems (ICPADS), Hsinchu, Taiwan, 2014, pp. 640-647.