BSpline Finite Element Exterior Calculus
Loading...
Searching...
No Matches
m_tensorprod_shared::sharedmemorywindow Type Reference

Type for managing a shared memory array using MPI shared memory windows. More...

Public Member Functions

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)
 

Public Attributes

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)
 

Detailed Description

Type for managing a shared memory array using MPI shared memory windows.

Member Function/Subroutine Documentation

◆ cat()

procedure m_tensorprod_shared::sharedmemorywindow::cat ( class(sharedmemorywindow), intent(inout) this,
class(sharedmemorywindow), intent(in) other )

Concatenate two shared memory windows (not implemented)

Parameters
[in,out]thisSharedMemoryWindow object to be concatenated to (output is [this, other])
[in]otherSharedMemoryWindow 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]thisSharedMemoryWindow object

◆ fence()

procedure m_tensorprod_shared::sharedmemorywindow::fence ( class(sharedmemorywindow), intent(inout) this)

Synchronize access to the shared memory window.

Parameters
[in,out]thisSharedMemoryWindow 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]thisSharedMemoryWindow object
[in]nr_elementsNumber of elements in the shared memory array
[in]commMPI communicator for the shared memory domain (each rank on this communicator must be on the same node)
[in]my_rankRank 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]thisSharedMemoryWindow object
[in]nr_elementsNumber of elements in the shared memory array
[in]domainTensorProdDomain 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]thisSharedMemoryWindow object
Returns
.true. if this process is the leader (rank 0), .false. otherwise

The documentation for this type was generated from the following file: