Defines OpenSHMEM gather-scatter communication.
|
| type | gs_shmem_buf_t |
| | Symmetric buffer for one direction of OpenSHMEM communication. More...
|
| |
| type | gs_shmem_t |
| | Gather-scatter communication using OpenSHMEM one-sided puts with per-rank signaling for completion (OpenSHMEM 1.5). More...
|
| |
|
| subroutine | gs_shmem_buf_init (this, pe_order, dof_stack) |
| | Allocate symmetric memory and per-neighbor bookkeeping for one direction of communication.
|
| |
| subroutine | gs_shmem_buf_free (this) |
| | Release symmetric memory and bookkeeping.
|
| |
| subroutine | gs_shmem_init (this, send_pe, recv_pe) |
| | Initialise OpenSHMEM based communication method.
|
| |
| subroutine | gs_shmem_free (this) |
| | Deallocate OpenSHMEM based communication method.
|
| |
| subroutine | gs_shmem_nbsend (this, u, n, deps, strm) |
| | Pack the gathered shared dofs into the symmetric send buffer and issue non-blocking puts with signaling to each neighbor's recv buffer. Before each put, wait for the receiver's ack of our previous round so we never overwrite a buffer the receiver hasn't consumed yet.
|
| |
| subroutine | gs_shmem_nbrecv (this) |
| | No-op: receives are completed via remote put-with-signal.
|
| |
| subroutine | gs_shmem_nbwait (this, u, n, op, strm) |
| | Wait per-neighbor for the signal indicating that data has landed, apply the gather-scatter operation from the recv buffer into u, and ack the sender so they may overwrite the buffer in the next round.
|
| |
◆ gs_shmem_buf_free()
◆ gs_shmem_buf_init()
- Parameters
-
| pe_order | ranks in send_pe / recv_pe order (1-based) |
| dof_stack | indexed by rank, lower bound = 0 (per init_dofs) |
Definition at line 121 of file gs_shmem.F90.
◆ gs_shmem_free()
◆ gs_shmem_init()
◆ gs_shmem_nbrecv()
◆ gs_shmem_nbsend()
| subroutine gs_shmem::gs_shmem_nbsend |
( |
class(gs_shmem_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 |
|
) |
| |
|
private |
◆ gs_shmem_nbwait()