|
| subroutine | gs_comm::init_dofs (this) |
| |
| subroutine | gs_comm::free_dofs (this) |
| |
| subroutine | gs_comm::init_order (this, send_pe, recv_pe) |
| | Obtains which ranks to send and receive data from.
|
| |
| subroutine | gs_comm::free_order (this) |
| |
| subroutine | gs_comm::take_schedule (this, src) |
| | Take over the gather-scatter schedule (dof lists and peer order) of src, avoiding a second (expensive) pass over the connectivity. The data is moved rather than copied, so src is left without a schedule and must not be used for communication afterwards (it can still be freed). No communication resources are set up here; complete the handover with init_schedule once src has been freed, so that the two backends never hold their resources at the same time.
|
| |
| subroutine | gs_comm::init_schedule (this) |
| | Set up this communication method for the schedule taken over by take_schedule. Collective, as init is.
|
| |
| subroutine | gs_comm::gs_nbsend_vec (this, u, n, nc, tag, deps, strm) |
| | Default fused vector send. Abort unless a backend overrides it.
|
| |
| subroutine | gs_comm::gs_nbrecv_vec (this, tag, nc) |
| | Default fused vector receive. Abort unless a backend overrides it.
|
| |
| subroutine | gs_comm::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::gs_comm_mpi = 1 |
| |
| integer, parameter, public | gs_comm::gs_comm_mpigpu = 2 |
| |
| integer, parameter, public | gs_comm::gs_comm_nccl = 3 |
| |
| integer, parameter, public | gs_comm::gs_comm_nvshmem = 4 |
| |
| integer, parameter, public | gs_comm::gs_comm_openshmem = 5 |
| |
| integer, parameter, public | gs_comm::gs_comm_caf = 6 |
| |
| integer, parameter, public | gs_comm::gs_comm_neighbour = 7 |
| |
| integer, parameter, public | gs_comm::gs_comm_utofu = 8 |
| |
| integer, parameter, public | gs_comm::gs_comm_mpirma = 9 |
| |
| integer, parameter, public | gs_comm::gs_comm_crystal = 10 |
| |
| integer, parameter, public | gs_comm::gs_comm_crystalgpu = 11 |
| |
| integer, parameter, public | gs_comm::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.
|
| |