Octopus
distributed_oct_m Module Reference

Data Types

type  distributed_t
 Distribution of N instances over mpi_grpsize processes, for the local rank mpi_grprank. Distribution for all other processes of mpi_grpcomm are stored in process, num and range. More...
 

Functions/Subroutines

pure integer function distributed_nlocal (this)
 Number of instances of the distributed quantity on process mpi_grprank. More...
 
pure integer function distributed_nglobal (this)
 Total number of distributed instances. More...
 
pure integer function, dimension(:), allocatable distributed_displs (this)
 Displacement of each process''s local part, relative to the start of the distributed quantity, as required by MPI (all)gatherv and (all)scatterv. More...
 
subroutine, public distributed_init (this, total, comm, tag, scalapack_compat)
 Distribute N instances across M processes of communicator comm More...
 
subroutine, public distributed_init_serial (this, total)
 Serial initialization of a distributed instance. The calling process is assigned all total instances, such that start = 1, end = total and parallel = .false., and no MPI communication is required. More...
 
subroutine, public distributed_copy (in, out)
 Create a copy of a distributed instance. More...
 
subroutine, public distributed_end (this)
 

Function/Subroutine Documentation

◆ distributed_nlocal()

pure integer function distributed_oct_m::distributed_nlocal ( class(distributed_t), intent(in)  this)
private

Number of instances of the distributed quantity on process mpi_grprank.

Definition at line 157 of file distributed.F90.

◆ distributed_nglobal()

pure integer function distributed_oct_m::distributed_nglobal ( class(distributed_t), intent(in)  this)
private

Total number of distributed instances.

Definition at line 166 of file distributed.F90.

◆ distributed_displs()

pure integer function, dimension(:), allocatable distributed_oct_m::distributed_displs ( class(distributed_t), intent(in)  this)
private

Displacement of each process''s local part, relative to the start of the distributed quantity, as required by MPI (all)gatherv and (all)scatterv.

Definition at line 176 of file distributed.F90.

◆ distributed_init()

subroutine, public distributed_oct_m::distributed_init ( type(distributed_t), intent(out)  this,
integer, intent(in)  total,
type(mpi_comm), intent(in)  comm,
character(len=*), intent(in), optional  tag,
logical, intent(in), optional  scalapack_compat 
)

Distribute N instances across M processes of communicator comm

Parameters
[in]totalSize of quantity to distribute
[in]commmpi communicator

Definition at line 186 of file distributed.F90.

◆ distributed_init_serial()

subroutine, public distributed_oct_m::distributed_init_serial ( type(distributed_t), intent(out)  this,
integer, intent(in)  total 
)

Serial initialization of a distributed instance. The calling process is assigned all total instances, such that start = 1, end = total and parallel = .false., and no MPI communication is required.

Parameters
[in]totalSize of quantity to distribute

Definition at line 248 of file distributed.F90.

◆ distributed_copy()

subroutine, public distributed_oct_m::distributed_copy ( type(distributed_t), intent(in)  in,
type(distributed_t), intent(inout)  out 
)

Create a copy of a distributed instance.

Definition at line 262 of file distributed.F90.

◆ distributed_end()

subroutine, public distributed_oct_m::distributed_end ( type(distributed_t), intent(inout)  this)

Definition at line 299 of file distributed.F90.