共用方式為


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 引數。

  • 通訊
    內部通訊器。

  • 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 = 0 有效。 使用者必須負責確保 communicator 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 Communications 函式