MPI_Dist_graph_create関数
分散グラフ トポロジ情報がアタッチされている新しいコミュニケーターへのハンドルを返します。
構文
int WINAPI MPI_Dist_graph_create(
_In_ MPI_Comm comm_old,
_In_range_(>=,0) int n,
_In_reads_opt const int sources[],
_In_reads_opt const int degrees[],
_In_opt const int destinations[],
_In_opt const int weights[],
_In_ MPI_Info info,
_In_range_(0,1) int reorder,
_Out_ MPI_Comm *comm_dist_graph
);
パラメーター
comm_old [in]
トポロジ情報のないコミュニケーターのハンドル (ハンドル)。n
このプロセスで発信エッジを指定するソースの数 (負以外の整数)。sources[]
このソースが出力エッジ (負以外の整数の配列) を指定する n 個のソースを含む配列。degrees[]
ソース ノード配列内の各ソース ノードの宛先の数を指定する配列 (負以外の整数の配列)。destinations[]
ソース配列内のソース ノードの宛先ノード (負以外の整数の配列)。weights[]
destinations 配列内の対応するエッジの重み (負以外の整数の配列)。info [in]
重みの最適化または解釈に関するヒント (ハンドル)。 現在 、この 変数は内部で使用されていないため、MPI_INFO_NULLを使用しています。並べ替える
ランクは、並べ替え (true) または (false) (論理) することはできません。 現在、これは内部では使用されません。comm_dist_graph [out]
分散グラフ トポロジ情報がアタッチされたコミュニケーターへのハンドル (ハンドル)。
戻り値
成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。
Fortran では、戻り値は IERROR パラメーターに格納されます。
Fortran
MPI_DIST_GRAPH_CREATE (COMM_OLD, N, SOURCES, DEGREES, DESTINATIONS, WEIGHTS,
INFO, REORDER, COMM_DIST_GRAPH, IERROR)
INTEGER COMM_OLD, N, SOURCES (*), DEGREES (*), DESTINATIONS (*),
WEIGHTS (*), INFO, COMM_DIST_GRAPH, IERROR
LOGICAL REORDER
注釈
ソース配列と変換先配列の両方に同じノードが複数回含まれる場合があり、ノードが宛先またはソースとしてリストされる順序は重要ではありません。 同様に、異なるプロセスで、同じソース ノードと宛先ノードを持つエッジが指定される場合があります。 ソース ノードとターゲット ノードは、 comm_oldのプロセス ランクである必要があります。 プロセスによって、ソース ノードと宛先ノードの数が異なるだけでなく、ソースと宛先のエッジが異なる場合があります。 これにより、通信グラフを完全に分散した仕様が可能になります。 分離されたプロセス (出力エッジまたは受信エッジのないプロセス、つまり、グラフ仕様のソース ノードまたは宛先ノードとして発生しないプロセス) が許可されます。
comm_dist_graphのプロセス数は、comm_oldのプロセス数と同じです。 この関数の呼び出しは集合的です。
C または FORTRAN では、アプリケーションは重み配列のMPI_UNWEIGHTEDを指定して、すべてのエッジが同じ (実質的になし) 重みを持っていることを示すことができます。 comm_oldの一部のプロセスではなく、一 部のプロセス にMPI_UNWEIGHTEDを提供 すると誤っています。 このような場合の動作は保証されません。 グラフが重み付けされているが、 n = 0 の場合は、 MPI_WEIGHTS_EMPTY または任意の配列を 重み付けに渡すことができます。
要件
製品 |
Microsoft MPI v6 |
ヘッダー |
Mpi.h;Mpif.h |
ライブラリ |
Msmpi.lib |
[DLL] |
Msmpi.dll |
こちらもご覧ください
MPI_Dist_graph_create_adjacent