dbcsr_mp_methods Module



Variables

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

Interfaces

public interface dbcsr_mp_new

  • private subroutine dbcsr_mp_new_grid(mp_env, mp_group, pgrid, mynode, numnodes, myprow, mypcol, source)

    Creates new process grid

    Arguments

    Type IntentOptional Attributes Name
    type(dbcsr_mp_obj), intent(out) :: mp_env

    multiprocessor environment

    type(mp_comm_type), intent(in) :: mp_group
    integer, intent(in), DIMENSION(0:, 0:) :: pgrid

    process grid

    integer, intent(in) :: mynode

    my processor number

    integer, intent(in), optional :: numnodes

    total number of processors (processes)

    integer, intent(in), optional :: myprow

    total number of processors (processes)

    integer, intent(in), optional :: mypcol

    total number of processors (processes)

    integer, intent(in), optional :: source

    total number of processors (processes)

  • private subroutine dbcsr_mp_new_group(mp_env, mp_group, pgrid)

    Creates a new dbcsr_mp_obj based on a input template

    Arguments

    Type IntentOptional Attributes Name
    type(dbcsr_mp_obj), intent(out) :: mp_env
    type(mp_comm_type), intent(in) :: mp_group
    integer, optional, DIMENSION(:, :), POINTER :: pgrid

    Optional, if not provided group is assumed to be a 2D cartesian communicator


Functions

public function dbcsr_mp_active(mp_env) result(active)

Checks whether this process is part of the message passing environment

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value logical

public pure function dbcsr_mp_get_process(mp_env, prow, pcol) result(process)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env
integer, intent(in) :: prow
integer, intent(in) :: pcol

Return Value integer

public function dbcsr_mp_pgrid(mp_env) result(pgrid)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer, DIMENSION(:, :), POINTER, CONTIGUOUS

public pure function dbcsr_mp_numnodes(mp_env) result(numnodes)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer

public pure function dbcsr_mp_mynode(mp_env) result(mynode)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer

public pure function dbcsr_mp_group(mp_env) result(mp_group)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value type(mp_comm_type)

public pure function dbcsr_mp_nprows(mp_env) result(nprows)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer

public pure function dbcsr_mp_npcols(mp_env) result(npcols)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer

public pure function dbcsr_mp_myprow(mp_env) result(myprow)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer

public pure function dbcsr_mp_mypcol(mp_env) result(mypcol)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value integer

public pure function dbcsr_mp_has_subgroups(mp_env) result(has_subgroups)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value logical

public pure function dbcsr_mp_my_row_group(mp_env) result(row_group)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value type(mp_comm_type)

public pure function dbcsr_mp_my_col_group(mp_env) result(col_group)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(in) :: mp_env

Return Value type(mp_comm_type)


Subroutines

public subroutine dbcsr_mp_init(mp_env)

Initializes a new process grid

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(out) :: mp_env

private subroutine dbcsr_mp_new_grid(mp_env, mp_group, pgrid, mynode, numnodes, myprow, mypcol, source)

Creates new process grid

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(out) :: mp_env

multiprocessor environment

type(mp_comm_type), intent(in) :: mp_group
integer, intent(in), DIMENSION(0:, 0:) :: pgrid

process grid

integer, intent(in) :: mynode

my processor number

integer, intent(in), optional :: numnodes

total number of processors (processes)

integer, intent(in), optional :: myprow

total number of processors (processes)

integer, intent(in), optional :: mypcol

total number of processors (processes)

integer, intent(in), optional :: source

total number of processors (processes)

private subroutine dbcsr_mp_new_group(mp_env, mp_group, pgrid)

Creates a new dbcsr_mp_obj based on a input template

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(out) :: mp_env
type(mp_comm_type), intent(in) :: mp_group
integer, optional, DIMENSION(:, :), POINTER :: pgrid

Optional, if not provided group is assumed to be a 2D cartesian communicator

public subroutine dbcsr_mp_grid_setup(mp_env)

Sets up MPI cartesian process grid

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(inout) :: mp_env

multiprocessor environment

public subroutine dbcsr_mp_make_env(mp_env, cart_group, mp_group, nprocs, pgrid_dims)

Creates a sane mp_obj from the given MPI comm that is not a cartesian one (hack)

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(out) :: mp_env

Message-passing environment object to create

type(mp_comm_type), intent(out) :: cart_group

the created cartesian group (to be freed by the user)

type(mp_comm_type), intent(in) :: mp_group

MPI group

integer, intent(in), optional :: nprocs

Number of processes

integer, intent(in), optional, DIMENSION(:) :: pgrid_dims

Dimensions of MPI group

public pure subroutine dbcsr_mp_hold(mp_env)

Marks another use of the mp_env

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(inout) :: mp_env

multiprocessor environment

public subroutine dbcsr_mp_new_transposed(mp_t, mp)

Transposes a multiprocessor environment

Arguments

Type IntentOptional Attributes Name
type(dbcsr_mp_obj), intent(out) :: mp_t

transposed multiprocessor environment

type(dbcsr_mp_obj), intent(in) :: mp

original multiprocessor environment