Gauss-Seidel算法作为线性方程组的求解器,在并行计算领域具有广泛应用,而面向异构众核架构开发其细粒度并行性一直是具有挑战性的问题.针对非结构网格问题,基于代数分块并行思路提出了面向异构众核架构的块Gauss-Seidel/Jacobi算法,将...Gauss-Seidel算法作为线性方程组的求解器,在并行计算领域具有广泛应用,而面向异构众核架构开发其细粒度并行性一直是具有挑战性的问题.针对非结构网格问题,基于代数分块并行思路提出了面向异构众核架构的块Gauss-Seidel/Jacobi算法,将其作为区域分解算法的子区域求解器.面向神威太湖之光超级计算机的异构众核架构,设计并实现了该算法.为充分利用神威太湖之光国产SW26010芯片中每个CPE拥有的高速LDM(Local Data Memory),缓解通信瓶颈,设计了多行块通信打包、计算与通信重叠性能优化策略和丢弃非关键元素的低通信复杂性数值优化方法.数值实验结果显示,相较于串行Gauss-Seidel算法,优化后的块Gauss-Seidel/Jacobi算法预处理过程加速比最高可达到4.16倍.以1040核的测试数据为基准,在处理器核数达到33280时,块Gauss-Seidel/Jacobi预条件算法的并行效率达到61%.展开更多
文摘Gauss-Seidel算法作为线性方程组的求解器,在并行计算领域具有广泛应用,而面向异构众核架构开发其细粒度并行性一直是具有挑战性的问题.针对非结构网格问题,基于代数分块并行思路提出了面向异构众核架构的块Gauss-Seidel/Jacobi算法,将其作为区域分解算法的子区域求解器.面向神威太湖之光超级计算机的异构众核架构,设计并实现了该算法.为充分利用神威太湖之光国产SW26010芯片中每个CPE拥有的高速LDM(Local Data Memory),缓解通信瓶颈,设计了多行块通信打包、计算与通信重叠性能优化策略和丢弃非关键元素的低通信复杂性数值优化方法.数值实验结果显示,相较于串行Gauss-Seidel算法,优化后的块Gauss-Seidel/Jacobi算法预处理过程加速比最高可达到4.16倍.以1040核的测试数据为基准,在处理器核数达到33280时,块Gauss-Seidel/Jacobi预条件算法的并行效率达到61%.