このプロジェクトについて

Bendは、HigherOrderCOによって開発され、HVM2ランタイムを搭載した、大規模並列処理向けに設計された高水準プログラミング言語です。PythonやHaskellのような言語の表現力と、CUDAスタイルのGPUコンピューティングのスケーリング動作を組み合わせることを目指しています。 READMEで強調されている言語機能には、高速なオブジェクト割り当て、クロージャを伴う高階関数の完全サポート、制限のない再帰、継続が含まれます。並列性は暗黙的です。READMEには、スレッド生成、ロック、ミューテックス、アトミックは不要と記載されています。並列に実行できるコードは並列に実行され、コア数に応じてほぼ線形の加速が得られ、プロジェクトは10000を超える同時スレッドをサポートすると主張しています。 インストールはRustのcargoを通じて行います。ユーザーは`cargo install hvm`でHVM2ランタイムをインストールし、次に`cargo install bend-lang`で言語をインストールします。手順にはLinuxとmacOSが含まれており、WindowsにはWSL2が推奨されています。CUDAランタイムにはNVIDIA CUDAツールキット12.xが必要で、READMEには現在NVIDIA GPUのみがサポートされていると記載されています。 プログラムは複数のバックエンドを通じて実行できます。`bend run-rs`はシーケンシャルなRustインタープリタ、`bend run-c`は並列Cインタープリタ、`bend run-cu`は大規模並列CUDAインタープリタを使用します。Bendコードは`gen-c`と`gen-cu`を介してスタンドアロンのCまたはCUDAファイルにコンパイルすることもできますが、READMEはコードジェネレータを初期段階と説明しています。`-s`フラグは、リダクション数、実行時間、1秒あたりのインタラクション数を報告します。 READMEでは、逐次処理と並列処理の総和計算の例を通じて、分割統治の定式化がどのように自動並列実行を可能にするかを説明しています。また、ビトニックソーターのベンチマークも示されており、報告されたタイミングは、Rustインタープリタ経由のApple M3 Max CPUで12.15秒、同じCPUでCインタープリタ経由では0.96秒、CUDAインタープリタ経由のNVIDIA RTX 4090 GPUでは0.21秒です。これらの数値はプロジェクト自身が報告した測定値です。 READMEは、現在のバージョンではシングルコア性能が低い可能性があり、コード生成と最適化技術が進歩するにつれて性能が向上するはずだと注意を促しています。追加リソースには、HVM2論文、GUIDE.md、FEATURES.md、examplesフォルダ、Discordコミュニティが含まれます。