0

単にタスクベースではなく、分散タスクの永続性をサポートする、.Net / Mono 用の分散コンピューティング用のフレームワーク (オープン ソース) を探しています。

手元にあるプロジェクトは、複雑なシステム シミュレーションであり、より小さな独立した「サブシミュレーション」に分散する必要があります。これらのサブシミュレーションは長時間実行され続け、一定間隔でデータを受信して​​マスターに送り返します。マスターでは、集計結果を含むビューが更新され、ユーザーに提示されます。

したがって、分散される作業 (サブシミュレーション) はステートフルであり、複数のセッションにまたがって長時間ワーカーに (オンラインまたはオフラインで) 存在し続ける必要があります。これには、ワーカーによるローカル永続ストレージ (シリアライゼーション) が必要になります (サブシミュレーションは非常に大きく、セッションごとにマスターとやり取りするのは効率的ではありません)。

このフレームワークは、さまざまな実装 (つまり、ローカル クラスター、インターネット、単一のマシン、サード パーティのクラウド プラットフォーム) を使用できるようにすることで、使用されている実際の基盤となるネットワークまたはクラウド プラットフォームに関する透過性を提供する必要があります。

モデル/シミュレーション レベルで、ネットワーク レイテンシに応じてパフォーマンスを調整できるとよいでしょう (たとえば、ワーカーとマスターの間で送信されるデータの頻度と粒度を調整することにより)。

NGrid を見ましたが、これは未完成で時代遅れのようです。また、他の通常の疑わしいもの (MPAPI、MPI.NET、Alchemi など) もいくつか調べましたが、私が知る限り、これらは要件を満たしていません。そのようなフレームワークが存在しない場合は、そのようなフレームワークの設計に関するヒントに興味があります。

4

2 に答える 2

1

Microsoft DSS / CCR フレームワークを見たことがありますか? これは SOA であり、最初はロボティクス プラットフォームで開発されたコンカレント フレームワークです。以前は、トラフィック シミュレータを作成するために使用していました。それ自体はオープンではありませんが、それほど高価ではありません。学界では無料だと思います。

並列ジョブを作成するロジックを作成する必要がありますが、理論上はそれほど難しくありません。フレームワークには、多数の管理ツールがあります。

Hadoop も別の選択肢であり、おそらく私が推奨するものです。Hadoop ファイル システムを使用するこのソリューションでは、作成したストレージ要求がより実行可能になります。

http://wiki.apache.org/hadoop/HadoopStreaming Apache Hadoop に相当する .NET はありますか?

また、上記の SO スレッドには、myspace テクノロジ http://code.google.com/p/qizmt/があります。

于 2010-08-17T18:32:25.377 に答える
0

Gearman ( http://gearman.org/ ) をご覧ください。あなたが言及した要件のほとんどを提供します。Gearman の主な問題は、サーバーを Linux マシンでホストする必要がある (またはサーバーの PEARL または Python 実装を使用する) ことです。ノードは、任意の環境/プラットフォームで実行できます。

于 2010-07-19T15:26:22.770 に答える