递归电子结构求解器针对多核架构的性能优化(LA-UR-20-26665)
摘要:超大型计算资源的快速接近使得软件优化成为科学应用开发人员的重要兴趣,他们希望有效利用所有可用的节点计算能力,从而提高科学能效。本文所关注的科学应用是基本数学库(BML),它提供了一个线性代数操作的单一接口,QMD(量子分子动力学)社区经常使用这些操作。提供一个单一接口表示存在一个抽象层,这也意味着代码库中存在共性,因此在代码库核心引入的优化或调整能够积极影响上述库的整体性能。考虑到这一点,我们通过对BML代码库进行调查,并提取出通用代码片段的形式,来进行本研究。我们在这些代码片段中引入了多种优化策略,包括:1.) 强度减少 2.) 对大数组的内存对齐 3.) 非均匀存储器访问(NUMA)感知分配以实施数据局部性 4.) 适当的线程亲和性与绑定以提高整体多线程性能。在引入这些优化之后,我们对这些代码片段进行了基准测试,并比较了优化前后的运行时间,在多个目标架构上进行了测试。最后,我们使用结果作为指导,将优化策略扩展到BML代码库中。作为示范,我们通过比较基准和优化版本的代码来测试这些优化策略的有效性。
作者:Adetokunbo A. Adedoyin, Christian F. A. Negre, Jamaludin Mohd-Yusof, Nicolas Bock, Daniel Osei-Kuffuor, Jean-Luc Fattebert, Michael E. Wall, Anders M. N. Niklasson, Susan M. Mniszewski
论文ID:2102.08505
分类:Performance
分类简称:cs.PF
提交时间:2021-02-18