Neko  0.9.99
A portable framework for high-order spectral element flow simulations
gs_sx Module Reference

Generic Gather-scatter backend for NEC Vector Engines.

Data Types

type  gs_sx_t
 Gather-scatter backend for NEC SX-Aurora. More...
 

Functions/Subroutines

subroutine gs_sx_init (this, nlocal, nshared, nlcl_blks, nshrd_blks)
 SX backend initialisation. More...
 
subroutine gs_sx_free (this)
 SX backend deallocation. More...
 
subroutine gs_gather_sx (this, v, m, o, dg, u, n, gd, nb, b, op, shrd)
 Gather kernel. More...
 
subroutine gs_gather_kernel_add (v, m, o, dg, u, n, gd, nb, b, w)
 Gather kernel for addition of data \( v(dg(i)) = v(dg(i)) + u(gd(i)) \). More...
 
subroutine gs_gather_kernel_mul (v, m, o, dg, u, n, gd, nb, b, w)
 Gather kernel for multiplication of data \( v(dg(i)) = v(dg(i)) \cdot u(gd(i)) \). More...
 
subroutine gs_gather_kernel_min (v, m, o, dg, u, n, gd, nb, b, w)
 Gather kernel for minimum of data \( v(dg(i)) = \min(v(dg(i)), u(gd(i))) \). More...
 
subroutine gs_gather_kernel_max (v, m, o, dg, u, n, gd, nb, b, w)
 Gather kernel for maximum of data \( v(dg(i)) = \max(v(dg(i)), u(gd(i))) \). More...
 
subroutine gs_scatter_sx (this, v, m, dg, u, n, gd, nb, b, shrd, event)
 Scatter kernel. More...
 
subroutine gs_scatter_kernel (v, m, dg, u, n, gd, nb, b, w)
 Scatter kernel \( u(gd(i) = v(dg(i)) \). More...
 

Function/Subroutine Documentation

◆ gs_gather_kernel_add()

subroutine gs_sx::gs_gather_kernel_add ( real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, intent(in)  o,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
real(kind=rp), dimension(m), intent(inout)  w 
)
private

Definition at line 139 of file gs_sx.f90.

Here is the caller graph for this function:

◆ gs_gather_kernel_max()

subroutine gs_sx::gs_gather_kernel_max ( real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, intent(in)  o,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
real(kind=rp), dimension(m), intent(inout)  w 
)
private

Definition at line 251 of file gs_sx.f90.

Here is the caller graph for this function:

◆ gs_gather_kernel_min()

subroutine gs_sx::gs_gather_kernel_min ( real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, intent(in)  o,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
real(kind=rp), dimension(m), intent(inout)  w 
)
private

Definition at line 214 of file gs_sx.f90.

Here is the caller graph for this function:

◆ gs_gather_kernel_mul()

subroutine gs_sx::gs_gather_kernel_mul ( real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, intent(in)  o,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
real(kind=rp), dimension(m), intent(inout)  w 
)
private

Definition at line 177 of file gs_sx.f90.

Here is the caller graph for this function:

◆ gs_gather_sx()

subroutine gs_sx::gs_gather_sx ( class(gs_sx_t), intent(inout)  this,
real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, intent(in)  o,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
integer, intent(in)  op,
logical, intent(in)  shrd 
)
private

Definition at line 93 of file gs_sx.f90.

Here is the call graph for this function:

◆ gs_scatter_kernel()

subroutine gs_sx::gs_scatter_kernel ( real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
real(kind=rp), dimension(m), intent(inout)  w 
)
private

Definition at line 309 of file gs_sx.f90.

Here is the caller graph for this function:

◆ gs_scatter_sx()

subroutine gs_sx::gs_scatter_sx ( class(gs_sx_t), intent(inout)  this,
real(kind=rp), dimension(m), intent(inout)  v,
integer, intent(in)  m,
integer, dimension(m), intent(inout)  dg,
real(kind=rp), dimension(n), intent(inout)  u,
integer, intent(in)  n,
integer, dimension(m), intent(inout)  gd,
integer, intent(in)  nb,
integer, dimension(nb), intent(inout)  b,
logical, intent(in)  shrd,
type(c_ptr)  event 
)
private
Todo:
Make the kernel abstract

Definition at line 287 of file gs_sx.f90.

Here is the call graph for this function:

◆ gs_sx_free()

subroutine gs_sx::gs_sx_free ( class(gs_sx_t), intent(inout)  this)
private

Definition at line 76 of file gs_sx.f90.

◆ gs_sx_init()

subroutine gs_sx::gs_sx_init ( class(gs_sx_t), intent(inout)  this,
integer, intent(in)  nlocal,
integer, intent(in)  nshared,
integer, intent(in)  nlcl_blks,
integer, intent(in)  nshrd_blks 
)

Definition at line 58 of file gs_sx.f90.