質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

MPI

MPIは、並列プログラミングを利用するための標準化規格、及び実装自体のことを指します。バイト列で構成されたメッセージとして、いくつかのCPUが情報を送受信することにより協調動作を可能にします。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

944閲覧

OpenMPI tagの定義

Weapon

総合スコア106

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

MPI

MPIは、並列プログラミングを利用するための標準化規格、及び実装自体のことを指します。バイト列で構成されたメッセージとして、いくつかのCPUが情報を送受信することにより協調動作を可能にします。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/10/31 06:59

前提・実現したいこと

OpenMPIでの MPI_RecvMPI_Isend などの通信関数において tag 引数が存在しますが
(1) これらはいつ使われるものなのでしょうか?
サンプルでは大抵0が入れられていますが MPI_Prove でこの値は取得することができるためユーザー定義して利用できるならそうしようと思ったのですが
(2) この値はユーザー定義できるのでしょうか?
それができるのでしたら
(3)なにかシステムにcommitしなければいけなかったりするのでしょうか?定数値の共有でいいでしょうか?

Example

C

1/* MPI_Isend */ 2int MPI_Recv( 3 void *buf, 4 int count, 5 MPI_Datatype datatype, 6 int source, 7 int tag, 8 MPI_Comm comm, 9 MPI_Status *status 10)

補足情報

Windows10 Pro Hyper-V Ubuntu 20.04.1
OpenMPI 4.0.5 gcc g++

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(1) これらはいつ使われるものなのでしょうか?
(2) この値はユーザー定義できるのでしょうか?

tagは、送受信するデータを区別するための値です。
シンプルなプログラムであれば、あるタイミングでやり取りするデータは1種類にすることになるでしょうから、「どんなデータか」を区別する必要はないですが、MPI的には複数のデータ送受信が混ざっていても区別できる仕組みとしてtagを設けているということです。
この「区別」はあくまでユーザが決めているものですので、どんな値にするかはユーザの自由です。( 整数値として、0~MPI_TAG_UB の間にする必要はあります )

送信側はtagを指定して送るだけですが、受信側はtagを指定して受信するデータを選ぶことも、MPI_TAG_ANY という特別な値を指定して無差別に受信する ( tag情報を見てデータを判断する ) ということも可能です。

(3)なにかシステムにcommitしなければいけなかったりするのでしょうか?定数値の共有でいいでしょうか?

対応する送受信処理でtagの値が一致するように、通信が混在する時は異なるtagの値で区別できるように、ユーザが自由に設定してください。定数値で構いません。MPIのシステムになにか事前登録するようなものではありませんし、tagの不整合があったりしてもシステムで面倒を見てはくれません。( 通信が想定通りにできないだけ )

投稿2020/10/31 09:10

angel_p_57

総合スコア1681

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問