次の方法で共有


MPI_Win_allocate_shared関数

メモリを割り当てる MPI Window オブジェクトを作成します。割り当てられたメモリは、直接読み込み/ストア命令を使用してウィンドウのグループ内のすべてのプロセスからアクセスできます。

構文

int MPIAPI MPI_Win_allocate_shared(
        MPI_Aint size,
        int      disp_unit,
        MPI_Info info,
        MPI_Comm comm,
  _Out_ void     *baseptr,
  _Out_ MPI_Win  *win
);

パラメーター

  • size
    メモリ ウィンドウのサイズ (バイト単位)。

  • disp_unit
    変位のローカル単位サイズ (バイト単位)。

  • info
    Info 引数。

  • comm
    イントラコミュニケーター。

  • baseptr [out]
    ローカル割り当てウィンドウ セグメントのアドレス。

  • win [out]
    呼び出しによって返される Window オブジェクト。

戻り値

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

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

Fortran

    MPI_WIN_ALLOCATE_SHARED(SIZE, DISP_UNIT, INFO, COMM, BASEPTR, WIN, IERROR)
        <type> BASEPTR(*)
        INTEGER(KIND=MPI_ADDRESS_KIND) SIZE
        INTEGER DISP_UNIT, INFO, COMM, WIN, IERROR

注釈

これは、comm のグループ内のすべてのプロセスによって実行される集合呼び出しです。各プロセスでは、comm 内のすべてのプロセス間で共有される少なくともサイズ バイトのメモリを割り当て、呼び出し元プロセスの読み込み/ストア アクセスに使用できる baseptr 内のローカルに割り当てられたセグメントへのポインターを返します。 ローカルに割り当てられたメモリは、リモート プロセスによるロード/ストア アクセスのターゲットにすることができます。他のプロセスのベース ポインターは、関数 MPI_Win_shared_queryを使用してクエリを実行できます。 呼び出しは、comm 内のすべてのプロセスが RMA 操作を実行するために使用できるウィンドウ オブジェクトも返します。 size 引数は各プロセスで異なる場合があり、size = 0 が有効です。 コミュニケーター comm が、グループ内のすべてのプロセスからアクセスできる共有メモリ セグメントを作成できるプロセスのグループを表すようにするのは、ユーザーの責任です。

要件

製品

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 One-Sided 通信関数