ラフトライブラリ

ラフトライブラリ
原作者ジョナサン・ビアード
初回リリース2014年後半
安定版リリース
0.9 / 2020年1月 (2020年1月
プレビューリリース
1.0a / 2020年5月18日 ( 2020-05-18 )
書かれたC++
オペレーティング·システムLinuxmacOSWindows
タイプデータ分析、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を返す; }

参考文献