Freigeben über


MPI_Win_allocate_shared-Funktion

Erstellt ein MPI Window-Objekt, das Arbeitsspeicher zuweist. Auf zugeordneten Arbeitsspeicher kann von allen Prozessen in der Gruppe des Fensters mit Anweisungen zum direkten Laden/Speichern zugegriffen werden.

Syntax

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
);

Parameter

  • size
    Größe des Speicherfensters in Bytes.

  • disp_unit
    Lokale Einheitsgröße für Verschiebungen in Bytes.

  • info
    Info-Argument.

  • comm
    Innerhalb des Kommunikators.

  • baseptr [out]
    Adresse des lokal zugeordneten Fenstersegments.

  • win [out]
    Vom Aufruf zurückgegebenes Window-Objekt.

Rückgabewert

Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.

In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.

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

Hinweise

Dies ist ein kollektiver Aufruf, der von allen Prozessen in der Gruppe von comm ausgeführt wird. Bei jedem Prozess wird Arbeitsspeicher von mindestens Bytes zugeordnet, der von allen Prozessen in comm gemeinsam genutzt wird, und gibt einen Zeiger auf das lokal zugeordnete Segment in baseptr zurück, der für Lade-/Speicherzugriffe auf den aufrufenden Prozess verwendet werden kann. Der lokal zugeordnete Arbeitsspeicher kann das Ziel von Lade-/Speicherzugriffen durch Remoteprozesse sein. Die Basiszeiger für andere Prozesse können mithilfe der Funktion MPI_Win_shared_query abgefragt werden. Der Aufruf gibt auch ein Fensterobjekt zurück, das von allen Prozessen in comm zum Ausführen von RMA-Vorgängen verwendet werden kann. Das Size-Argument kann bei jedem Prozess unterschiedlich sein, und größe = 0 ist gültig. Es liegt in der Verantwortung des Benutzers sicherzustellen, dass der Communicator comm eine Gruppe von Prozessen darstellt, die ein freigegebenes Speichersegment erstellen können, auf das alle Prozesse in der Gruppe zugreifen können.

Anforderungen

Produkt

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package oder HPC Pack 2008 Client Utilities

Header

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Weitere Informationen

MPI One-Sided Communications Functions