跳到正文

Chapel

一种开源并行编程语言,用于高效的高性能计算。

最近更新 2026年8月25日

AI 爬虫读取

1次请求

1家公司
  • Anthropic1
词条页
1
争议页
0
JSON · MD
0
首次读取
2026年11月4日
最近读取
2026年11月4日

统计自 2026年10月28日 · 数据来自本站服务器日志

概览

Chapel,又称Cascade高生产率语言,是一种为并行和高性能计算设计的开源编程语言。它起源于Cray的Cascade项目,该项目参与了美国国防高级研究计划局的高生产率计算系统计划。该项目旨在通过改善编写软件所需的工作量与软件所能达到的性能之间的关系,使大规模超级计算机更具生产力。在惠普企业收购Cray后,Chapel继续在HPE的管理下作为开源项目发展,并以Apache许可证2.0版发布。 该语言旨在传统高性能计算工具与更注重生产力的编程语言之间占据中间地带。传统HPC开发历来严重依赖Fortran、C、C++、MPI、OpenMP及相关技术。这些工具能提供强大的性能和详细的控制,但通常要求程序员管理大量的实现和通信细节。Chapel则提供了更高级别的抽象来表达并行算法、数据结构、计算放置和局部性。其设计者还力求使该语言对熟悉Python、Java或MATLAB等语言的程序员易于上手,同时不排斥经验丰富的HPC开发者。 Chapel支持多种形式的并行性,包括数据并行、任务并行和嵌套并行。其编程模型包括对locale(表示计算区域或处理位置)以及分布式数据和计算的抽象。这些机制允许程序员表达数据和工作的位置,同时为编译器和运行时优化留出空间。该语言还包含面向对象和泛型编程能力,帮助用户创建可重用和通用的代码。 Chapel工具链主要用C和C++实现,编译器使用LLVM作为默认优化后端。Chapel通常生成原生二进制可执行文件,但在不使用LLVM的配置中也可以生成C代码。Chapel程序可以编译成可从C、Fortran和其他环境调用的库,包括面向Python的集成工作流。该语言还通过为NVIDIA和AMD图形处理器生成代码来支持GPU编程。 Chapel不是传统的消费品牌或商业软件产品。其身份与语言规范、编译器、运行时、库、文档、社区和开源开发项目相关联。其主要受众包括研究人员、工程师、教育工作者以及从事大规模并行系统、集群、超级计算机、加速器和数据密集型应用的开发者。其定位强调生产力、表现力、可移植性以及在保留面向性能的执行模型的同时扩展并行程序的能力。

沿革

Chapel由Cray作为Cascade项目的一部分开发。Cascade项目与美国国防高级研究计划局赞助的高生产率计算系统计划相关,该计划的广泛目标是提高超级计算系统的生产力。在此背景下,生产力不仅指原始机器性能,还指为先进并行硬件开发、维护和调整应用程序所涉及的时间、精力和复杂性。 该语言旨在提供比传统HPC编程方法更高级别的抽象,同时保留可扩展计算所需的机制。其设计借鉴了早期的并行和科学计算思想,包括高性能Fortran、ZPL以及与Cray MTA系统相关的并行扩展。Chapel没有要求开发者表达每一个低级通信和同步操作,而是引入了语言级概念,用于数据并行、任务并行、嵌套并行、分布、局部性和计算放置。 一个核心设计目标是弥合两种编程文化。传统HPC从业者通常使用Fortran、C或C++以及MPI和OpenMP等并行库或指令。与此同时,许多新程序员更熟悉Python、Java和MATLAB等注重生产力的语言。Chapel的设计者旨在提供简洁且富有表现力的结构,同时不放弃HPC专家期望的性能关注和执行控制。 Chapel随后成为一个开源项目,并以Apache许可证2.0版发布。惠普企业收购Cray改变了项目维护的企业环境,但该语言继续作为开源开发工作。该项目开发了一个编译器和运行时,旨在针对一系列并行环境,而不是单一专有超级计算机架构。 实现主要用C和C++编写,其中C++14被确定为实现要求之一,LLVM用作默认后端优化器。Chapel通常将程序编译为二进制可执行文件,而替代工作流可以生成C代码。工具链还支持将Chapel代码构建为可从C、Fortran和其他语言调用的库。可选开发和测试组件使用Python 3.7或更高版本,包括测试系统和c2chapel等工具,后者有助于生成C绑定。 随着时间的推移,Chapel的范围扩展到传统的面向CPU的分布式计算之外。该语言支持多核和分布式内存编程、子计算的数据驱动放置以及针对NVIDIA和AMD设备的GPU代码生成。这些能力反映了高性能计算向结合CPU、GPU和其他专用资源的异构系统发展的更广泛演变。 Chapel仍然主要是一种研究、教育和专业工程技术,而不是大众市场编程平台。其持续价值在于提供统一的语言模型来表达并行算法和数据结构,同时暴露足够的位置和放置信息以支持可扩展执行。

  • 在Cascade项目中创建

    [1]

    Chapel是在Cray创建的,作为Cascade项目的语言组件,该项目与DARPA的高生产率计算系统计划相关。

  • 转向开源开发

    [2]

    Chapel成为开源项目,以Apache许可证2.0版发布,使更广泛的使用和外部参与成为可能。

  • 在惠普企业下继续发展

    [1]

    在惠普企业收购Cray后,Chapel继续在HPE相关的开源生态系统中开发。

  • 扩展到GPU编程

    [2]

    Chapel工具链通过针对NVIDIA和AMD图形处理器的代码生成获得了对GPU编程的支持。

产品与定位

Chapel被定位为基于Fortran、C、C++、MPI和OpenMP的低级HPC编程方法的高生产力替代或补充。它力求将富有表现力的高级语言特性与对并行性、局部性、分布式数据和加速器编程的显式支持相结合。

  • 并行编程语言

    Chapel语言

    核心Chapel语言提供了用于数据并行、任务并行、嵌套并行、分布式数据、locale、局部性感知计算、面向对象编程和泛型编程的高级结构。它旨在让开发者比使用低级消息传递或线程接口更直接地表达并行算法,同时保留对数据和计算放置重要方面的控制。

  • 编译器工具链

    Chapel编译器和运行时

    Chapel编译器和运行时将Chapel程序转换为可执行或可互操作的输出,用于并行系统。实现主要用C和C++编写,使用LLVM作为默认优化后端,也可以生成C代码。Chapel程序可以构建为可从C和Fortran等语言调用的库,并为Python提供额外的互操作性工作流。

  • 加速器编程

    Chapel GPU支持

    Chapel通过为NVIDIA和AMD图形处理器生成编译器代码来支持面向GPU的编程。这将该语言的并行模型扩展到CPU计算与加速器执行相结合的异构系统。

品牌决策

  • 采用开源开发模式战略

    背景

    Chapel最初是作为Cray的研究和产品技术项目开发的,但后来作为开源语言项目维护。

    采取的行动

    该项目以Apache许可证2.0版发布,并可供更广泛的使用、研究和贡献。

    后续影响

    Chapel成为社区可访问的语言和工具链,而不是局限于专有硬件或企业环境。

  • 强调面向生产力的并行编程战略

    背景

    该项目旨在解决使用Fortran、C、C++、MPI和OpenMP的传统组合开发可扩展应用程序的复杂性。

    采取的行动

    Chapel围绕并行性、数据分布、局部性和计算放置的高级抽象进行设计,同时保留面向性能的控制。

    后续影响

    该语言通过尝试将高级语言的可访问性与HPC的可扩展性要求相结合,在并行编程技术中确立了独特的地位。

来源2 个来源

引用本词条: 请引用规范词条页。 /brand-wiki/chapel · 编辑方针 · 词条如何编纂