6

.net 4.0タスク並列ライブラリは高性能コンピューティング用のMPI.NETに取って代わりますか?

ここにあるMPI.NEThttp ://www.osl.iu.edu/research/mpi.net/svn/は、Microsoftの.NET環境用のMessage Passing Interface(MPI)の高性能で使いやすい実装です。 。MPIは、コンピューティングクラスターなどの分散メモリシステムで実行される並列プログラムを作成するための事実上の標準です。

.NET 4 TPLによると:「タスク並列ライブラリ(TPL)は、.NETFrameworkバージョン4のSystem.ThreadingおよびSystem.Threading.Tasks名前空間のパブリックタイプとAPIのセットです。TPLの目的は開発者は、アプリケーションに並列処理と並行処理を追加するプロセスを簡素化することで生産性を高めます。TPLは、並行性の程度を動的にスケーリングして、使用可能なすべてのプロセッサーを最も効率的に使用します。さらに、TPLは、作業の分割、スレッドのスケジューリングを処理します。 ThreadPool、キャンセルサポート、状態管理、およびその他の低レベルの詳細について。TPLを使用することで、プログラムが実行するように設計された作業に集中しながら、コードのパフォーマンスを最大化できます。」

私の目標は、Windows HPC 2008で実行できるアプリケーションを構築すること です...どちらに進むか?

4

2 に答える 2

7

私が理解していることから、TPL は分散コンピューティングをサポートしていませんが、MPI.NET はサポートしています。

于 2010-06-24T07:45:57.160 に答える
2

メッセージ パッシングは、並列プログラミングの考え方に対処する別の方法です。Axum と Erlang はどちらもメッセージ パッシングを使用します。どちらも 2 つの特定の実装に対処しているため、直接比較することはできません。

私が見たメッセージ パッシングの利点は、ネットワーク/プロセス境界を透過的にすることができ、メッセージ パッシング自体が基になるスレッドに依存しないことです (すべてのメッセージとアクターを 1 つのスレッドに配置できます)。

私の限られた理解では、TPL は .NET の現在のスレッド モデルを構築/置換/大幅に改善するためにあります。つまり、制御する実際のスレッドがあり、引数を転送するか、共有状態を使用して通信します。

それがゼロからであり、設計がコードの非常に小さなセグメントに分割されている場合は、MPI.NET をお勧めします。仕事の種類が CPU 集中型 (数学的な仕事など) である場合は、TPL ルートをお勧めします。

編集:長い編集、この答えは古いです!MPI.NET は、HPC ノードの通信境界を透過的かつ構成可能にするため、HPC に直接適しています。MPI.NET はメッセージをエンドポイントに送信します。これらのポイントは、構成ファイルで IP/ポート アドレスとして定義されます。コードは、エンドポイントがネットワーク境界を越えることを知りません。

HPC で TPL を選択した場合 (サポートされているかどうかはわかりません)、コードはノードと、あるノードから別のノードに処理を転送する方法を認識する必要があるため、メリットはありません。

于 2010-06-04T15:57:13.647 に答える