arXiv · 2409.04668
Performance Portable Monte Carlo Neutron Transport in MCDC via Numba
Abstract
Finding a software engineering approach that allows for portability, rapid development, and open collaboration for high-performance computing on GPUs and CPUs is a challenge. We implement a portability scheme using the Numba compiler for Python in Monte Carlo / Dynamic Code (MC/DC), a new neutron transport application for rapidly developing Monte Carlo. Using this scheme, we have built MC/DC as an application that can run as a pure Python, compiled CPU, or compiled GPU solver. In GPU mode, we use Numba paired with an asynchronous GPU scheduler called Harmonize to increase GPU performance. We present performance results (including weak scaling up to 256 nodes) for a time-dependent problem on both CPUs and GPUs and compare favorably to a production C++ code.
Explore related subjects
Keep this discovery
Joanna Piper Morgan, Ilham Variansyah, Braxton Cuneo, Todd S. Palmer, Kyle E. Niemeyer. 2024-09-07. Performance Portable Monte Carlo Neutron Transport in MCDC via Numba. https://doi.org/10.1109/mcse.2025.3550863
Cite the original work for its findings. Save a collection to share your selection of sources.