MPI_Win_lock-Funktion
Beginnt eine RMA-Zugriffsepoche beim Zielprozess.
Syntax
int MPIAPI MPI_Win_lock(
int lock_type,
int rank,
int assert,
MPI_Win win
);
Parameter
lock_type
Gibt an, ob andere Prozesse gleichzeitig auf das Zielfenster zugreifen können (wenn MPI_LOCK_SHARED) oder nicht (MPI_LOCK_EXCLUSIVE).rank
Rang des gesperrten Fensters.Assert
Wird verwendet, um diesen Aufruf zu optimieren; 0 kann als Standard verwendet werden.win
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_LOCK(LOCK_TYPE, RANK, ASSERT, WIN, IERROR)
INTEGER LOCK_TYPE, RANK, ASSERT, WIN, IERROR
Hinweise
Der Name dieser Routine ist irreführend. Insbesondere muss diese Routine nicht blockiert werden, es sei denn, der Zielprozess ist der aufrufende Prozess.
Implementierungen können die Verwendung der RMA-Kommunikation einschränken, die durch Sperraufrufe von Fenstern im von MPI_Alloc_mem zugeordneten Arbeitsspeicher synchronisiert wird. Sperren können nur in diesem Speicher portabel verwendet werden.
Das Assert-Argument wird verwendet, um besondere Bedingungen für den Zaun anzugeben, die eine Implementierung verwenden kann, um den MPI_Win_fence Vorgang zu optimieren. Der Wert 0 ist immer richtig. Andere Assertionswerte können zusammen ODERsein. Assertionen, die für MPI_Win_fence gültig sind, sind:
- MPI_MODE_NOCHECK : Kein anderer Prozess hält oder versucht, eine in Konflikt stehende Sperre abzurufen, während der Aufrufer die Fenstersperre hält. Dies ist nützlich, wenn der gegenseitige Ausschluss auf andere Wege erreicht wird, aber die Kohärenzvorgänge, die an die Sperr- und Entsperraufrufe angefügt werden können, sind weiterhin erforderlich.
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 |