高性能计算(HPC)系统比以往任何时候都更为强大。然而,性能的提升也带来了更大的复杂性,给希望利用这些系统进行科学研究的研究人员带来了重大挑战。本篇博士论文探讨了面向科学计算的可扩展编程解决方案的发展。这些解决方案旨在跨多种计算平台有效运行,从个人桌面到先进的超级计算机都包括在内。
为了更好地理解高性能计算系统,本论文首先回顾了关于百亿亿次(Exascale)超级计算机的文献,这些强大的系统能够每秒执行10¹⁸次浮点运算。这项回顾结合了手工分析和数据驱动分析,揭示了虽然百亿亿次计算的传统挑战已在很大程度上得到解决,但软件复杂性和数据量的问题仍然存在。此外,论文介绍了为本研究开发的开源软件工具(名为LitStudy)。
接下来,本论文引入了两个新颖的编程系统。第一个系统(名为Rocket)旨在将全对全算法扩展到大规模数据集。它具有多级软件缓存、分治法、层次化工作窃取以及异步处理,以最大化数据重用、利用数据局部性、动态平衡工作负载,并优化资源利用。第二个系统(名为Lightning)旨在将现有单GPU内核函数扩展到多个GPU上,甚至跨节点,且只需最小的代码调整。在多达32个GPU的八个基准测试中,显示出了优秀的可扩展性。
论文最后提出了一套面向可扩展科学计算的并行编程系统开发的设计原则。这些基于本博士研究经验的原则,代表了使研究人员能够高效利用高性能计算系统方面的重大进展。