本项目以三类典型的并行科学计算应用(分子动力学、能量方程和中子输运方程)为背景,研究多核并行机体系结构下并行应用的性能评测与性能优化技术。其中,性能评测主要研究多核并行机体系结构下多核处理器缓存命中率、指令级并行效率和系统通讯带宽的利用率等因素对实际并行应用程序浮点性能的影响,分析产生性能瓶颈的原因,指导性能优化。性能优化针对多核并行机多核之间共享缓存,单核内对同步多线程(SMT) 的支持及单节点内处理核的数量多的特点,依据实际并行应用程序的计算和通讯特征,主要研究提高处理器缓存命中率、指令级并行效率和系统通讯带宽利用率的性能优化技术。本项目预期研究成果,提出一套实用的并行应用性能评测和性能优化技术,在多核并行机体系结构上,应用于以上三类科学计算并行应用程序,力争使得它们的性能在数百上千个处理器的系统上达到系统峰值浮点性能的15%以上,处于国际同类应用的领先水平。
本项目以典型的并行科学计算应用(分子动力学程序)为背景,研究多核体系结构下并行应用的性能评测与性能优化技术。其中,性能评测主要研究影响多核处理器指令级并行效率的关键因素。我们通过采样处理器核心流水线的性能计数器以及二、三级缓存的访问计数器的数据来分析应用程序的性能瓶颈。通过性能测试分析,我们发现影响处理器指令级并行效率的主要因素是浮点多功能单元延迟。在此基础上,我们提出了解决浮点多功能单元延迟的性能优化技术- - 计算缓存方法将分散的相互关联的长延迟的浮点运算(如除法、开方和指数运算)通过中间数组进行缓存,暂时不进行计算,在累积到一定的数量后通过向量的方式统一进行计算,而后将结果恢复到原始的数据中。此方法在一定程度上增加了数据的存储量,但能大幅提高处理器的指令级并行效率。我们将此方法应用于分子动力学并行应用程序,将大量的不规则的浮点计算进行缓存,达到一定规模后再进行向量化计算。在多台大型并行计算机上都进行了性能测试,应用程序的性能都得到了2-4倍的性能加速。在深腾6800的64个节点的256个CPU上进行了测试,应用程序性能提高4倍多,达到峰值运算性能1.3万亿次的27%。