One-sided Communication
Basic idea:
task can directly access memory of other tasks (similar to shared memory model)
owner of a memory area must allow access
several synchronisation methods available
Application areas:
irregularly distributed data (f.i. sparse matrices)
dynamical load balancing with strongly varying task sizes (e.g. in computational chemistry)
Important functions:
MPI_Alloc_mem
allocation of suitable memory
MPI_Win_create
,
MPI_Win_free
creates/destroys a window = memory area which can be accessed by tasks of the same group
MPI_Get
,
MPI_Put
,
MPI_Accumulate
remote memory access: read, write, sum/multiply etc.
MPI_Win_lock
,
MPI_Win_unlock
access synchronisation with locking mechanism (mutual exclusion)
MPI_Win_fence
synchronisation by access "barrier"
Example program
Peter Junglas 16.2.1999