Improved Parallelization of the SIESTA Magnetohydrodynamic Equilibrium Code Using Cyclic Reduction

POSTER

Abstract

SIESTA is a scalable iterative 3D MHD solver used to find ideal equilibria including islands and stochastic regimes. Its original design used SCALAPACK to parallelize the time-intensive calculation of the physics-based preconditioner involving the inverse of a large block-tridiagonal matrix. The algorithm was based on the Thomas algorithm. Scalability at small to moderate problem sizes was limited due to the sequential nature of the Thomas algorithm. Improved performance has been achieved by incorporating the BCYCLIC code, which uses cyclic reduction in addition to SCALAPACK, to attain 3D scalability with both the 2D block size and the 1D radial dimension. Runtime profile information and model semantics were used to identify scale-dependent bottlenecks of the code, resulting in a cumulative increase of speed over 10X and scalability utilizing a few thousand cores.

*Work supported in part by U.S. DOE under Contract DE-AC05-00OR22725 with UT-Battelle, LLC.

Authors

  • S. Seal

    • Oak Ridge National Laboratory
  • K. Perumalla

    • Oak Ridge National Laboratory
  • S.P. Hirshman

    • Oak Ridge National Laboratory
  • C. Cook

    • University of Wisconsin-Madison
  • R. Sanchez

    • Universidad Carlos III de Madrid