| ラフトライブラリ | |
|---|---|
| 原作者 | ジョナサン・ビアード |
| 初回リリース | 2014年後半 |
| 安定版リリース | 0.9 / 2020年1月 (2020年1月) |
| プレビューリリース | 1.0a / 2020年5月18日 ( 2020-05-18 ) |
| 書かれた | C++ |
| オペレーティング·システム | Linux、macOS、Windows |
| タイプ | データ分析、HPC、信号処理、機械学習、アルゴリズム、ビッグデータ |
| ライセンス | Apacheライセンス2.0 |
| Webサイト | www.raftlib.io |
RaftLib [ 1 ]は、プログラマの生産性を向上させながら極めて高いパフォーマンスを提供することを目的とした、移植性の高い並列処理システムです。これにより、プログラマはシンプルなiostreamのような演算子を用いて、超並列プログラム(ローカルおよび分散)を組み立てることができます。RaftLibは、スレッド処理、メモリ割り当て、メモリ配置、そして計算カーネルの自動並列化を処理します。[ 2 ]これにより、タスクとパイプラインの並列計算グラフを形成する計算カーネルのチェーンからアプリケーションを構築できます。プログラムはC++で記述されています(他の言語バインディングも計画されています)。
例
デモ用のHello Worldの例を以下に示します。[ 3 ]
< raft >をインポートします。< raftio >をインポートします。stdをインポートします。String = std :: stringを使用します。RaftKernel = raft :: kernelを使用します。RaftKernelStatus = raft :: kstatusを使用します。RaftMap = raft :: mapを使用します。RaftPrint = raft :: print を使用します。クラスHelloWorld : public RaftKernel { public : HelloWorld ( ) { output.addPort <String> ( " 0 " ) ; }仮想RaftKernelStatus run () {出力[ "0" ]。push ( " Hello World \n " ); return raft :: stop ; } };int main ( int argc , char * argv []) { // プリントカーネルをインスタンス化するRaftPrint < String > p ;// Hello World カーネルをインスタンス化しますHelloWorld hello ;// マップオブジェクトを作成するRaftMap m ;// カーネルをマップに追加します。hello と p は同時に実行されます。m + = hello >> p ;// マップを実行するm . exe ();0を返す; }参考文献
- ^ 「RaftLib: 高性能ストリーム並列処理のためのC++テンプレートライブラリ」(PDF) 。 2016年8月10日閲覧。
- ^ 「並列ストリーム処理システムのオンラインモデリングとチューニング」(PDF) 。 2016年8月10日閲覧。
- ^ 「Hello Worldの例」 。 2016年8月10日閲覧。