Defines MPI gather-scatter communication.
|
| subroutine | gs_mpi_init (this, send_pe, recv_pe) |
| | Initialise MPI based communication method See gs_comm.f90 for details.
|
| |
| subroutine | gs_mpi_free (this) |
| | Deallocate MPI based communication method.
|
| |
| subroutine | gs_nbsend_mpi (this, u, n, tag, deps, strm) |
| | Post non-blocking send operations.
|
| |
| subroutine | gs_nbrecv_mpi (this, tag) |
| | Post non-blocking receive operations.
|
| |
| subroutine | gs_nbwait_mpi (this, u, n, op, strm) |
| | Wait for non-blocking operations.
|
| |
| subroutine | gs_nbsend_vec_mpi (this, u, n, nc, tag, deps, strm) |
| | Post non-blocking sends for a fused nc-component exchange.
|
| |
| subroutine | gs_nbrecv_vec_mpi (this, tag, nc) |
| | Post non-blocking receives for a fused nc-component exchange.
|
| |
| subroutine | gs_nbwait_vec_mpi (this, u, n, nc, op, strm) |
| | Wait for a fused nc-component exchange and reduce each received slab.
|
| |
◆ gs_mpi_free()
◆ gs_mpi_init()
◆ gs_nbrecv_mpi()
◆ gs_nbrecv_vec_mpi()
◆ gs_nbsend_mpi()
| subroutine gs_mpi::gs_nbsend_mpi |
( |
class(gs_mpi_t), intent(inout) |
this, |
|
|
real(kind=rp), dimension(n), intent(inout) |
u, |
|
|
integer, intent(in) |
n, |
|
|
integer, intent(in) |
tag, |
|
|
type(c_ptr), intent(inout) |
deps, |
|
|
type(c_ptr), intent(inout) |
strm |
|
) |
| |
|
private |
◆ gs_nbsend_vec_mpi()
| subroutine gs_mpi::gs_nbsend_vec_mpi |
( |
class(gs_mpi_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). Peer i's slab holds nc consecutive blocks of send_len(i) values, so the scalar offsets/lengths are reused scaled by nc. |
Definition at line 379 of file gs_mpi.f90.
◆ gs_nbwait_mpi()
◆ gs_nbwait_vec_mpi()
| subroutine gs_mpi::gs_nbwait_vec_mpi |
( |
class(gs_mpi_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 |