次の方法で共有


MPI_Group_range_incl関数

既存のグループにランクのセットを追加することによって、新しいグループを定義するために使用されるグループ コンストラクター。

構文

int MPIAPI MPI_Group_range_incl(
        MPI_Group         group,
        int               n,
        _In_count_(n) int ranges[][3],
  _Out_ MPI_Group         *newgroup
);

パラメーター

  • group
    既存のグループ。

  • n
    配列範囲のトリプレットの数。

  • 範囲
    新しいグループに含めるプロセスの仕様の配列。 配列の各要素は、最初のランク、最後のランク、ストライドの 3 つの整数の形式でプロセスの範囲を指定します。

  • newgroup [out]
    新しいグループを表すハンドルへのポインター。 新しいグループには、ランクの追加セットが含まれています。 順序は 範囲によって定義されます。

戻り値

成功 したMPI_SUCCESS を返します。 それ以外の場合、戻り値はエラー コードです。

Fortran では、戻り値は IERROR パラメーターに格納されます。

Fortran

    MPI_GROUP_RANGE_INCL(GROUP, N, RANGES, NEWGROUP, IERROR)
        INTEGER GROUP, N, RANGES(3,*), NEWGROUP, IERROR

注釈

範囲がトリプレット (first1、last1、 stride1) 、...、(firstn、lastn、striden)、newgroup は、順位が first1、first1 + stride1、...、RoundDown((last1 - first1)/stride1)*stride1、...、firstn、firstn + striden、...、RoundDown((lastn - firstn)/striden)*striden を持つグループ内のプロセスのシーケンスで構成されます。

各計算ランクは、新しいグループ内の有効なランクである必要があり、計算されたすべてのランクは個別である必要があります。 それ以外の場合、関数はエラーを返します。

Note

first[i] を last[i] より大きく設定でき、stride[i] は負の値にできますが、0 にすることはできません。

 

これはローカル操作です。 異なるプロセスで個別のグループを定義できます。 プロセスでは、それ自体を含まないグループを定義できます。

MPI 実装では、グループを最初から構築するためのメカニズムは提供されず、既存のグループからのみ提供されます。 他のすべてのグループが定義されている基本グループは、 MPI_Comm_group 関数を使用して取得できます。 初期コミュニケーター MPI_COMM_WORLDに関連付けられているグループです。

要件

製品

HPC Pack 2012 MS-MPI 再頒布可能パッケージ、HPC Pack 2008 R2 MS-MPI 再頒布可能パッケージ、HPC Pack 2008 MS-MPI 再頒布可能パッケージまたは HPC Pack 2008 クライアント ユーティリティ

ヘッダー

Mpi.h;Mpif.h

ライブラリ

Msmpi.lib

[DLL]

Msmpi.dll

こちらもご覧ください

MPI グループ関数

MPI_Group_incl

MPI_Comm_group