MPI_Dist_graph_create_adjacent関数
分散グラフ トポロジ情報がアタッチされている新しいコミュニケーターへのハンドルを返します。
構文
int WINAPI MPI_Dist_graph_create_adjacent(
_In_ MPI_Comm comm_old,
_In_range_(>=,0) int indegree,
_In_reads_opt const int sources[],
_In_reads_opt const int sourceweights[],
_In_range_(>=,0) int outdegree,
_In_reads_opt const int destinations[],
_In_reads_opt const int destweights[],
_In_ MPI_Info info,
_In_range_(0,1) int reorder,
_Out_ MPI_Comm *comm_dist_graph
);
パラメーター
comm_old [in]
トポロジ情報のないコミュニケーターのハンドル (ハンドル)。indegree
ソース配列と sourceweights 配列のサイズ (負以外の整数)。sources[]
呼び出し元のプロセスが宛先であるプロセスのランク (負以外の整数の配列)。sourceweights[]
呼び出し元プロセスへの対応するエッジの重み付け (負以外の整数の配列)。outdegree
変換先配列と destweights 配列のサイズ (負以外の整数)。destinations[]
呼び出し元のプロセスがソースであるプロセスのランク (負以外の整数の配列)。destweights[]
呼び出しプロセスの対応するエッジの重み (負以外の整数の配列)。info [in]
重みの最適化または解釈に関するヒント (ハンドル)。 現在 、この 変数は内部で使用されていないため、MPI_INFO_NULLを使用しています。並べ替える
ランクは、並べ替え (true) または (false) (論理) することはできません。 現在、これは内部では使用されません。comm_dist_graph [out]
分散グラフ トポロジ情報がアタッチされたコミュニケーターへのハンドル (ハンドル)。
戻り値
成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。
Fortran では、戻り値は IERROR パラメーターに格納されます。
Fortran
MPI_DIST_GRAPH_CREATE_ADJACENT (COMM_OLD, INDEGREE, SOURCES, SOURCEWEIGHTS,
OUTDEGREE, DESTINATIONS, DESTWEIGHTS, INFO, REORDER,
COMM_DIST_GRAPH, IERROR)
INTEGER COMM_OLD, INDEGREE, SOURCES (*), SOURCEWEIGHTS (*), OUTDEGREE,
DESTINATIONS (*), DESTWEIGHTS (*), INFO, COMM_DIST_GRAPH, IERROR
LOGICAL REORDER
注釈
comm_old コミュニケーターの各プロセスは、仮想分散グラフ トポロジ内の受信エッジと送信エッジに関するすべての情報を渡します。 呼び出し元のプロセスでは、グラフが重み付けされている場合、グラフの各エッジがソースと宛先プロセスで同じ重みで記述されていることを確認する必要があります。 特定のソースと宛先のペアに対して複数のエッジがある場合、これらのエッジの重みのシーケンスは重要ではありません。
完全な通信トポロジは、 comm_old内のすべてのプロセスのソース配列に表示されるすべてのエッジの組み合わせです。これは、 destinations 配列に表示されるすべてのエッジの組み合わせと同じである必要があります。 ソースと宛先のランクは、 comm_oldのプロセス ランクである必要があります。 これにより、通信グラフを完全に分散した仕様が可能になります。 分離されたプロセス、つまり、分散トポロジに受信エッジまたは発信エッジがなく、 従って、不一時 または 出力 、またはその両方を 0 として持つプロセスが許可されます。
新しく作成されたコミュニケーター (comm_dist_graph) 内のプロセスの数は、 comm_old内のプロセスの数と同じです。 この関数の呼び出しは集合的です。
重みは、グラフが重み付きグラフの場合、 ソースウェイト 配列と destweights 配列を使用して負以外の整数として指定されます。 アプリケーションでは、ソースウェイト配列と destweights 配列の両方に対してMPI_UNWEIGHTEDを指定して、すべてのエッジが同じ (実質的になし) 重みを持っていることを示す必要があります。 comm_oldの一部のプロセスではなく、一 部のプロセス にMPI_UNWEIGHTEDを提供 すると誤っています。 このような場合の動作は保証されません。 グラフが重み付けされているのに、プロセス の不一重 または 出力 が 0 の場合、 MPI_WEIGHTS_EMPTY またはそのプロセスによって任意の配列が ソースウェイト または デストウェイト に渡される可能性があります。
要件
製品 |
Microsoft MPI v6 |
ヘッダー |
Mpi.h;Mpif.h |
ライブラリ |
Msmpi.lib |
[DLL] |
Msmpi.dll |