Lantra, Zaman, Wright, Steven A. orcid.org/0000-0001-7133-8533 and Mudalige, Gihan R. (2024) OP-PIC - An Unstructured-Mesh Particle-in-Cell DSL for Developing Nuclear Fusion Simulations. In: 53rd International Conference on Parallel Processing Gotland, Sweden. The 53rd International Conference on Parallel Processing, 12-15 Aug 2024 ACM , SWE
Abstract
Particle-in-Cell (PIC) applications form a core simulation component for designing fusion reactors and their efficient use. In this work, we introduce OP-PIC, a new embedded Domain Specific Language (DSL) for developing unstructured-mesh PIC applications. The DSL is aimed at gaining performance portability for PIC codes on current and emerging, massively parallel architectures. We investigate and bring together the state-of-the-art in PIC solver parallelization techniques, refactoring them within a multi-layered DSL. OP-PIC use source-to-source translation to generate platform-specific optimizations. These parallelizations can be reused for any application declared using the DSL's high-level API. We showcase the performance and portability of two non-trivial PIC applications developed with OP-PIC on multiple CPU and GPU clusters, employing a number of parallelization techniques, including OpenMP, CUDA, HIP and their combinations with distributed memory (MPI) parallelization. We benchmark the OP-PIC generated code on a range of single node systems and a number of distributed-memory systems, including an AMD EPYC CPU-based HPE-Cray EX cluster, an NVIDIA V100 GPU cluster, and an AMD MI250X GPU cluster, exploring both single node and scaling performance. Results demonstrate the flexibility of the DSL to implement radically different optimizations for each platform, showing between 1.4x to 3.5x speed-ups with GPUs compared to CPUs on power equivalent systems and good weak-scaling to over 10 billion particles.
Metadata
Item Type: | Proceedings Paper |
---|---|
Authors/Creators: |
|
Copyright, Publisher and Additional Information: | This is an author-produced version of the published paper. Uploaded in accordance with the University’s Research Publications and Open Access policy. |
Dates: |
|
Institution: | The University of York |
Academic Units: | The University of York > Faculty of Sciences (York) > Computer Science (York) |
Depositing User: | Pure (York) |
Date Deposited: | 17 Jul 2024 07:50 |
Last Modified: | 26 Nov 2024 00:20 |
Published Version: | https://doi.org/10.1145/3673038.3673130 |
Status: | Published |
Publisher: | ACM |
Identification Number: | 10.1145/3673038.3673130 |
Open Archives Initiative ID (OAI ID): | oai:eprints.whiterose.ac.uk:214839 |