过去三十年里,高性能计算(HPC)领域经历了一场静默的硬件革命。从 1995 年的 TOP500 榜单到 2025 年,系统性能提升了数百万倍 —— 核心数从数千攀升至千万级,计算能力从百亿次浮点运算增至千万亿次。然而,当我们把目光从硬件转向编程语言时,一个令人困惑的悖论浮现出来:推动这些计算奇迹的代码,最终仍然依赖 Fortran、C 和 C++ 这三门诞生于上世纪七八十年代的语言。本文将剖析这一现象背后的深层原因,并探讨 Chapel 等新兴并行编程语言所面临的工程化挑战。
硬件的剧变:被忽视的三十年会
要理解 HPC 编程语言停滞的严重程度,首先需要量化硬件层面的变迁。1995 年 11 月的 TOP500 榜单显示,当年前五名系统的核心数介于 80 至 3,680 之间,Rmax 性能(即 Linpack 实测峰值)仅为 98.9 至 170 GFlop/s。网络拓扑采用 crossbar、二维网格和三维环面,供应商以 Fujitsu、Intel 和 Cray 为主。到了 2025 年 11 月的最新榜单,形势已截然不同:前五名系统拥有 207 万至 1,134 万个核心,Rmax 性能达到 561 至 1,809 PFlop/s,网络升级为 Slingshot-11 和 InfiniBand NDR,拓扑结构采用 dragonfly+ 或 fat-tree。
这种百万级甚至千万级的性能提升并非偶然,而是多重硬件趋势叠加的结果。向量化指令的普及使得单条指令可处理多个数据元素;多核和众核处理器取代了单核设计, chiplet 架构进一步提升了单位芯片的计算密度;多插槽计算节点成为标准;高 radix、低直径网络拓扑极大降低了节点间通信延迟;GPU 从图形专用加速器演变为通用并行计算的核心组件。每一个进步都意味着程序员需要重新思考如何利用这些新能力。
编程语言的静止:被锁死的技术栈
与硬件的翻天覆地形成鲜明对比的是,编程语言的采纳格局几乎原地踏步。1995 年的 HPC 编程语言三巨头 ——Fortran、C 和 C++—— 至今仍占据统治地位。分布式内存编程方面,MPI 和 SHMEM 依然是标准,PVM 已退出历史舞台,HPF(High Performance Fortran)未能实现广泛采纳。共享内存编程领域,OpenMP 自 1997 年推出后迅速成为主流,其地位三十年来无人撼动。进入 GPU 时代后,CUDA、HIP、SYCL、OpenACC、OpenCL 和 Kokkos 等技术竞相涌现,但它们无一不是对既有编程体系的补充而非替代。
这意味着什么?当今一个典型的 HPC 应用可能需要同时使用 C++、MPI、OpenMP 和 CUDA 四种技术栈。代码维护者必须在多个抽象层次间切换:节点间的数据传递、节点内的线程调度、GPU 核函数的显式管理。这种混合编程模型的复杂度远超单一语言能解决的问题域。正如 Chapel 创始人 Bradford Chamberlain 在 HIPS 2025 研讨会上的 keynote 所言:「大多数硬件进步都要求我们为既有编程符号补充新方法,这说明我们的编程模型尚未充分抽象于其目标硬件。」
为什么新语言难以破局
理解为何过去三十年间没有新的编译型语言在 HPC 领域实现广泛采纳,是理解 Chapel 等语言面临挑战的关键。这一问题的答案涉及多个相互交织的因素。
首先是遗留代码的惯性。HPC 社区拥有大量运行了数十年的重大科学计算代码,这些代码以 Fortran、C 和 C++ 编写,凝聚了数十年乃至数代人之心血。它们的存在使得整个社区倾向于维护而非重建。然而,正如汇编程序员在 1950 年代并不「需要」Fortran—— 尽管在今天看来,那次抽象提升的意义不言自明 —— 当前的语言僵局同样值得警惕。新语言无需完全替换遗留代码,而是应当提供与现有代码互操作的能力,允许在关键计算路径上保留底层优化。
其次是投资结构的失衡。HPC 社区的预算和关注点严重向硬件倾斜。Funding opportunities、奖项和 keynote 演讲往往聚焦于新型硬件和架构,而非面向用户的软件工具。这一倾向的后果是:硬件更新换代时,软件团队常常需要从零开始适配新架构,无法形成跨代积累。相较于硬件投资的丰厚回报,软件投入显得微不足道,但这恰恰导致了一个恶性循环 —— 软件质量低下进一步削弱了社区对软件投资的信心。
第三是采纳的社交成本。编程语言的采纳本质上是一种社会行为,个体开发者的决策深受社区预期影响。「这门语言会流行吗只有我一个人用怎么办」「有没有大公司或机构背书能长期维护」—— 这些顾虑完全合理,但它们构成了新语言必须克服的认知门槛。主流编程界可以看到资金充裕的语言如何实现「逃逸速度」并最终流行开来,HPC 社区同样具备创造此类成功故事的能力,只是需要思维方式和投资策略的转变。
第四是支持结构的缺失。即便解决了资金问题,HPC 软件从研究走向生产的路径依然模糊。MPICH 团队曾面临的资金困境就是一个典型例证 ——MPI 已成为至关重要且无处不在的基础设施,其最重要的实现团队却曾为维持运营挣扎。将 HPC 软件视为纯研究活动意味着永远无法超越最低限度,也增加了被锁定在增量或供应商特定方案中的风险。
Chapel 的定位与工程化现实
Chapel 正是在这一背景下诞生并发展起来的并行编程语言。其设计哲学围绕三个核心原则展开:首先是对并行性和局部性的抽象表达 —— 程序员应能描述「这个任务在哪里执行」「这份数据放在哪里」,而无需关心底层硬件的具体机制;其次是数据移动的自动化 ——Chapel 的全局命名空间允许程序员像访问本地内存一样读取和写入远程数据,将显式的 send、receive、put、get 和 mem-copy 交给编译器处理;第三是灵活的性能控制 —— 用户既可以使用高层抽象获得生产力,也可以在必要时降级到 C、显式通信或直接内存操作以获取极致性能。
这些设计决策使 Chapel 能够较好地适应硬件变化。语言诞生于商品化多核处理器出现之前,但其抽象机制天然适应后来涌现的各类并行硬件 —— 从早期的对称多处理器到当今的 GPU 集群,Chapel 程序的适配工作远少于等价的 C++ 加 MPI 加 CUDA 组合。这一特性对于长期维护尤为重要:一套 Chapel 代码的生命周期可能跨越数代硬件架构,而无需大规模重写。
然而,工程化的现实同样严峻。Chapel 目前面临的最大挑战并非技术先进性,而是社区规模和资金可持续性。尽管 Chapel 拥有相对活跃的学术用户群体,但大多数用户来自高校研究环境 —— 他们有条件尝试新技术,却往往无力资助语言本身的持续开发。语言的长期维护、编译器优化、工具链完善和第三方库建设都需要稳定的工程投入,而这些投入的规模与 HPC 硬件项目相比微不足道,却难以获得同等的资源支持。
另一个现实挑战是生态系统的建设。任何一门编程语言的生命力都取决于其周边生态 —— 调试器、性能分析器、IDE 集成、第三方库和模块。Chapel 在这些方面与经过数十年积累的 Fortran 和 C++ 生态相比仍有差距。尽管语言本身提供了与 C 和 Fortran 的互操作能力,但用户在选择 Chapel 时必须权衡:生产力提升是否足以抵消生态不完整带来的摩擦?
突破路径的思考
面对上述挑战,HPC 社区需要采取的具体行动包括以下几个方向。
第一,重新定位 HPC 在并行计算版图中的角色。传统 HPC 看似 niche,但并行计算能力已渗透到从多核桌面到云计算再到 AI 数据中心的每一个角落。HPC 社区不应将自身视为无力支撑一门语言的封闭圈子,而应拥抱并行计算的普适性需求,与更广泛的并行编程社区建立连接。培养小规模并行计算社区只会为 HPC 带来更多用户、新用例和计算科学的进步。
第二,建立从研究到生产的资金桥梁。现有 funding 机制更倾向于支持创新性研究,但对软件长期维护和工程化支持不足。需要创建专门的结构,帮助有潜力的软件概念完成从论文到生产就绪状态的过渡,并为其提供可持续的长期资助渠道。同时,开源社区需要认识到:开源不等于免费。开源 HPC 软件项目的维护、改进和跨代硬件移植是一项需要持续投入的全职工程任务。
第三,推进技术对比和客观评估。社区需要更多机制来支持 HPC 软件技术之间的横向比较 —— 无论是建立类似 Computer Language Benchmarks Game 的性能比较平台,还是重振 HPC Challenge 竞赛,抑或创建考虑编程体验的 TOP500 衍生排名。客观的数据比主观偏见更能帮助开发者做出明智选择。
第四,开放心态与亲身实践。作为从业者,应当挑战自身对技术的先入之见,尝试那些被常规智慧所忽视的新工具,亲身形成判断而非人云亦云。Chapel 这样的语言可能并不适合所有场景,但其设计理念中关于并行性和局部性的表达方式,确实为解决当前混合编程模型的复杂性提供了值得重视的 alternatives。
结语
HPC 硬件与编程语言之间日益扩大的裂痕,不仅仅是技术问题,更是整个社区在投资优先级、思维定式和支持结构上的综合产物。Chapel 用了三十年时间证明:一门专为并行和可扩展计算设计的语言,能够在硬件剧烈变化中保持韧性,并显著提升程序员的 productivity。但语言本身的未来,最终取决于整个并行编程社区是否愿意跳出「足矣」的安全区,去追求「更优」的长期价值。
硬件已准备好承载下一个计算时代,编程语言不应成为瓶颈。
资料来源:本文核心数据和观点主要参考 Chapel 官方博客文章《Reflections on 30 Years of HPC Programming: So many hardware advances, so little adoption of new languages》(2026 年 4 月),该文基于 HIPS 2025 和 CLSAC 2025 上的 keynote 演讲整理。