Neko 1.99.6
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
gs_device_shmem::gs_device_shmem_buf_t Type Reference

Buffers for non-blocking communication and packing/unpacking. More...

Collaboration diagram for gs_device_shmem::gs_device_shmem_buf_t:

Public Member Functions

procedure, pass(thisinit (this, pe_order, dof_stack, mark_dupes, nslabs)
 
procedure, pass(thisfree (this)
 

Public Attributes

integer, dimension(:), allocatable ndofs
 Number of dofs.
 
integer, dimension(:), allocatable offset
 Offset into buf.
 
integer, dimension(:), allocatable remote_offset
 Offset into buf for remote rank.
 
integer total
 Total number of dofs.
 
integer slab_stride
 Elements per parity slab of buf_d (the global max dof count); the stride of a buf_v_d parity slab is GS_VEC_NC times this. Send buffers hold two parity slabs, recv buffers one (see nslabs in init).
 
type(c_ptr) buf_d = C_NULL_PTR
 Device buffer.
 
type(c_ptr) buf_v_d = C_NULL_PTR
 Symmetric buffer, fused vector (x nc)
 
type(c_ptr) dof_d = C_NULL_PTR
 Dof mapping for pack/unpack.
 

Detailed Description

Definition at line 52 of file gs_device_shmem.F90.

Member Function/Subroutine Documentation

◆ free()

procedure, pass(this) gs_device_shmem::gs_device_shmem_buf_t::free ( class(gs_device_shmem_buf_t), intent(inout this)

Definition at line 66 of file gs_device_shmem.F90.

◆ init()

procedure, pass(this) gs_device_shmem::gs_device_shmem_buf_t::init ( class(gs_device_shmem_buf_t), intent(inout this,
integer, dimension(:), intent(inout), allocatable  pe_order,
type(stack_i4_t), dimension(:), intent(inout), allocatable  dof_stack,
logical, intent(in mark_dupes,
integer, intent(in nslabs 
)
Parameters
nslabsnumber of parity slabs (2 for send buffers, which are round-parity double-buffered so a slab is never repacked while a previous non-blocking put may still be draining it; 1 for recv buffers, whose overwrite is gated by the ready signal).

Definition at line 65 of file gs_device_shmem.F90.

Member Data Documentation

◆ buf_d

type(c_ptr) gs_device_shmem::gs_device_shmem_buf_t::buf_d = C_NULL_PTR

Definition at line 61 of file gs_device_shmem.F90.

◆ buf_v_d

type(c_ptr) gs_device_shmem::gs_device_shmem_buf_t::buf_v_d = C_NULL_PTR

Definition at line 62 of file gs_device_shmem.F90.

◆ dof_d

type(c_ptr) gs_device_shmem::gs_device_shmem_buf_t::dof_d = C_NULL_PTR

Definition at line 63 of file gs_device_shmem.F90.

◆ ndofs

integer, dimension(:), allocatable gs_device_shmem::gs_device_shmem_buf_t::ndofs

Definition at line 53 of file gs_device_shmem.F90.

◆ offset

integer, dimension(:), allocatable gs_device_shmem::gs_device_shmem_buf_t::offset

Definition at line 54 of file gs_device_shmem.F90.

◆ remote_offset

integer, dimension(:), allocatable gs_device_shmem::gs_device_shmem_buf_t::remote_offset

Definition at line 55 of file gs_device_shmem.F90.

◆ slab_stride

integer gs_device_shmem::gs_device_shmem_buf_t::slab_stride

Definition at line 60 of file gs_device_shmem.F90.

◆ total

integer gs_device_shmem::gs_device_shmem_buf_t::total

Definition at line 56 of file gs_device_shmem.F90.


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