Astrophysics > Instrumentation and Methods for Astrophysics
[Submitted on 26 Jun 2020]
Title:CMacIonize 2.0: a novel task-based approach to Monte Carlo radiation transfer
View PDFAbstract:(Context) Monte Carlo radiative transfer (MCRT) is a widely used technique to model the interaction between radiation and a medium, and plays an important role in astrophysical modelling and when comparing those models with observations. (Aims) In this work, we present a novel approach to MCRT that addresses the challenging memory access patterns of traditional MCRT algorithms, which hinder optimal performance of MCRT simulations on modern hardware with a complex memory architecture. (Methods) We reformulate the MCRT photon packet life cycle as a task-based algorithm, whereby the computation is broken down into small tasks that are executed concurrently. Photon packets are stored in intermediate buffers, and tasks propagate photon packets through small parts of the computational domain, moving them from one buffer to another in the process. (Results) Using the implementation of the new algorithm in the photoionization MCRT code CMacIonize 2.0, we show that the decomposition of the MCRT grid into small parts leads to a significant performance gain during the photon packet propagation phase, which constitutes the bulk of an MCRT algorithm, as a result of better usage of memory caches. Our new algorithm is a factor 2 to 4 faster than an equivalent traditional algorithm and shows good strong scaling up to 30 threads. We briefly discuss how our new algorithm could be adjusted or extended to other astrophysical MCRT applications. (Conclusions) We show that optimising the memory access patterns of a memory-bound algorithm such as MCRT can yield significant performance gains.
Submission history
From: Bert Vandenbroucke [view email][v1] Fri, 26 Jun 2020 18:00:00 UTC (5,030 KB)
Current browse context:
astro-ph.IM
Change to browse by:
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
IArxiv Recommender
(What is IArxiv?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.