Scaling Optimization of the SIESTA MHD Code

POSTER

Abstract

SIESTA is a parallel three-dimensional plasma equilibrium code capable of resolving magnetic islands at high spatial resolutions for toroidal plasmas. Originally~designed to exploit small-scale~parallelism, SIESTA~has now been scaled to execute efficiently over several thousands of processors P. This scaling improvement was accomplished with minimal intrusion to the execution flow of the original version. First, the efficiency of the iterative solutions was improved by integrating the parallel tridiagonal block solver code BCYCLIC. Krylov-space generation in GMRES was then accelerated using a customized parallel matrix-vector multiplication algorithm. Novel parallel Hessian generation algorithms were integrated and memory access latencies were dramatically reduced through loop nest optimizations and data layout rearrangement. These optimizations sped up equilibria calculations by factors of 30-50. It is possible to compute solutions with granularity N/P near unity on extremely fine radial meshes (N\textgreater 1024 points).~Grid separation in SIESTA, which manifests itself primarily in the resonant components of the pressure far from rational surfaces, is strongly suppressed by finer meshes.~Large problem sizes of up to 300K simultaneous non-linear coupled equations have been solved on the NERSC supercomputers.

Authors

  • Sudip Seal

    Oak Ridge National Laboratory

  • Steve Hirshman

    Oak Ridge National Laboratory, Oak Ridge National Lab

  • Kalyan Perumalla

    Oak Ridge National Laboratory