execute_mpi Subroutine

private subroutine execute_mpi(self, in, out, stream, aux, error_code)

Uses

  • proc~~execute_mpi~~UsesGraph proc~execute_mpi backend_mpi%execute_mpi iso_c_binding iso_c_binding proc~execute_mpi->iso_c_binding iso_fortran_env iso_fortran_env proc~execute_mpi->iso_fortran_env

Executes MPI backend

Type Bound

backend_mpi

Arguments

Type IntentOptional Attributes Name
class(backend_mpi), intent(inout) :: self

MPI Backend

real(kind=real32), intent(inout), target :: in(:)

Send pointer

real(kind=real32), intent(inout), target :: out(:)

Recv pointer

type(dtfft_stream_t), intent(in) :: stream

Main execution CUDA stream

real(kind=real32), intent(inout), target :: aux(:)

Aux pointer

integer(kind=int32), intent(out) :: error_code

Error code


Calls

proc~~execute_mpi~~CallsGraph proc~execute_mpi backend_mpi%execute_mpi fname fname proc~execute_mpi->fname interface~cudastreamsynchronize cudaStreamSynchronize proc~execute_mpi->interface~cudastreamsynchronize mpi_abort mpi_abort proc~execute_mpi->mpi_abort mpi_waitall mpi_waitall proc~execute_mpi->mpi_waitall mpi_waitsome mpi_waitsome proc~execute_mpi->mpi_waitsome mpi_win_fence mpi_win_fence proc~execute_mpi->mpi_win_fence proc~cudageterrorstring cudaGetErrorString proc~execute_mpi->proc~cudageterrorstring proc~execute_a2a backend_mpi%execute_a2a proc~execute_mpi->proc~execute_a2a proc~execute_p2p backend_mpi%execute_p2p proc~execute_mpi->proc~execute_p2p proc~execute_p2p_scheduled backend_mpi%execute_p2p_scheduled proc~execute_mpi->proc~execute_p2p_scheduled proc~execute_self_copy abstract_backend%execute_self_copy proc~execute_mpi->proc~execute_self_copy proc~execute~2 abstract_kernel%execute proc~execute_mpi->proc~execute~2 interface~cudageterrorstring_c cudaGetErrorString_c proc~cudageterrorstring->interface~cudageterrorstring_c proc~string_c2f string_c2f proc~cudageterrorstring->proc~string_c2f mpi_alltoall_init mpi_alltoall_init proc~execute_a2a->mpi_alltoall_init mpi_alltoallv_init mpi_alltoallv_init proc~execute_a2a->mpi_alltoallv_init mpi_start mpi_start proc~execute_a2a->mpi_start mpi_recv_init mpi_recv_init proc~execute_p2p->mpi_recv_init mpi_send_init mpi_send_init proc~execute_p2p->mpi_send_init mpi_startall mpi_startall proc~execute_p2p->mpi_startall proc~execute_p2p_scheduled->proc~execute_self_copy mpi_sendrecv mpi_sendrecv proc~execute_p2p_scheduled->mpi_sendrecv proc~execute_self_copy->fname proc~execute_self_copy->mpi_abort proc~execute_self_copy->proc~cudageterrorstring interface~cudaeventrecord cudaEventRecord proc~execute_self_copy->interface~cudaeventrecord interface~cudamemcpyasync cudaMemcpyAsync proc~execute_self_copy->interface~cudamemcpyasync interface~cudastreamwaitevent cudaStreamWaitEvent proc~execute_self_copy->interface~cudastreamwaitevent execute_private execute_private proc~execute~2->execute_private proc~pop_nvtx_domain_range pop_nvtx_domain_range proc~execute~2->proc~pop_nvtx_domain_range proc~push_nvtx_domain_range push_nvtx_domain_range proc~execute~2->proc~push_nvtx_domain_range interface~nvtxdomainrangepop_c nvtxDomainRangePop_c proc~pop_nvtx_domain_range->interface~nvtxdomainrangepop_c interface~nvtxdomainrangepushex_c nvtxDomainRangePushEx_c proc~push_nvtx_domain_range->interface~nvtxdomainrangepushex_c proc~astring_f2c astring_f2c proc~push_nvtx_domain_range->proc~astring_f2c proc~create_nvtx_domain create_nvtx_domain proc~push_nvtx_domain_range->proc~create_nvtx_domain interface~is_null_ptr is_null_ptr proc~string_c2f->interface~is_null_ptr interface~is_null_ptr->interface~is_null_ptr proc~is_null_funptr is_null_funptr interface~is_null_ptr->proc~is_null_funptr proc~string_f2c string_f2c proc~astring_f2c->proc~string_f2c proc~create_nvtx_domain->proc~astring_f2c interface~nvtxdomaincreate_c nvtxDomainCreate_c proc~create_nvtx_domain->interface~nvtxdomaincreate_c