基于双树遍历的众核架构快速多极方法
An FMM Based on Dual Tree Traversal for Many-core Architectures
AI总结:
针对众核异构架构,通过双树遍历策略和任务并行模型优化快速多极方法,实现比现有最优代码快一个数量级的性能。
摘要:
本工作尝试整合快速N体社区中的独立努力,为众核和异构架构创建最快的N体库。重点放在低精度优化上,以响应最近将FMM用作稀疏线性求解器预处理器的兴趣。与其他最先进的快速N体代码的直接比较表明,通过精心选择最优算法和代码的低级优化,可以实现数量级的性能提升。当前的N体求解器使用快速多极方法,通过双树遍历找到单元-单元相互作用列表的高效策略。采用基于任务的线程模型以最大化线程级并行性和节点内负载平衡。为了挖掘最新CPU上SIMD单元的全部潜力,使用AVX指令优化内部内核。我们的代码——exaFMM——比当前最先进的FMM代码快一个数量级,而后者本身又比平均FMM代码快一个数量级。
英文摘要:
The present work attempts to integrate the independent efforts in the fast N-body community to create the fastest N-body library for many-core and heterogenous architectures. Focus is placed on low accuracy optimizations, in response to the recent interest to use FMM as a preconditioner for sparse linear solvers. A direct comparison with other state-of-the-art fast N-body codes demonstrates that orders of magnitude increase in performance can be achieved by careful selection of the optimal algorithm and low-level optimization of the code. The current N-body solver uses a fast multipole method with an efficient strategy for finding the list of cell-cell interactions by a dual tree traversal. A task-based threading model is used to maximize thread-level parallelism and intra-node load-balancing. In order to extract the full potential of the SIMD units on the latest CPUs, the inner kernels are optimized using AVX instructions. Our code -- exaFMM -- is an order of magnitude faster than the current state-of-the-art FMM codes, which are themselves an order of magnitude faster than the average FMM code.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。