Defines a gather-scatter communication method.
|
| interface | gs_comm_free |
| | Abstract interface for deallocating a Gather-scatter communication method. More...
|
| |
| interface | gs_comm_init |
| | Abstract interface for initializing a Gather-scatter communication method. More...
|
| |
| type | gs_comm_t |
| | Gather-scatter communication method. More...
|
| |
| interface | gs_nbrecv |
| | Abstract interface for initiating non-blocking recieve operations Posts non-blocking recieve of values and puts the values into buffers. More...
|
| |
| interface | gs_nbsend |
| | Abstract interface for initiating non-blocking send operations Sends the values in u(send_dof(send_pe(i))) to each rank send_pe(i) for all ranks in send_pe. More...
|
| |
| interface | gs_nbwait |
| | Abstract interface for waiting on non-blocking operations Waits and checks that data is in buffers and unpacks buffers into correct location in u u(recv_dof(recv_pe(i))) = gs_op(recieve_buffers(recv_pe) for this dof) More...
|
| |
|
| subroutine | init_dofs (this) |
| |
| subroutine | free_dofs (this) |
| |
| subroutine | init_order (this, send_pe, recv_pe) |
| | Obtains which ranks to send and receive data from.
|
| |
| subroutine | free_order (this) |
| |
| subroutine | gs_nbsend_vec (this, u, n, nc, tag, deps, strm) |
| | Default fused vector send. Abort unless a backend overrides it.
|
| |
| subroutine | gs_nbrecv_vec (this, tag, nc) |
| | Default fused vector receive. Abort unless a backend overrides it.
|
| |
| subroutine | gs_nbwait_vec (this, u, n, nc, op, strm) |
| | Default fused vector wait/reduce. Abort unless a backend overrides it.
|
| |
|
| integer, parameter, public | gs_comm_mpi = 1 |
| |
| integer, parameter, public | gs_comm_mpigpu = 2 |
| |
| integer, parameter, public | gs_comm_nccl = 3 |
| |
| integer, parameter, public | gs_comm_nvshmem = 4 |
| |
| integer, parameter, public | gs_comm_openshmem = 5 |
| |
| integer, parameter, public | gs_comm_caf = 6 |
| |
| integer, parameter, public | gs_comm_neighbour = 7 |
| |
| integer, parameter, public | gs_comm_utofu = 8 |
| |
| integer, parameter, public | gs_vec_nc = 3 |
| | Maximum number of components handled by the fused vector (multi-component) halo exchange used by gs_op_r3. Sizes the backend vector buffers.
|
| |
◆ free_dofs()
◆ free_order()
◆ gs_nbrecv_vec()
◆ gs_nbsend_vec()
| subroutine gs_comm::gs_nbsend_vec |
( |
class(gs_comm_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(nc*n), intent(inout) |
u, |
|
|
integer, intent(in) |
n, |
|
|
integer, intent(in) |
nc, |
|
|
integer, intent(in) |
tag, |
|
|
type(c_ptr), intent(inout) |
deps, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
|
private |
- Parameters
-
| u | compact shared buffer, component-outer: u((c-1)*n + idx) |
| n | number of shared dofs (per component) |
| nc | number of components |
Definition at line 242 of file gs_comm.f90.
◆ gs_nbwait_vec()
| subroutine gs_comm::gs_nbwait_vec |
( |
class(gs_comm_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(nc*n), intent(inout) |
u, |
|
|
integer, intent(in) |
n, |
|
|
integer, intent(in) |
nc, |
|
|
integer |
op, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
|
private |
◆ init_dofs()
◆ init_order()
- Parameters
-
| send_pe,only | contains rank ids this porcesss should send to |
| recv_pe,only | the ranks this process should receive from |
Definition at line 202 of file gs_comm.f90.
◆ gs_comm_caf
◆ gs_comm_mpi
◆ gs_comm_mpigpu
◆ gs_comm_nccl
◆ gs_comm_neighbour
◆ gs_comm_nvshmem
◆ gs_comm_openshmem
◆ gs_comm_utofu
◆ gs_vec_nc