|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
The full routing plan for one gather-scatter schedule. More...

Public Member Functions | |
| procedure, pass(this) | init (this, send_pe, recv_pe, send_dof, recv_dof) |
| Work out the routing plan for a gather-scatter schedule. | |
| procedure, pass(this) | free (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. | |
Definition at line 126 of file gs_crystal_plan.f90.
| 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.
| 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.
| send_pe | ranks this process sends to |
| recv_pe | ranks this process receives from |
| send_dof | per-rank lists of shared dofs to send |
| recv_dof | per-rank lists of shared dofs to reduce into |
Definition at line 151 of file gs_crystal_plan.f90.
| integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::final_len |
Definition at line 148 of file gs_crystal_plan.f90.
| integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::final_off |
Definition at line 146 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::final_sel = 1 |
Definition at line 135 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::nfinal = 0 |
Definition at line 134 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::nfinal_rec = 0 |
Definition at line 149 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::nsmax = 0 |
Definition at line 132 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::nstage = 0 |
Definition at line 130 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::ntotal = 0 |
Definition at line 133 of file gs_crystal_plan.f90.
| integer gs_crystal_plan::gs_crystal_plan_t::nwrk = 0 |
Definition at line 131 of file gs_crystal_plan.f90.
| integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::pack_keep_dof |
Definition at line 138 of file gs_crystal_plan.f90.
| integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::pack_send_dof |
Definition at line 141 of file gs_crystal_plan.f90.
| 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.
| integer, dimension(:), allocatable gs_crystal_plan::gs_crystal_plan_t::unpack_dof |
Definition at line 144 of file gs_crystal_plan.f90.