TY - GEN
T1 - Hybrid-view programming of nuclear fusion simulation code in the PGAS parallel programming language XcalableMP
AU - Tsugane, Keisuke
AU - Nuga, Hideo
AU - Boku, Taisuke
AU - Murai, Hitoshi
AU - Sato, Mitsuhisa
AU - Tang, William
AU - Wang, Bei
N1 - Publisher Copyright:
© 2014 IEEE.
PY - 2014
Y1 - 2014
N2 - 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.
AB - 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.
KW - GTC-P
KW - Nuclear Fusion Simulation
KW - Partitioned Global Address Space
KW - PIC code
KW - XcalableMP
UR - https://www.scopus.com/pages/publications/84988293135
UR - https://www.scopus.com/pages/publications/84988293135#tab=citedBy
U2 - 10.1109/PADSW.2014.7097864
DO - 10.1109/PADSW.2014.7097864
M3 - Conference contribution
AN - SCOPUS:84988293135
T3 - Proceedings of the International Conference on Parallel and Distributed Systems - ICPADS
SP - 640
EP - 647
BT - 2014 20th IEEE International Conference on Parallel and Distributed Systems, ICPADS 2014 - Proceedings
PB - IEEE Computer Society
T2 - 20th IEEE International Conference on Parallel and Distributed Systems, ICPADS 2014
Y2 - 16 December 2014 through 19 December 2014
ER -