shared_array Module



Contents


Derived Types

type, public ::  shared_array_real_t

Components

Type Visibility Attributes Name Initial
real(kind=dp), public, pointer :: ptr(:) => null()
integer(kind=MPIArg), public :: win
integer(kind=TagIntType), public :: tag = 0

Type-Bound Procedures

procedure , public , :: shared_alloc => safe_shared_memory_alloc_real Subroutine
procedure , public , :: shared_dealloc => safe_shared_memory_dealloc_real Subroutine
procedure , public , :: sync => sync_real Subroutine

type, public ::  shared_array_int64_t

Components

Type Visibility Attributes Name Initial
integer(kind=int64), public, pointer :: ptr(:) => null()
integer(kind=MPIArg), public :: win
integer(kind=TagIntType), public :: tag = 0

Type-Bound Procedures

procedure , public , :: shared_alloc => safe_shared_memory_alloc_int64 Subroutine
procedure , public , :: shared_dealloc => safe_shared_memory_dealloc_int64 Subroutine
procedure , public , :: sync => sync_int64 Subroutine

type, public ::  shared_array_int32_t

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, pointer :: ptr(:) => null()
integer(kind=MPIArg), public :: win
integer(kind=TagIntType), public :: tag = 0

Type-Bound Procedures

procedure , public , :: shared_alloc => safe_shared_memory_alloc_int32 Subroutine
procedure , public , :: shared_dealloc => safe_shared_memory_dealloc_int32 Subroutine
procedure , public , :: sync => sync_int32 Subroutine

type, public ::  shared_array_cmplx_t

Components

Type Visibility Attributes Name Initial
complex(kind=dp), public, pointer :: ptr(:) => null()
integer(kind=MPIArg), public :: win
integer(kind=TagIntType), public :: tag = 0

Type-Bound Procedures

procedure , public , :: shared_alloc => safe_shared_memory_alloc_cmplx Subroutine
procedure , public , :: shared_dealloc => safe_shared_memory_dealloc_cmplx Subroutine
procedure , public , :: sync => sync_cmplx Subroutine

type, public ::  shared_array_bool_t

Components

Type Visibility Attributes Name Initial
logical, public, pointer :: ptr(:) => null()
integer(kind=MPIArg), public :: win
integer(kind=TagIntType), public :: tag = 0

Type-Bound Procedures

procedure , public , :: shared_alloc => safe_shared_memory_alloc_bool Subroutine
procedure , public , :: shared_dealloc => safe_shared_memory_dealloc_bool Subroutine
procedure , public , :: sync => sync_bool Subroutine

Subroutines

private subroutine safe_shared_memory_alloc_real(this, size, name)

Wrapper for shared_allocate_mpi that tests if the pointer is associated @param[out] win MPI shared memory window for internal MPI usage @param[out] ptr pointer to be allocated, on return points to a shared memory segment of given size @param[in] size size of the memory segment to be allocated

Arguments

Type IntentOptional Attributes Name
class(shared_array_real_t) :: this
integer(kind=int64), intent(in) :: size
character(len=*), intent(in), optional :: name

private subroutine safe_shared_memory_dealloc_real(this)

wrapper for shared_deallocate_mpi that tests if the pointer is associated @param[in,out] win MPI shared memory window for internal MPI usage @param[in,out] ptr pointer to be deallocated (if associated)

Arguments

Type IntentOptional Attributes Name
class(shared_array_real_t) :: this

private subroutine sync_real(this)

callls MPI_Win_Sync on the array’s shared memory window to sync rma This has to be called between read/write epochs to ensure all tasks of a node are looking at the same shared data

Arguments

Type IntentOptional Attributes Name
class(shared_array_real_t) :: this

private subroutine safe_shared_memory_alloc_int64(this, size, name)

Wrapper for shared_allocate_mpi that tests if the pointer is associated @param[out] win MPI shared memory window for internal MPI usage @param[out] ptr pointer to be allocated, on return points to a shared memory segment of given size @param[in] size size of the memory segment to be allocated

Arguments

Type IntentOptional Attributes Name
class(shared_array_int64_t) :: this
integer(kind=int64), intent(in) :: size
character(len=*), intent(in), optional :: name

private subroutine safe_shared_memory_dealloc_int64(this)

wrapper for shared_deallocate_mpi that tests if the pointer is associated @param[in,out] win MPI shared memory window for internal MPI usage @param[in,out] ptr pointer to be deallocated (if associated)

Arguments

Type IntentOptional Attributes Name
class(shared_array_int64_t) :: this

private subroutine sync_int64(this)

callls MPI_Win_Sync on the array’s shared memory window to sync rma This has to be called between read/write epochs to ensure all tasks of a node are looking at the same shared data

Arguments

Type IntentOptional Attributes Name
class(shared_array_int64_t) :: this

private subroutine safe_shared_memory_alloc_int32(this, size, name)

Wrapper for shared_allocate_mpi that tests if the pointer is associated @param[out] win MPI shared memory window for internal MPI usage @param[out] ptr pointer to be allocated, on return points to a shared memory segment of given size @param[in] size size of the memory segment to be allocated

Arguments

Type IntentOptional Attributes Name
class(shared_array_int32_t) :: this
integer(kind=int64), intent(in) :: size
character(len=*), intent(in), optional :: name

private subroutine safe_shared_memory_dealloc_int32(this)

wrapper for shared_deallocate_mpi that tests if the pointer is associated @param[in,out] win MPI shared memory window for internal MPI usage @param[in,out] ptr pointer to be deallocated (if associated)

Arguments

Type IntentOptional Attributes Name
class(shared_array_int32_t) :: this

private subroutine sync_int32(this)

callls MPI_Win_Sync on the array’s shared memory window to sync rma This has to be called between read/write epochs to ensure all tasks of a node are looking at the same shared data

Arguments

Type IntentOptional Attributes Name
class(shared_array_int32_t) :: this

private subroutine safe_shared_memory_alloc_cmplx(this, size, name)

Wrapper for shared_allocate_mpi that tests if the pointer is associated @param[out] win MPI shared memory window for internal MPI usage @param[out] ptr pointer to be allocated, on return points to a shared memory segment of given size @param[in] size size of the memory segment to be allocated

Arguments

Type IntentOptional Attributes Name
class(shared_array_cmplx_t) :: this
integer(kind=int64), intent(in) :: size
character(len=*), intent(in), optional :: name

private subroutine safe_shared_memory_dealloc_cmplx(this)

wrapper for shared_deallocate_mpi that tests if the pointer is associated @param[in,out] win MPI shared memory window for internal MPI usage @param[in,out] ptr pointer to be deallocated (if associated)

Arguments

Type IntentOptional Attributes Name
class(shared_array_cmplx_t) :: this

private subroutine sync_cmplx(this)

callls MPI_Win_Sync on the array’s shared memory window to sync rma This has to be called between read/write epochs to ensure all tasks of a node are looking at the same shared data

Arguments

Type IntentOptional Attributes Name
class(shared_array_cmplx_t) :: this

private subroutine safe_shared_memory_alloc_bool(this, size, name)

Wrapper for shared_allocate_mpi that tests if the pointer is associated @param[out] win MPI shared memory window for internal MPI usage @param[out] ptr pointer to be allocated, on return points to a shared memory segment of given size @param[in] size size of the memory segment to be allocated

Arguments

Type IntentOptional Attributes Name
class(shared_array_bool_t) :: this
integer(kind=int64), intent(in) :: size
character(len=*), intent(in), optional :: name

private subroutine safe_shared_memory_dealloc_bool(this)

wrapper for shared_deallocate_mpi that tests if the pointer is associated @param[in,out] win MPI shared memory window for internal MPI usage @param[in,out] ptr pointer to be deallocated (if associated)

Arguments

Type IntentOptional Attributes Name
class(shared_array_bool_t) :: this

private subroutine sync_bool(this)

callls MPI_Win_Sync on the array’s shared memory window to sync rma This has to be called between read/write epochs to ensure all tasks of a node are looking at the same shared data

Arguments

Type IntentOptional Attributes Name
class(shared_array_bool_t) :: this