|
Neko 1.99.3
A portable framework for high-order spectral element flow simulations
|
Gather-scatter communication using MPI. More...


Public Member Functions | |
| procedure, pass(this) | init (this, send_pe, recv_pe) |
| Initialise MPI based communication method See gs_comm.f90 for details. | |
| procedure, pass(this) | free (this) |
| Deallocate MPI based communication method. | |
| procedure, pass(this) | nbsend (this, u, n, tag, deps, strm) |
| See gs_comm.f90 for more details on these routines. | |
| procedure, pass(this) | nbrecv (this, tag) |
| 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) |
Public Attributes | |
| real(kind=rp), dimension(:), allocatable | send_buf |
| Concatenated send slabs, one per peer. | |
| real(kind=rp), dimension(:), allocatable | recv_buf |
| Concatenated recv slabs, one per peer. | |
| integer, dimension(:), allocatable | send_len |
| Number of dofs to send to / receive from each peer. | |
| integer, dimension(:), allocatable | recv_len |
| integer, dimension(:), allocatable | send_offset |
| 0-based offsets into send_buf / recv_buf for each peer. | |
| integer, dimension(:), allocatable | recv_offset |
| type(mpi_request), dimension(:), allocatable | send_request |
| Per-peer non-blocking MPI requests. | |
| type(mpi_request), dimension(:), allocatable | recv_request |
| integer, dimension(:), allocatable | recv_indices |
| Scratch arrays for MPI_Testsome on the recv side: indices of the requests completed by the call and their statuses. | |
| type(mpi_status), dimension(:), allocatable | recv_statuses |
| integer | ncompleted |
| 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 49 of file gs_mpi.f90.
Definition at line 67 of file gs_mpi.f90.
Definition at line 61 of file gs_comm.f90.
|
inherited |
Definition at line 66 of file gs_comm.f90.
|
inherited |
Definition at line 68 of file gs_comm.f90.
| procedure, pass(this) gs_mpi::gs_mpi_t::init | ( | class(gs_mpi_t), intent(inout) | this, |
| type(stack_i4_t), intent(inout) | send_pe, | ||
| type(stack_i4_t), intent(inout) | recv_pe | ||
| ) |
Definition at line 66 of file gs_mpi.f90.
Definition at line 60 of file gs_comm.f90.
|
inherited |
Definition at line 65 of file gs_comm.f90.
|
inherited |
| send_pe,only | contains rank ids this porcesss should send to |
| recv_pe,only | the ranks this process should receive from |
Definition at line 67 of file gs_comm.f90.
| procedure, pass(this) gs_mpi::gs_mpi_t::nbrecv | ( | class(gs_mpi_t), intent(inout) | this, |
| integer, intent(in) | tag | ||
| ) |
Definition at line 70 of file gs_mpi.f90.
Definition at line 63 of file gs_comm.f90.
| procedure, pass(this) gs_mpi::gs_mpi_t::nbsend | ( | 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 | ||
| ) |
Definition at line 69 of file gs_mpi.f90.
Definition at line 62 of file gs_comm.f90.
| procedure, pass(this) gs_mpi::gs_mpi_t::nbwait | ( | class(gs_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 | ||
| ) |
Definition at line 71 of file gs_mpi.f90.
Definition at line 64 of file gs_comm.f90.
| integer gs_mpi::gs_mpi_t::ncompleted |
Definition at line 64 of file gs_mpi.f90.
| real(kind=rp), dimension(:), allocatable gs_mpi::gs_mpi_t::recv_buf |
Definition at line 53 of file gs_mpi.f90.
|
inherited |
Definition at line 52 of file gs_comm.f90.
| integer, dimension(:), allocatable gs_mpi::gs_mpi_t::recv_indices |
Definition at line 62 of file gs_mpi.f90.
| integer, dimension(:), allocatable gs_mpi::gs_mpi_t::recv_len |
Definition at line 55 of file gs_mpi.f90.
| integer, dimension(:), allocatable gs_mpi::gs_mpi_t::recv_offset |
Definition at line 57 of file gs_mpi.f90.
|
inherited |
Definition at line 58 of file gs_comm.f90.
| type(mpi_request), dimension(:), allocatable gs_mpi::gs_mpi_t::recv_request |
Definition at line 59 of file gs_mpi.f90.
| type(mpi_status), dimension(:), allocatable gs_mpi::gs_mpi_t::recv_statuses |
Definition at line 63 of file gs_mpi.f90.
| real(kind=rp), dimension(:), allocatable gs_mpi::gs_mpi_t::send_buf |
Definition at line 51 of file gs_mpi.f90.
|
inherited |
Definition at line 49 of file gs_comm.f90.
| integer, dimension(:), allocatable gs_mpi::gs_mpi_t::send_len |
Definition at line 55 of file gs_mpi.f90.
| integer, dimension(:), allocatable gs_mpi::gs_mpi_t::send_offset |
Definition at line 57 of file gs_mpi.f90.
|
inherited |
Definition at line 56 of file gs_comm.f90.
| type(mpi_request), dimension(:), allocatable gs_mpi::gs_mpi_t::send_request |
Definition at line 59 of file gs_mpi.f90.