CMacIonize 2.0:一种基于任务的蒙特卡洛辐射转移新方法
天体物理仪器与方法
2020-09-16 v1
摘要
(背景)蒙特卡洛辐射转移(MCRT)是一种广泛使用的模拟辐射与介质相互作用的技术,在天体物理建模及将模型与观测对比时发挥重要作用。(目的)本工作中,我们提出一种新颖的 MCRT 方法,以解决传统 MCRT 算法具有挑战性的内存访问模式,这些模式阻碍了 MCRT 模拟在具有复杂内存架构的现代硬件上获得最优性能。(方法)我们将 MCRT 光子包生命周期重新表述为一种基于任务的算法,将计算分解为可并发执行的小任务。光子包存储于中间缓冲区中,任务使光子包在计算域的小部分中传播,并在过程中将其从一个缓冲区移至另一缓冲区。(结果)利用光电离 MCRT 代码 CMacIonize 2.0 中新算法的实现,我们表明将 MCRT 网格分解为小部分可在光子包传播阶段带来显著性能提升——该阶段构成 MCRT 算法的主体——其源于对内存缓存更好的利用。我们的新算法比等效传统算法快 2 至 4 倍,并展现出良好的强扩展性,可达 30 线程。我们简要讨论了如何调整或扩展新算法以用于其他天体物理 MCRT 应用。(结论)我们表明,优化如 MCRT 这类受内存限制算法的内存访问模式可带来显著的性能提升。
引用
@article{arxiv.2006.15147,
title = {CMacIonize 2.0: a novel task-based approach to Monte Carlo radiation transfer},
author = {Bert Vandenbroucke and Peter Camps},
journal= {arXiv preprint arXiv:2006.15147},
year = {2020}
}
备注
18 pages, 21 figures, accepted for publication in Astronomy & Astrophysics. The source code of CMacIonize is publicly available from https://github.com/bwvdnbro/CMacIonize