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 66 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: