クラスター上に分散システムを実装することを目指しています。これは、リソースを消費する画像ベースのコンピューティングを大量のストレージ I/O で実行し、次の特性を備えています。
- 専用のマネージャー コンピューター ノードと最大 100 の計算ノードがあります。クラスタは簡単に拡張できる必要があります。
- これは、ジョブ タスクの概念に基づいて構築されています。ジョブには、1 ~ 100,000 のタスクが含まれる場合があります。
- ユーザーがマネージャ ノードでジョブを開始すると、計算ノードでタスクが作成されます。
- タスクは、その場で他のタスクを作成します。
- 実行に数分かかるタスクもあれば、何時間もかかるタスクもあります。
- タスクは依存関係の階層に従って実行され、オンザフライで更新される場合があります。
- ジョブは一時停止され、後で再開される場合があります。
- 各タスクには、CPU (コア)、メモリ、およびローカル ハード ディスク領域に関して特定のリソースが必要です。マネージャーは、タスクをスケジュールするときにこれを認識しておく必要があります。
- タスクは、進行状況と結果をマネージャーに伝えます。
- マネージャは、タスクが有効かハングしているかを認識しています。
Windows HPC Server 2008 (HPCS) R2 は、私たちが必要としている概念に非常に近いものでした。ただし、いくつかの重大な欠点があります。
- タスクの数が増えると、タスクの作成が指数関数的に遅くなります。数千を超えるタスクを提出することは、時間的に耐えられません。
- タスクはその進行状況をマネージャーに報告できません。できるのはジョブだけです。
- 実行時にタスクとの通信がないため、タスクが実行中かどうか、または再起動が必要かどうかを確認できません。
- HPCS はノード、CPU コア、およびメモリのみをリソース単位として認識します。独自のリソース ユニット (空きディスク容量、カスタム ハードウェア デバイスなど) を導入することはできません。
これが私の質問です。私たちを助けることができる分散コンピューティングフレームワークを知っている、または経験したことがある人はいますか? Windowsを使用しています。