← 最新论文
💻 computer science

Semperf: An LLM-assisted Performance Diagnosis for Extreme-Scale Parallel Programs

本文介绍了 Semperf,这是一个由大语言模型(LLM)辅助的框架,它通过构建秩剖面矩阵(rank-profile matrices)并对进程进行聚类,从而为极大规模并行高性能计算(HPC)应用实现可扩展、自动化的性能诊断与瓶颈识别。

原作者: Liqiang Cao, Xu Liu, Xiaowen Xu

发布于 2026-07-23
📖 1 分钟阅读☕ 轻松阅读

原作者: Liqiang Cao, Xu Liu, Xiaowen Xu

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一个这样的世界:成千上万名微小的工人,每人手里都拿着巨大拼图的一块碎片,正试图共同解开一个巨大的谜团。这就是超级计算机的工作方式:它们将庞大且复杂的问题(如预测天气或模拟核爆炸)拆分到数万个处理器(称为“秩/ranks”)上。目标是让所有人同时完成各自的部分,从而使整个画面瞬间呈现。但有时,事情会出错。某个工人可能陷入了繁重的任务中无法脱身,导致其他人在原地等待;或者少数几个工人在通信的迷宫中迷失了方向。这被称为“性能瓶颈”。

几十年来,修复这些瓶颈就像是在一座城市规模的干草堆里,仅凭一把手电筒去寻找一根掉落的针。专家们必须盯着海量的原始数据,试图从数字中寻找微小的线索,以推测计算机为何变慢。这既缓慢、又令人精疲力竭,且需要极高的专业知识,而具备这种能力的人寥寥无几。现在,想象一下,如果你能把整座干草堆交给一位超级聪明、充满好奇心的侦探,他能瞬间识别出模式,准确告诉你哪个工人卡住了,并用通俗易懂的语言解释为什么。这就是一个名为 Semperf 的新工具所带来的承诺,它利用一种被称为“大语言模型”(LLM)的人工智能技术来充当这位侦探。

侦探的工具箱:Semperf

这篇论文介绍了一种名为 Semperf 的新工具包,旨在诊断这些极端规模并行程序的性能问题。研究人员 Liqiang Cao、Xu Liu 和 Xiaowen Xu 面临着一个棘手的难题:虽然大语言模型擅长推理和解释,但它们无法处理运行在 10 万个处理器上的超级计算机所产生的海量数据。如果你尝试将所有原始数据直接喂给 AI,就像试图用消防水龙头直接饮水一样——AI 会被信息淹没而“窒息”。

为了解决这个问题,Semperf 扮演了一个聪明的过滤器和翻译官的角色。它并没有将整个“消防水龙头”式的数据倾泻给 AI,而是首先将混乱的数据整理成一种整齐、可控的结构。它创建了作者所称的 “秩剖面矩阵”(rank-profile matrix)。你可以把它想象成一张巨大的电子表格,其中每一行代表一个工人(秩),每一列代表他们执行的一项特定任务或函数。单元格中的数字显示了每个工人花费在每项任务上的时间。

一旦构建好这张巨大的表格,Semperf 就会使用一种称为**“聚类”(clustering)**的数学技术,将相似的工人归为一组。这就像不是按姓名,而是按学生在考试期间的行为表现来对班级进行分组。算法可能会发现,有 2,760 名学生都在以稳定的正常速度工作(组 A),而另外一小群 120 名学生则在处理另一套不同的问题时疯狂地挥毫疾书(组 B)。通过识别这些群体,Semperf 不需要观察每一个工人,它只需要挑选出一个“代表”来讲述故事。

AI 侦探的工作过程

在确定了这些代表性群体后,Semperf 为 AI 侦探(在本例中为大语言模型 DeepSeek-V4)准备了一份简洁的“成绩单”。这份成绩单包含了各组的性能模式,并要求 AI 扮演侦探角色:“根据这些线索,是什么导致了减速?”

AI 不仅仅是在猜测;它使用了 贝叶斯推理(Bayesian reasoning),这是一种根据证据更新自身信念的方法。它观察数据并得出结论:“啊,我看到这一小组将 36% 的时间花在了几何计算上,而大组则有 24% 的时间在等待自旋锁(一种数字等待室)。这表明这一小组正在承担所有的重活,迫使大组处于闲置状态。”

研究人员在三种不同的场景下测试了这个系统:

  1. JEuler3D.m: 一个在 2,880 个处理器上运行的复杂流体动力学模拟。Semperf 正确识别出一小部分秩正在进行串行化工作(即逐一执行而非并行执行),从而使系统的其余部分处于饥饿状态。
  2. BT Benchmark: 一个在 81 个处理器上运行的平衡良好的测试案例。在这里,AI 正确报告了不存在显著瓶颈,证明它不会在没有问题的地方凭空捏造问题。
  3. JUPITER: 一个在 102,400 个处理器上运行的巨型模拟。这是“极端规模”测试。Semperf 处理了超过 10 万个文件的资料,将它们聚类为 256 个成员的小组和 102,144 个成员的大组,并诊断出了严重的通信瓶颈:由于那一小组过于忙碌,导致整个系统停滞。

论文排除了什么,证明了什么

作者非常谨慎地测试了他们的方法是否真的必要。他们进行了“消融实验”(ablation studies),这类实验就像是通过拆除机器的一个部件来观察机器是否仍能正常运转。

首先,他们问道:“我们真的需要对数据进行聚类吗?直接随机抽取一些工人不行吗?”他们尝试向 AI 喂入 1% 或 2% 随机抽取的处理器数据。虽然 AI 有时能猜出正确答案,但它的信心较低,并且需要更多的数据(更长的“提示词/prompts”)才能做到这一点。论文指出,聚类对于创建能够扩展到大型系统的紧凑、可靠的诊断至关重要

其次,他们问道:“我们真的需要 AI 吗?直接使用简单的数学规则不行吗?”他们将 Semperf 与一个仅计算平均等待时间的基于规则的系统进行了对比。基于规则的系统可以观察到有些工人在等待,但它无法解释为什么。它错过了更深层的联系——即一小组正在进行的几何工作迫使其他人等待。论文证明,仅靠结构化特征是不够的;你需要大语言模型具备理解数据点之间关系的推理能力,才能生成人类可读的解释。

结论

论文得出结论,Semperf 是一种具有可扩展性和可解释性的诊断性能问题的方法。它成功地将结构化数据缩减与 AI 推理相结合,能够处理高达 102,400 个进程的应用。作者认为,这种方法弥合了原始、压倒性的数据与人类理解之间的鸿沟。然而,他们也坦诚地指出了局限性:他们并未测试所有的 AI 模型,并承认性能诊断通常是一个人类与 AI 协同工作的迭代过程。他们并不声称已经永久“解决”了性能分析问题,而是表示他们构建了一个强大的新助手,可以帮助专家比以往更快地在干草堆中找到那根针。

简而言之,Semperf 将一座由混乱数字组成的“大山”转化为了一个清晰、可操作的故事,帮助超级计算机在处理比一座大城市人口还要多的处理器时,依然能够运行得更加顺畅、高效。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →