Noah Reddell, University of Washington
I present a multi-fluid modeling code for plasma called WARPX with design for the coming dominance of many-core processors such as GPUs in high-performance computing. WARPX was already set up to use Message Passing Interface (MPI) to distribute computation across multiple nodes of a cluster. I have ported the scientific calculations to the new OpenCL language, so that this part of the code can execute on a many-core device like a GPU, and added multiple threads to allow for simultaneous independent tasks. The resulting code now is a hybrid combination of MPI for communication between nodes, threads for task parallelism on each host, and OpenCL for parallel scientific computation on tens or hundreds of cores available on each node. The code is relatively general, but I use it for computational modeling of plasmas. 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 that can be simulated with nearest-neighbor calculations. I discuss some of the 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 many-core computation and show performance gains seen using this approach.
Abstract Author(s): Noah Reddell and Uri Shumlak