摘要

代数多重网格(AMG)是众多数值模拟应用的核心算法,在基于多核的NUMA架构的机群系统上,AMG的并行扩展性暴露了新的问题。通过设计感知NUMA架构的内存分配器,将划分给多个线程的数据分割并绑定到运行对应线程的CPU所属的NUMA存储节点上,从而改善了OpenMP多线程并行的数据局部性,使BoomerAMG程序在大规模多核计算平台上具有更好的并行扩展性。在单节点和小规模机群的测试中,使用NAAlloc分配器分别获得了最高16%和60%的性能提升。