Performance Portable Monte Carlo Neutron Transport in MCDC via Numba

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Morgan, Joanna Piper, Variansyah, Ilham, Cuneo, Braxton, Palmer, Todd S., Niemeyer, Kyle E.
Format: Preprint
Veröffentlicht: 2024
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866910973442392064
author Morgan, Joanna Piper
Variansyah, Ilham
Cuneo, Braxton
Palmer, Todd S.
Niemeyer, Kyle E.
author_facet Morgan, Joanna Piper
Variansyah, Ilham
Cuneo, Braxton
Palmer, Todd S.
Niemeyer, Kyle E.
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2409_04668
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Performance Portable Monte Carlo Neutron Transport in MCDC via Numba
Morgan, Joanna Piper
Variansyah, Ilham
Cuneo, Braxton
Palmer, Todd S.
Niemeyer, Kyle E.
Computational Physics
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.
title Performance Portable Monte Carlo Neutron Transport in MCDC via Numba
topic Computational Physics
url https://arxiv.org/abs/2409.04668