Gather-scatter communication using device MPI. The arrays are indexed per PE like send_pe and @ recv_pe.
More...
|
procedure, pass(this) | init (this, send_pe, recv_pe) |
| Initialise MPI based communication method.
|
|
procedure, pass(this) | free (this) |
| Deallocate MPI based communication method.
|
|
procedure, pass(this) | nbsend (this, u, n, deps, strm) |
| Post non-blocking send operations.
|
|
procedure, pass(this) | nbrecv (this) |
| Post non-blocking receive operations.
|
|
procedure, pass(this) | nbwait (this, u, n, op, strm) |
| Wait for non-blocking operations.
|
|
procedure(gs_comm_init), deferred, pass | init gs_comm_init |
|
procedure(gs_comm_free), deferred, pass | free gs_comm_free |
|
procedure(gs_nbsend), deferred, pass | nbsend gs_nbsend |
|
procedure(gs_nbrecv), deferred, pass | nbrecv gs_nbrecv |
|
procedure(gs_nbwait), deferred, pass | nbwait gs_nbwait |
|
procedure, pass(this) | init_dofs (this) |
|
procedure, pass(this) | free_dofs (this) |
|
procedure, pass(this) | init_order (this, send_pe, recv_pe) |
| Obtains which ranks to send and receive data from.
|
|
procedure, pass(this) | free_order (this) |
|
|
type(gs_device_mpi_buf_t) | send_buf |
|
type(gs_device_mpi_buf_t) | recv_buf |
|
type(c_ptr), dimension(:), allocatable | stream |
|
type(c_ptr), dimension(:), allocatable | event |
|
integer | nb_strtgy |
|
type(c_ptr) | send_event = C_NULL_PTR |
|
type(stack_i4_t), dimension(:), allocatable | send_dof |
| A list of stacks of dof indices local to this process to send to rank_i.
|
|
type(stack_i4_t), dimension(:), allocatable | recv_dof |
| recv_dof(rank_i) is a stack of dof indices local to this process to receive from rank_i. size(recv_dof) == pe_size
|
|
integer, dimension(:), allocatable | send_pe |
| Array of ranks that this process should send to.
|
|
integer, dimension(:), allocatable | recv_pe |
| array of ranks that this process will receive messages from
|
|
Definition at line 63 of file gs_device_mpi.F90.
◆ free() [1/2]
◆ free() [2/2]
◆ free_dofs()
◆ free_order()
◆ init() [1/2]
◆ init() [2/2]
◆ 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 66 of file gs_comm.f90.
◆ nbrecv() [1/2]
◆ nbrecv() [2/2]
◆ nbsend() [1/2]
procedure, pass(this) gs_device_mpi::gs_device_mpi_t::nbsend |
( |
class(gs_device_mpi_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(n), intent(inout) |
u, |
|
|
integer, intent(in) |
n, |
|
|
type(c_ptr), intent(inout) |
deps, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
◆ nbsend() [2/2]
◆ nbwait() [1/2]
procedure, pass(this) gs_device_mpi::gs_device_mpi_t::nbwait |
( |
class(gs_device_mpi_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(n), intent(inout) |
u, |
|
|
integer, intent(in) |
n, |
|
|
integer |
op, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
◆ nbwait() [2/2]
◆ event
◆ nb_strtgy
integer gs_device_mpi::gs_device_mpi_t::nb_strtgy |
◆ recv_buf
◆ recv_dof
◆ recv_pe
◆ send_buf
◆ send_dof
◆ send_event
type(c_ptr) gs_device_mpi::gs_device_mpi_t::send_event = C_NULL_PTR |
◆ send_pe
- Note
- : this will usually be fewer than the total number of ranks size(send_pe) <= pe_size
Definition at line 55 of file gs_comm.f90.
◆ stream
The documentation for this type was generated from the following file: