Optimizing Memory Constrained Environments in Monte Carlo Nuclear Reactor Simulations
Monte Carlo neutron transport codes are a growing subject of research in nuclear reactor analysis. For robust reactor analysis, large scale neutron transport simulations require computation of reaction rates for tens of billions of particles involving several hundred isotopes. When employing physical-space domain decomposition, minimizing memory consumption while safely and efficiently exchanging massive amounts of data is a significant challenge. To address this problem, we implement and test several "memory-aware", in-place, sparse, all-to-all MPI communication implementations. The algorithms are developed and tested within the open source MADRE (Memory-Aware Data Redistribution) project, which gives application programmers a simple API and set of tools and algorithms for carrying out memory-transparent in-place communication. We explore memory and communication efficiency tradeoffs for a range of in-place algorithms using a simple Monte Carlo communication kernel intended to mimic the behavior of our full Monte Carlo neutronics code.
monte carlo neutron decomposition reactor analysis limited memory domain