Der MPI-3-Standard besagt, dass MPI_Win_lock(...)
mit dem Sperrtyp MPI_LOCK_SHARED
genau dann eine blockierende (exklusive) Sperre sein muss, wenn Ursprung und Ziel identisch sind. MPI_Win_lock_all
ist das Sperren aller Prozesse im Fenster mit dem Lock-Typ MPI_LOCK_SHARED
.
Bedeutet dies, dass MPI_Win_lock_all
auch eine exklusive Sperre vom Ursprung zum Ursprung selbst erzeugt?
Nein. MPI_Win_lock_all
löst eine gemeinsame Sperre bei allen Prozessen aus, die dem Fenster zugeordnet sind (technisch gesehen, in der Gruppe, die dem Fenster zugeordnet ist).
In jedem Fall sind eine gemeinsame Sperre und eine exklusive Sperre unterschiedlich. Bitte fassen Sie die Möglichkeit nicht zusammen, dass die geteilte Lock-Erfassung in einem Remote-Zustand mit einer exklusiven Sperre blockiert wird.