単にタスクベースではなく、分散タスクの永続性をサポートする、.Net / Mono 用の分散コンピューティング用のフレームワーク (オープン ソース) を探しています。
手元にあるプロジェクトは、複雑なシステム シミュレーションであり、より小さな独立した「サブシミュレーション」に分散する必要があります。これらのサブシミュレーションは長時間実行され続け、一定間隔でデータを受信してマスターに送り返します。マスターでは、集計結果を含むビューが更新され、ユーザーに提示されます。
したがって、分散される作業 (サブシミュレーション) はステートフルであり、複数のセッションにまたがって長時間ワーカーに (オンラインまたはオフラインで) 存在し続ける必要があります。これには、ワーカーによるローカル永続ストレージ (シリアライゼーション) が必要になります (サブシミュレーションは非常に大きく、セッションごとにマスターとやり取りするのは効率的ではありません)。
このフレームワークは、さまざまな実装 (つまり、ローカル クラスター、インターネット、単一のマシン、サード パーティのクラウド プラットフォーム) を使用できるようにすることで、使用されている実際の基盤となるネットワークまたはクラウド プラットフォームに関する透過性を提供する必要があります。
モデル/シミュレーション レベルで、ネットワーク レイテンシに応じてパフォーマンスを調整できるとよいでしょう (たとえば、ワーカーとマスターの間で送信されるデータの頻度と粒度を調整することにより)。
NGrid を見ましたが、これは未完成で時代遅れのようです。また、他の通常の疑わしいもの (MPAPI、MPI.NET、Alchemi など) もいくつか調べましたが、私が知る限り、これらは要件を満たしていません。そのようなフレームワークが存在しない場合は、そのようなフレームワークの設計に関するヒントに興味があります。