Implementation of 2D Domain Decomposition in the UCAN Gyrokinetic Particle-in-Cell Code and Resulting Performance of UCAN2 (Communications in Computational Physics, 2018)
The massively parallel, nonlinear, three-dimensional (3D), toroidal, electrostatic,gyrokinetic, particle-in-cell (PIC), Cartesian geometry UCAN code, with particleions and adiabatic electrons, has been successfully exercised to identify non-diffusivetransport characteristics in present day tokamak discharges. The limitation in applyingUCAN to larger scale discharges is the 1D domain decomposition in the toroidal (orz-) direction for massively parallel implementation using MPI which has restricted thecalculations to a few hundred ion Larmor radii or gyroradii per plasma minor radius.To exceed these sizes, we have implemented 2D domain decomposition in UCAN withthe addition of the y-direction to the processor mix. This has been facilitated by useof relevant components in the P2LIB library of field and particle management routinesdeveloped for UCLA's UPIC Framework of conventional PIC codes. The gyro-averagingspecific to gyrokinetic codes is simplified by the use of replicated arraysfor efficient charge accumulation and force deposition. The 2D domain-decomposedUCAN2 code reproduces the original 1D domain nonlinear results within round-off.Benchmarks of UCAN2 on the Cray XC30 Edison at NERSC demonstrate ideal scalingwhen problem size is increased along with processor number up to the largest powerof 2 available, namely 131,072 processors. These particle weak scaling benchmarksalso indicate that the 1 nanosecond per particle per time step and 1 TFlops barriers areeasily broken by UCAN2 with 1 billion particles or more and 2000 or more processors.