OpenCL development and performance gains for a hyperbolic equation solver for plasma simulation
Noah Reddell, University of Washington
Fusion plasma simulation has much in common with computational fluid dynamics (CFD), but adds the complexities of modeling the electromagnetic interactions of the charged plasma species, confinement fields, and heating fields. Modeling, then, involves elaborate codes with computational demands that can limit the approximation of real-world behavior. Most of the differential equations involved are classified as hyperbolic and thus model waves that propagate through the system.
I have worked to adapt a multi-fluid modeling code for plasma called WARPX to utilize recent advances of multi-core compute devices – namely graphics processors or GPUs. WARPX was already set up to use Message Passing Interface (MPI) to distribute computation across multiple nodes of a cluster. I have ported some code functions, namely the hyperbolic equation solver, to the new OpenCL language, so that this part of the code can execute on a many-core device like a GPU. The resulting code is now a hybrid combination of MPI for communication between nodes and OpenCL for parallel execution on all cores available on each node.
I discuss some of factors considered before making the strategic decision to use OpenCL over other language options, show an overview of how to structure such a problem for multi-core execution and show performance gains seen using this approach.
Abstract Author(s): Noah Reddell, Uri Shumlak