MPIのランクとプロセスの違いは何ですか?MPIのランクとプロセスの違いは何ですか?
答えて
ランクは、プロセスに番号を付ける論理的な方法です。たとえば、16の並列プロセスを実行しているとします。現在のプロセスのランクをMPI_Comm_rank
で照会すると、0-15となります。
ランクは、プロセスを互いに区別するために使用されます。基本的なアプリケーションでは、ランク1〜15の "スレーブ"アプリケーションにメッセージを送信するrank = 0の "master"プロセスがあるでしょう。より高度なアプリケーションでは、ランクを使用して作業負荷をさらに分割することができます(つまり、ランク0のマスタプロセス、1-7は機能Aを実行、8-15は機能Bを実行します)。
Hereは私がMPIをすべて学んだリソースです。役に立つと思うかもしれません。
プロセスは実行中のプログラムの実際のインスタンスです。 MPIでは論理的なのグループのプロセスを作成することができ、各グループでは、プロセスはのランクで識別されます。これは[0、N-1]の範囲の整数で、Nはグループのサイズです。 コミュニケータは、プロセス間の通信を処理するオブジェクトです。 内部コミュニケータは、単一グループ内のプロセスを処理し、インターコミュニケータは、2つの異なるグループ間の通信を処理します。
デフォルトでは、すべてのプロセスを含む単一のグループと、それらの間の通信を処理するイントラコミュニケータのMPI_COMM_WORLD
があります。これはほとんどのアプリケーションには十分であり、プロセスとランクの区別がぼやけます。覚えておくべき重要なことは、プロセスのランクは常にグループに関連していることです。プロセスを2つのグループに分けた場合(たとえば、入力を読み取るグループとデータを処理するグループ)、各プロセスは2つのランクを持つようになりました。最初はMPI_COMM_WORLD
にあり、新しいグループに1つあります。
コミュニケータに属するすべてのプロセスは、そのランクによって一意に識別されます。プロセスのランクは、ゼロからコミュニケータのサイズ-1までの整数です。プロセスは、2つの引数を取るMPI_Comm_rank
関数を使用して通信中にその順位を決定することができる:コミュニケータと整数変数ランク:
int MPI_Comm_rank(MPI_Comm comm, int *rank)
パラメータrank
は、プロセスのランクを格納します。
これらのいずれかの関数を呼び出す各プロセスは、指定されたコミュニケータに属していなければなりません。そうでない場合、エラーが発生します。
- 1. ReactPHP:終了プロセスと終了プロセスの違いは何ですか?
- 2. ソケット/ノードのMPIランク/プロセス番号を特定する方法
- 3. エリクサーでは、ノードとプロセスの違いは何ですか?
- 4. プロセスとプロセスイメージの違いは何ですか?
- 5. LAM MPIとOpenMPIの違い
- 6. MPIグループへのMPIランク番号の一般化?
- 7. MPIインターコミュニケーション:ピアコミュニケータとは何ですか?
- 8. MPI:1つのMPIプロセスでプロセッサーが100%にならない
- 9. Androidでは、プロセスとキャッシュされたバックグラウンドプロセスの違いは何ですか?
- 10. ソフトウェア開発プロセスでは、「アーキテクチャ」と「設計」の違いは何ですか?
- 11. MPIはRecvを送信します。実行時に、誤ったプロセスのランクとセグメンテーションフォールト
- 12. MPIでソケットプログラミングのselect()と同等のものは何ですか?
- 13. MPIのすべてのランクをどのようにしてランク0にする値を送るのですか?
- 14. MPI。コミュニケータとプロセスの最大数
- 15. MPIプロセスの同期化
- 16. $と$$の違いは何ですか?
- 17. `##`と `hashCode`の違いは何ですか?
- 18. typedefとの違いは何ですか?
- 19. NodeJS:「./ ..」と「..」の違いは何ですか?
- 20. {}())と{})の違いは何ですか?
- 21. `&`と `ref`の違いは何ですか?
- 22. `==`と `is`の違いは何ですか?
- 23. difftimeと ' - 'の違いは何ですか?
- 24. #{} $ {}と%{}の違いは何ですか?
- 25. ⊕と+の違いは何ですか?
- 26. アペンダーと〜の違いは何ですか?
- 27. "./"と "../"の違いは何ですか?
- 28. "$^N"と "$ +"の違いは何ですか?
- 29. %Qと%{}の違いは何ですか?
- 30. バックスティックと$()の違いは何ですか?
本書の[セクション1.7](http://riad.pk.edu.pl/~zk/mpi-course.pdf)を参照してください。_WritingメッセージMPI_でパラレルプログラムを渡す。 – nbro