次の方法で共有


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 プロセス トポロジ関数

MPI_Dist_graph_create_adjacent

MPI_Dist_graph_neighbors_count

MPI_Dist_graph_neighbors