dbcsr_mp_operations Module

Wrappers to message passing calls.



Variables

Type Visibility Attributes Name Initial
character(len=*), private, parameter :: moduleN = 'dbcsr_mp_operations'

Interfaces

private interface dbcsr_hybrid_alltoall

  • public subroutine hybrid_alltoall_s1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

    Row/column and global all-to-all

    Communicator selection Uses row and column communicators for row/column sends. Remaining sends are performed using the global communicator. Point-to-point isend/irecv are used if ptp is set, otherwise a alltoall collective call is issued. see mp_alltoall

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real_4), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
    real(kind=real_4), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
    type(dbcsr_mp_obj), intent(in) :: mp_env

    MP Environment

    logical, intent(in), optional :: most_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: remainder_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: no_hybrid

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

  • public subroutine hybrid_alltoall_d1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

    Row/column and global all-to-all

    Communicator selection Uses row and column communicators for row/column sends. Remaining sends are performed using the global communicator. Point-to-point isend/irecv are used if ptp is set, otherwise a alltoall collective call is issued. see mp_alltoall

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real_8), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
    real(kind=real_8), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
    type(dbcsr_mp_obj), intent(in) :: mp_env

    MP Environment

    logical, intent(in), optional :: most_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: remainder_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: no_hybrid

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

  • public subroutine hybrid_alltoall_c1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

    Row/column and global all-to-all

    Communicator selection Uses row and column communicators for row/column sends. Remaining sends are performed using the global communicator. Point-to-point isend/irecv are used if ptp is set, otherwise a alltoall collective call is issued. see mp_alltoall

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real_4), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
    complex(kind=real_4), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
    type(dbcsr_mp_obj), intent(in) :: mp_env

    MP Environment

    logical, intent(in), optional :: most_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: remainder_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: no_hybrid

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

  • public subroutine hybrid_alltoall_z1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

    Row/column and global all-to-all

    Communicator selection Uses row and column communicators for row/column sends. Remaining sends are performed using the global communicator. Point-to-point isend/irecv are used if ptp is set, otherwise a alltoall collective call is issued. see mp_alltoall

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real_8), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
    complex(kind=real_8), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
    type(dbcsr_mp_obj), intent(in) :: mp_env

    MP Environment

    logical, intent(in), optional :: most_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: remainder_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: no_hybrid

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

  • public subroutine hybrid_alltoall_i1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

    Row/column and global all-to-all

    Communicator selection Uses row and column communicators for row/column sends. Remaining sends are performed using the global communicator. Point-to-point isend/irecv are used if ptp is set, otherwise a alltoall collective call is issued. see mp_alltoall

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
    integer, intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
    type(dbcsr_mp_obj), intent(in) :: mp_env

    MP Environment

    logical, intent(in), optional :: most_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: remainder_ptp

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

    logical, intent(in), optional :: no_hybrid

    Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

  • public subroutine hybrid_alltoall_any(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

    Arguments

    Type IntentOptional Attributes Name
    type(dbcsr_data_obj), intent(in) :: sb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
    type(dbcsr_data_obj), intent(inout) :: rb
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
    integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
    type(dbcsr_mp_obj), intent(in) :: mp_env
    logical, intent(in), optional :: most_ptp
    logical, intent(in), optional :: remainder_ptp
    logical, intent(in), optional :: no_hybrid

Functions

public function dbcsr_mp_type_from_anytype(data_area) result(mp_type)

Creates an MPI combined type from the given anytype.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: data_area

Data area of any type

Return Value type(mp_type_descriptor_type)

Type descriptor


Subroutines

public subroutine hybrid_alltoall_any(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
type(dbcsr_data_obj), intent(inout) :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env
logical, intent(in), optional :: most_ptp
logical, intent(in), optional :: remainder_ptp
logical, intent(in), optional :: no_hybrid

public subroutine hybrid_alltoall_i1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Row/column and global all-to-all

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
integer, intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env

MP Environment

logical, intent(in), optional :: most_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: remainder_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: no_hybrid

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

public subroutine dbcsr_sendrecv_any(msgin, dest, msgout, source, comm)

sendrecv of encapsulated data.

Read more…

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: msgin
integer, intent(in) :: dest
type(dbcsr_data_obj), intent(inout) :: msgout
integer, intent(in) :: source
type(mp_comm_type), intent(in) :: comm

public subroutine dbcsr_isend_any(msgin, dest, comm, request, tag)

Non-blocking send of encapsulated data.

Read more…

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: msgin
integer, intent(in) :: dest
type(mp_comm_type), intent(in) :: comm
type(mp_request_type), intent(out) :: request
integer, intent(in), optional :: tag

public subroutine dbcsr_irecv_any(msgin, source, comm, request, tag)

Non-blocking recv of encapsulated data.

Read more…

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: msgin
integer, intent(in) :: source
type(mp_comm_type), intent(in) :: comm
type(mp_request_type), intent(out) :: request
integer, intent(in), optional :: tag

public subroutine dbcsr_win_create_any(base, comm, win)

Window initialization function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: base
type(mp_comm_type), intent(in) :: comm
type(mp_win_type), intent(out) :: win

public subroutine dbcsr_rget_any(base, source, win, win_data, myproc, disp, request, origin_datatype, target_datatype)

Single-sided Get function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: base
integer, intent(in) :: source
type(mp_win_type), intent(in) :: win
type(dbcsr_data_obj), intent(in) :: win_data
integer, intent(in), optional :: myproc
integer, intent(in), optional :: disp
type(mp_request_type), intent(out) :: request
type(mp_type_descriptor_type), intent(in), optional :: origin_datatype
type(mp_type_descriptor_type), intent(in), optional :: target_datatype

public subroutine dbcsr_ibcast_any(base, source, grp, request)

Bcast function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: base
integer, intent(in) :: source
type(mp_comm_type), intent(in) :: grp
type(mp_request_type), intent(inout) :: request

public subroutine dbcsr_iscatterv_any(base, counts, displs, msg, recvcount, root, grp, request)

Scatter function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: base
integer, intent(in), DIMENSION(:), CONTIGUOUS :: counts
integer, intent(in), DIMENSION(:), CONTIGUOUS :: displs
type(dbcsr_data_obj), intent(inout) :: msg
integer, intent(in) :: recvcount
integer, intent(in) :: root
type(mp_comm_type), intent(in) :: grp
type(mp_request_type), intent(inout) :: request

public subroutine dbcsr_gatherv_any(base, ub_base, msg, counts, displs, root, grp)

Gather function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: base
integer, intent(in) :: ub_base
type(dbcsr_data_obj), intent(inout) :: msg
integer, intent(in), DIMENSION(:), CONTIGUOUS :: counts
integer, intent(in), DIMENSION(:), CONTIGUOUS :: displs
integer, intent(in) :: root
type(mp_comm_type), intent(in) :: grp

public subroutine dbcsr_isendrecv_any(msgin, dest, msgout, source, grp, send_request, recv_request)

Send/Recv function of encapsulated data.

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: msgin
integer, intent(in) :: dest
type(dbcsr_data_obj), intent(inout) :: msgout
integer, intent(in) :: source
type(mp_comm_type), intent(in) :: grp
type(mp_request_type), intent(out) :: send_request
type(mp_request_type), intent(out) :: recv_request

public subroutine dbcsr_allgatherv(send_data, scount, recv_data, recv_count, recv_displ, gid)

Allgather of encapsulated data

Read more…

Arguments

Type IntentOptional Attributes Name
type(dbcsr_data_obj), intent(in) :: send_data
integer, intent(in) :: scount
type(dbcsr_data_obj), intent(inout) :: recv_data
integer, intent(in), DIMENSION(:), CONTIGUOUS :: recv_count
integer, intent(in), DIMENSION(:), CONTIGUOUS :: recv_displ
type(mp_comm_type), intent(in) :: gid

public subroutine hybrid_alltoall_d1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Row/column and global all-to-all

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=real_8), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
real(kind=real_8), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env

MP Environment

logical, intent(in), optional :: most_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: remainder_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: no_hybrid

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

public subroutine hybrid_alltoall_s1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Row/column and global all-to-all

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=real_4), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
real(kind=real_4), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env

MP Environment

logical, intent(in), optional :: most_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: remainder_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: no_hybrid

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

public subroutine hybrid_alltoall_z1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Row/column and global all-to-all

Read more…

Arguments

Type IntentOptional Attributes Name
complex(kind=real_8), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
complex(kind=real_8), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env

MP Environment

logical, intent(in), optional :: most_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: remainder_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: no_hybrid

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

public subroutine hybrid_alltoall_c1(sb, scount, sdispl, rb, rcount, rdispl, mp_env, most_ptp, remainder_ptp, no_hybrid)

Row/column and global all-to-all

Read more…

Arguments

Type IntentOptional Attributes Name
complex(kind=real_4), intent(in), DIMENSION(:), CONTIGUOUS, TARGET :: sb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: scount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: sdispl
complex(kind=real_4), intent(inout), DIMENSION(:), CONTIGUOUS, TARGET :: rb
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rcount
integer, intent(in), DIMENSION(:), CONTIGUOUS :: rdispl
type(dbcsr_mp_obj), intent(in) :: mp_env

MP Environment

logical, intent(in), optional :: most_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: remainder_ptp

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no

logical, intent(in), optional :: no_hybrid

Use point-to-point for row/column; default is no Use point-to-point for remaining; default is no Use regular global collective; default is no