摘要

基于小规模运行对大问题规模和处理器的性能预测可用于多种目的,包括可扩展性预测,并有助于最小化用于构建性能模型的训练数据所需的时间。在本文中,我们提出了一个预测框架,该框架与执行签名相匹配,以使用单个小规模应用程序执行来预测HPC应用程序的性能。我们的框架提取应用程序的执行签名,并进行不同应用程序阶段的自动识别。不同阶段的应用程序签名与存储在Kernel数据库中的参考Kernel的执行配置文件相匹配。然后,将参考Kernel的性能用于预测应用程序不同阶段的性能。对于没有匹配上的程序阶段,我们的框架对应用程序中的循环和函数执行静态分析,以提供预测范围。我们通过三个大型应用程序对我们框架中的技术进行了验证,所用的应用程序包括GTC,用于湍流模拟的单元内粒子代码,Sweep3d(3D中子传输应用程序)和SMG2000(多网格求解器)。可以证明我们的预测范围在大多数情况下是准确的。

研究背景

并行应用程序的性能表征和预测至关重要,并且长期以来已用于各种目的,包括可伸缩性研究[1],确定性能瓶颈[2],对未来系统的预测[3]以及调整应用程序和算法[4]。进行性能预测的常用方法是针对不同的处理器和问题大小执行或基准测试应用程序,观察包括执行时间在内的执行profile数据,并采用曲线拟合和机器学习技术将观察到的执行profile数据映射到性能模型[5] – [7]。然后,可以将性能模型用于预测新问题大小和处理器数量的性能。在许多现有策略中,在受控条件下执行大量基准测试,以合理的准确性获得性能预测,从而导致模型的训练时间较长。

限制构建用于预测的性能模型所需的基准数量将有助于最小化执行基准测试和建模过程所需的时间。此外,在某些受限环境中,基准测试的运行和结果受到隐式限制。例如,在一些大型超级计算机系统中,应用程序开发人员在特殊队列(称为debug queue)的少量处理器上以小问题大小执行其应用程序,以进行开发、调优和调试,然后在具有大量处理器的队列(production queues)上进行大规模生产。