Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
gs_crystal_plan::gs_crystal_plan_t Type Reference

The full routing plan for one gather-scatter schedule. More...

Collaboration diagram for gs_crystal_plan::gs_crystal_plan_t:

Public Member Functions

procedure, pass(thisinit (this, send_pe, recv_pe, send_dof, recv_dof)
 Work out the routing plan for a gather-scatter schedule.
 
procedure, pass(thisfree (this)
 Release the routing plan.
 

Public Attributes

type(gs_crystal_stage_t), dimension(:), allocatable stage
 The active stages, in order. Stages that neither send nor receive leave the buffer untouched and are not represented.
 
integer nstage = 0
 Number of active stages.
 
integer nwrk = 0
 Words each working buffer column must hold.
 
integer nsmax = 0
 Words the send buffer must hold.
 
integer ntotal = 0
 Words packed out of the shared vector.
 
integer nfinal = 0
 Words delivered to this rank.
 
integer final_sel = 1
 Buffer column holding the delivered words.
 
integer, dimension(:), allocatable pack_keep_dof
 1-based indices into the shared vector of the words that stay local over the first stage, in the order they take in the working buffer
 
integer, dimension(:), allocatable pack_send_dof
 1-based indices into the shared vector of the words sent by the first stage, in the order they take in the send buffer
 
integer, dimension(:), allocatable unpack_dof
 1-based indices into the shared vector that the delivered words reduce into, in the order the words arrive
 
integer, dimension(:), allocatable final_off
 Offsets into unpack_dof of each delivered record, 0-based.
 
integer, dimension(:), allocatable final_len
 Lengths of each delivered record.
 
integer nfinal_rec = 0
 Number of delivered records.
 

Detailed Description

Definition at line 126 of file gs_crystal_plan.f90.

Member Function/Subroutine Documentation

◆ free()

procedure, pass(this) gs_crystal_plan::gs_crystal_plan_t::free ( class(gs_crystal_plan_t), intent(inout this)

Definition at line 152 of file gs_crystal_plan.f90.

◆ init()

procedure, pass(this) gs_crystal_plan::gs_crystal_plan_t::init ( class(gs_crystal_plan_t), intent(inout this,
integer, dimension(:), intent(in send_pe,
integer, dimension(:), intent(in recv_pe,
type(stack_i4_t), dimension(0:), intent(inout send_dof,
type(stack_i4_t), dimension(0:), intent(inout recv_dof 
)

Runs the recursive bisection of the crystal router over record metadata alone – three integers per slab rather than the payload – so the partner ranks, word counts and index lists of every stage are known before a single gs operation runs.

Parameters
send_peranks this process sends to
recv_peranks this process receives from
send_dofper-rank lists of shared dofs to send
recv_dofper-rank lists of shared dofs to reduce into
Note
Collective over NEKO_COMM, as the bisection is.

Definition at line 151 of file gs_crystal_plan.f90.

Member Data Documentation

◆ final_len

integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::final_len

Definition at line 148 of file gs_crystal_plan.f90.

◆ final_off

integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::final_off

Definition at line 146 of file gs_crystal_plan.f90.

◆ final_sel

integer gs_crystal_plan::gs_crystal_plan_t::final_sel = 1

Definition at line 135 of file gs_crystal_plan.f90.

◆ nfinal

integer gs_crystal_plan::gs_crystal_plan_t::nfinal = 0

Definition at line 134 of file gs_crystal_plan.f90.

◆ nfinal_rec

integer gs_crystal_plan::gs_crystal_plan_t::nfinal_rec = 0

Definition at line 149 of file gs_crystal_plan.f90.

◆ nsmax

integer gs_crystal_plan::gs_crystal_plan_t::nsmax = 0

Definition at line 132 of file gs_crystal_plan.f90.

◆ nstage

integer gs_crystal_plan::gs_crystal_plan_t::nstage = 0

Definition at line 130 of file gs_crystal_plan.f90.

◆ ntotal

integer gs_crystal_plan::gs_crystal_plan_t::ntotal = 0

Definition at line 133 of file gs_crystal_plan.f90.

◆ nwrk

integer gs_crystal_plan::gs_crystal_plan_t::nwrk = 0

Definition at line 131 of file gs_crystal_plan.f90.

◆ pack_keep_dof

integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::pack_keep_dof

Definition at line 138 of file gs_crystal_plan.f90.

◆ pack_send_dof

integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::pack_send_dof

Definition at line 141 of file gs_crystal_plan.f90.

◆ stage

type(gs_crystal_stage_t), dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::stage

Definition at line 129 of file gs_crystal_plan.f90.

◆ unpack_dof

integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::unpack_dof

Definition at line 144 of file gs_crystal_plan.f90.


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