Chapelは、クレイ社によって開発されている
プログラミング言語であり、現在も「クレイ・カスケード・プロジェクト」の一環として開発が続けられています。このプロジェクトは、元々、米国
国防高等研究計画局(DARPA)の高生産性計算機システム(HPCS)プロジェクトの一部であり、その目標は2010年までにスーパーコンピュータの生産性を向上させることでした。Chapelは、特にCascade(カスケード)と呼ばれるシステムにおいて、並列計算機のプログラミング効率を改善することを目指しています。
Chapelの設計思想は、既存の
プログラミング言語よりも高度なレベルでアルゴリズムを表現できるようにすること、そしてアルゴリズムの表現とデータ構造の詳細な実装を分離することにあります。これにより、プログラマはより抽象的なレベルで問題を解決し、同時に、パフォーマンスを最適化するための柔軟性を維持することができます。
Chapelの特徴
並列処理のサポート: Chapelは、データ並列とタスク並列の両方をサポートする仕組みを備えています。これにより、マルチスレッド並列プログラミングモデルを効率的に活用できます。データの分散やデータ駆動型の演算割り当ては抽象化されており、プログラムにおけるデータと演算の局所性を最適化することが可能です。
オブジェクト指向と汎用プログラミング: オブジェクト指向プログラミングとジェネリックプログラミングの機能を備えており、コードの再利用性と汎用性を高めることができます。例えば、Chapelではロケールを宣言することで、計算の実行場所を明示的に指定できます。
先行言語からの影響: Chapelは、並列処理に関する考え方において、High Performance Fortran (HPF)、ZPL、Cray MTAのFORTRAN拡張、C言語拡張など、先行する言語からアイデアを取り入れています。
オープンソース: 2021年現在、Apache 2.0ライセンスの下でオープンソースプロジェクトとして開発が進められています。誰でもChapelのソースコードにアクセスし、貢献することができます。
*
言語名の由来: Chapelという名前は、「cascade high productivity language」(多段高生産性言語)に由来しています。
関連技術
Chapelは、
Unified Parallel C、Fortress、Co-array Fortran、X10などの区分化大域アドレス空間(PGAS)言語と関連があります。これらの言語は、分散メモリ環境での並列プログラミングを容易にすることを目指しています。
まとめ
Chapelは、高性能な並列計算機向けの
プログラミング言語として、その開発が続けられています。高い生産性と効率的な並列処理を両立させることを目指し、データ並列、タスク並列、
オブジェクト指向、ジェネリックプログラミングなどの機能を備えています。オープンソースであるため、研究者や開発者は自由に利用し、貢献することができます。
公式ウェブサイト
99 Bottles of Beer