English

Performance Portable Monte Carlo Neutron Transport in MCDC via Numba

Computational Physics 2025-05-30 v3

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.

Keywords

Cite

@article{arxiv.2409.04668,
  title  = {Performance Portable Monte Carlo Neutron Transport in MCDC via Numba},
  author = {Joanna Piper Morgan and Ilham Variansyah and Braxton Cuneo and Todd S. Palmer and Kyle E. Niemeyer},
  journal= {arXiv preprint arXiv:2409.04668},
  year   = {2025}
}

Comments

11 pages, 6 figures