Abstract

VPIC is a general purpose Particle-in-Cell simulation code for modeling plasma phenomena such as magnetic reconnection, fusion, solar weather, and laser-plasma interaction in three dimensions using large numbers of particles. VPIC's capacity in both fidelity and scale makes it particularly well-suited for plasma research on pre-exascale and exascale platforms. In this paper we demonstrate the unique challenges involved in preparing the VPIC code for operation at exascale, outlining important optimizations to make VPIC efficient on accelerators. Specifically, we show the work undertaken in adapting VPIC to exploit the portability-enabling framework Kokkos and highlight the enhancements to VPIC's modeling capabilities to achieve performance at exascale. We assess the achieved performance-portability trade-off through a suite of studies on nine different varieties of modern pre-exascale hardware. Our performance-portability study includes weak-scaling runs on three of the top ten TOP500 supercomputers, as well as a comparison of low-level system performance of hardware from four different vendors.

Highlights

  • MANY plasma physics phenomena can only be understood through the use of kinetic particle-in-cell (PIC) simulations

  • Other transformations that we introduce focus on further improving the performance and portability of Vector Particle-in-Cell (VPIC) 2.0 through code restructuring and optimizations

  • We present insights on the effectiveness of VPIC to run across multiple architectures

Read more

Summary

INTRODUCTION

MANY plasma physics phenomena can only be understood through the use of kinetic particle-in-cell (PIC) simulations. A new multi-architectural VPIC code is needed to ensure portability and performance across exascale platforms, but there are three challenges to building this code. There are multiple methods to overcome these challenges and to create a multi-architectural VPIC code while reducing long-term maintenance. These include pragma-based directives such as OpenMP and template-based library approaches such as Kokkos [5] and Raja [6]. Transforming VPIC into a high performance portable code capable of running on emerging heterogeneous platforms requires several changes. Other transformations that we introduce focus on further improving the performance (i.e., the capability of the code to scale across pre-exascale platforms) and portability (i.e., the capability of the code to run across the different platforms) of VPIC 2.0 through code restructuring and optimizations. The contributions of this paper are as follows: An effective approach for performance and portability The performance and portability study on nine platforms The study of weak and strong scaling across CPU and GPU platforms (including 3 top 10 machines) The analysis of the costs and benefits to portable code Insights on the impacts of VPIC 2.0 on future scientific discovery

BACKGROUND
Kokkos Overview
VPIC Data Structure Elements
User Interface
Improving Portability
Improving Performance
PERFORMANCE AND PORTABILITY STUDY
GPU Platforms
CPU Platforms
Weak Scaling
Strong Scaling
Portability Effort
RELATED WORK
Findings
CONCLUSION

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.