Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
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.
 
subroutine gs_sx_free (this)
 SX backend deallocation.
 
subroutine gs_gather_sx (this, v, m, o, dg, u, n, gd, nb, b, op, shrd)
 Gather kernel.
 
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)) \).
 
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)) \).
 
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))) \).
 
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))) \).
 
subroutine gs_scatter_sx (this, v, m, dg, u, n, gd, nb, b, shrd, event)
 Scatter kernel.
 
subroutine gs_scatter_kernel (v, m, dg, u, n, gd, nb, b, w)
 Scatter kernel \( u(gd(i) = v(dg(i)) \).
 

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.