摘要
Stencil(模版计算)是一类常见的循环嵌套计算模式,被广泛应用于计算电磁、天气模拟、地球物理、海洋模拟等许多科学和工程模拟应用中。随着现代处理器体系结构的发展,多核和多层存储层次不断加深,研究并行性和局部性成为了提高程序运行速度的主要途径。分块是开发数据局部性和程序并行性的主要技术之一,目前,针对Stencil已提出了大量高效分块和向量化方法,但大多局限于具有较高并行度的Jacobi类型的Stencil。Gauss-Seidel Stencil具有更优的收敛速度,被广泛应用于多重网格的计算中。这类Stencil的数据依赖更为复杂,文中面向红黑排序的Gauss-Seidel Stencil设计了一种并行分块和向量化算法,提升了Gauss-Seidel Stencil的数据局部性、中粒度多核并行性以及核内细粒度并行性。实验结果证实了本文方案的有效性。
-
单位中国科学院计算技术研究所; 大连海洋大学; 计算机体系结构国家重点实验室