Type for managing a shared memory array using MPI shared memory windows.
More...
|
| generic | init (this, nr_elements, domain) |
| | Initialize a array in shared memory using a MPI shared memory window.
|
| |
| generic | init (this, nr_elements, comm, my_rank) |
| | Initialize a array in shared memory using a MPI shared memory window.
|
| |
| procedure | destroy (this) |
| | Destroy a shared memory array and free the associated MPI window.
|
| |
| procedure | fence (this) |
| | Synchronize access to the shared memory window.
|
| |
| procedure | leader (this) |
| | Check if this process is the leader in the shared memory communicator.
|
| |
| procedure | cat (this, other) |
| | Concatenate two shared memory windows (not implemented)
|
| |
|
|
real(wp), dimension(:), pointer, contiguous | window => null() |
| | Pointer to the shared memory array.
|
| |
|
integer | win_shmem_id |
| | MPI window identifier for the shared memory window.
|
| |
|
integer | comm |
| | MPI communicator for the shared memory domain.
|
| |
|
integer | my_rank |
| | Rank of this process in the shared memory communicator.
|
| |
|
integer | nr_ranks |
| | Number of ranks sharing this memory (size of comm)
|
| |
Type for managing a shared memory array using MPI shared memory windows.
◆ cat()
Concatenate two shared memory windows (not implemented)
- Parameters
-
| [in,out] | this | SharedMemoryWindow object to be concatenated to (output is [this, other]) |
| [in] | other | SharedMemoryWindow object to concatenate from |
◆ destroy()
| procedure m_tensorprod_shared::sharedmemorywindow::destroy |
( |
class(sharedmemorywindow), intent(inout) | this | ) |
|
Destroy a shared memory array and free the associated MPI window.
- Parameters
-
| [in,out] | this | SharedMemoryWindow object |
◆ fence()
| procedure m_tensorprod_shared::sharedmemorywindow::fence |
( |
class(sharedmemorywindow), intent(inout) | this | ) |
|
Synchronize access to the shared memory window.
- Parameters
-
| [in,out] | this | SharedMemoryWindow object |
◆ init() [1/2]
| generic m_tensorprod_shared::sharedmemorywindow::init |
( |
class(sharedmemorywindow), intent(inout) | this, |
|
|
integer, intent(in) | nr_elements, |
|
|
integer, intent(in) | comm, |
|
|
integer, intent(in) | my_rank ) |
Initialize a array in shared memory using a MPI shared memory window.
- Parameters
-
| [out] | this | SharedMemoryWindow object |
| [in] | nr_elements | Number of elements in the shared memory array |
| [in] | comm | MPI communicator for the shared memory domain (each rank on this communicator must be on the same node) |
| [in] | my_rank | Rank of this process in the shared memory communicator |
◆ init() [2/2]
| generic m_tensorprod_shared::sharedmemorywindow::init |
( |
class(sharedmemorywindow), intent(inout) | this, |
|
|
integer, intent(in) | nr_elements, |
|
|
type(tensorproddomain), intent(in) | domain ) |
Initialize a array in shared memory using a MPI shared memory window.
- Parameters
-
| [out] | this | SharedMemoryWindow object |
| [in] | nr_elements | Number of elements in the shared memory array |
| [in] | domain | TensorProdDomain object defining the shared memory communicator |
- Note
- The memory is shared among all processes in the domaincomm_shmem MPI communicator
◆ leader()
| procedure m_tensorprod_shared::sharedmemorywindow::leader |
( |
class(sharedmemorywindow), intent(in) | this | ) |
|
Check if this process is the leader in the shared memory communicator.
- Parameters
-
| [in] | this | SharedMemoryWindow object |
- Returns
- .true. if this process is the leader (rank 0), .false. otherwise
The documentation for this type was generated from the following file:
- /builds/rwr/bspline_feec/src/tensorprod/m_tensorprod_shared.f90