マルチコンピューターシナリオでタスク並列ライブラリを使用する方法はありますか?
膨大な数のタスクがある場合、LAN経由で多数のサーバーでスケジュールできますか?
マルチコンピューターシナリオでタスク並列ライブラリを使用する方法はありますか?
膨大な数のタスクがある場合、LAN経由で多数のサーバーでスケジュールできますか?
TPLは、単一のコンピューター、複数のプロセッサーのコアシナリオを対象としています。
複数のシステムで作業する場合は、MPI(.NETでMPI.NETを介して直接使用可能)やWindows HPCに基づく多くのオプションの1つなど、ある種のクラスタリングソフトウェアを使用する必要があります。
そうは言っても、TPLはクラスターの各ノードで非常に役立ちます。これを使用して、各クラスターノードをそのノードで使用可能なコア全体に適切にスケーリングさせることができます。
プロセス内のローカルスレッドに焦点を当てたTPLはありません。ただし、この分野に取り組む既存のプロジェクトがあります。
http://research.microsoft.com/en-us/projects/dryad/
そして、あなたはこのSOの質問への答えを見ることができます
TPLのデフォルト設定は、.NETスレッドプールでタスクをスケジュールすることです。そのため、これは単一プロセス内の並列処理を目的としています。ただし、タスクが実際に実行される方法を処理する独自のTaskSchedulerを実装できるため、少なくとも理論的には、現在のスコープを超えて移動できます。これは可能ですが、ReedCopseyとChrisTaylorが指摘しているように、より良いオプションが利用できると確信しています。