We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Morgan & Niemeyer - Performant and Portable High-Performance Computing at Scale via Python and Numba
Learn how Python & Numba power high-performance nuclear transport simulations across CPUs/GPUs, featuring MPI parallelization, open-source collaboration & 24x GPU speedups.
-
MCDC (Monte Carlo Dynamic Code) is a Python/Numba-based framework for nuclear transport simulations that can run on both CPUs and GPUs at scale
-
The project achieves high performance using MPI for parallelization rather than shared memory, with each thread handling independent particle histories
-
Numba JIT compilation enables performant code execution but comes with limitations like lack of ahead-of-time compilation and restricted GPU operations
-
The framework can model complex time-dependent nuclear reactions, including the movement of fissile materials and neutron transport through materials
-
Performance is within 2-10x of traditional compiled codes, with 21-24x speedup when using GPUs compared to CPUs
-
Key challenges include handling AMD GPU support, debugging complexity compared to C++, and managing statistical error that converges slowly
-
The codebase is open-source, pip-installable, and designed for collaboration through GitHub
-
Monte Carlo methods allow handling 7 independent variables without discretization issues common in deterministic approaches
-
The project demonstrates that Python + Numba can enable rapid methods development while maintaining performance portability across architectures
-
Statistical error decreases by 1/√N, requiring massive particle counts to achieve acceptable error levels for simulations