论文部分内容阅读
目前,世界排名第一的超级计算机神威·太湖之光是我国自主研制的世界上第一台峰值性能超过100P的超算系统,由40960个SW-26010处理器构成,总核心数达1040万个,每一个处理器由四个核组构成,每一个核组又由65个核心组成,其中一个核心作为主核(MPE),其他64个核心作为从核(CPEs),单节点峰值性能为3TFlops,系统的理论峰值性能达125PFlops,LINPACK测程序的性能达到70%以上,但是,高性能共轭梯度基准测试程序(HPCG)的性能却只有LINPACK性能的0.4%,表明对于HPCG这类应用,不仅需要针对应用进行深度优化,亦可能需要对神威·太湖之光的结构提出一定的改进意见。作为一种新的系统基准测试程序,HPCG的设计能够更全面地测试系统在计算、访存、通信等各个方面的实际性能,比LINPACK基准测试程序更能代表真实应用的实际情况。本文的研究目标是通过在多核/众核平台上实现HPCG的算法与结构的一体化研究,深入理解该程序对不同体系结构的适应性,为在神威·太湖之光上实现和优化实际应用程序提供借鉴,并为下一代系统的研发提供参考。本文的研究工作及成果主要包括以下几个方面:首先,HPCG在商用多核/众核处理器上的优化策略和技术。一方面深入分析HPCG软件结构,利用大量的性能分析工具刻画程序在运行时计算、访存、通信等各方面特征以及热点函数,明确数据依赖关系;另一方面实现多种算法在多核/众核系统(XeonCPU、GPUP100以及KNL)上的并行,并针对程序的时间、空间局部性进行性能优化,充分了解商用处理器的多核/众核特性以及HPCG在这种架构上的性能表现,亦为HPCG在申威异构众核加速系统上的实现和优化提供先验知识。其次,HPCG在在神威·太湖之光系统上的实现与优化技术。针对申威处理器的架构特点以及HPCG的计算、访存等特征,实现四种在单核组上的并行化方案,包括Multi-Coloring、level-Scheduling、0-1方法以及更符合申威架构的Hierarchical Grid Collaborative算法,并从架构和算法角度对HPCG进行深度优化,包括数据传输、协同计算、数据同步等优化策略,最终单核组四种方法分别获得1.54x,5.52x,10.9x及15.6x的性能加速,多核组上,对边界数据的处理以及核组间的数据通信方式进行优化,扩展至40960个进程时性能为192 TFlops,并行效率超过70%。最后,HPCG在多核/众核上实现与优化的策略和技术比较。结合HPCG在商用Xeon多核、申威处理器、GPU P100及KNL上的性能表现,分析类似于HPCG这种应用在各种平台上的性能差异,即哪种架构特征有助于提高HPCG的性能,我们将从并行化方法、访存带宽、向量化等方面进行讨论算法/架构/性能之间的关系,并为下一代申威处理器的设计提出相关建议。