Octopus
mpi_lib_oct_m Module Reference

This module contains some common usage patterns of MPI routines. More...

Detailed Description

This module contains some common usage patterns of MPI routines.

Data Types

interface  lmpi_create_shared_memory_window
 
interface  lmpi_gen_allgatherv
 

Functions/Subroutines

integer function, public lmpi_translate_rank (from_comm, to_comm, rank)
 Returns the rank number of the node rank in from_comm for the to_comm communicator. More...
 
subroutine, public lmpi_destroy_shared_memory_window (window)
 
subroutine, public lmpi_sync_shared_memory_window (window, intranode_grp)
 
subroutine, public create_intranode_communicator (base_grp, intranode_grp, internode_grp)
 
subroutine dlmpi_gen_allgatherv (incount, in, outcount, out, mpi_grp)
 Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items. More...
 
subroutine dlmpi_create_shared_memory_window (number_of_elements, intranode_grp, window, array)
 Create a shared memory segment as an MPI window. More...
 
subroutine zlmpi_gen_allgatherv (incount, in, outcount, out, mpi_grp)
 Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items. More...
 
subroutine zlmpi_create_shared_memory_window (number_of_elements, intranode_grp, window, array)
 Create a shared memory segment as an MPI window. More...
 
subroutine ilmpi_gen_allgatherv (incount, in, outcount, out, mpi_grp)
 Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items. More...
 
subroutine ilmpi_create_shared_memory_window (number_of_elements, intranode_grp, window, array)
 Create a shared memory segment as an MPI window. More...
 
subroutine llmpi_gen_allgatherv (incount, in, outcount, out, mpi_grp)
 Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items. More...
 
subroutine llmpi_create_shared_memory_window (number_of_elements, intranode_grp, window, array)
 Create a shared memory segment as an MPI window. More...
 

Function/Subroutine Documentation

◆ lmpi_translate_rank()

integer function, public mpi_lib_oct_m::lmpi_translate_rank ( type(mpi_comm), intent(in)  from_comm,
type(mpi_comm), intent(in)  to_comm,
integer, intent(in)  rank 
)

Returns the rank number of the node rank in from_comm for the to_comm communicator.

Definition at line 156 of file mpi_lib.F90.

◆ lmpi_destroy_shared_memory_window()

subroutine, public mpi_lib_oct_m::lmpi_destroy_shared_memory_window ( type(mpi_win), intent(inout)  window)

Definition at line 178 of file mpi_lib.F90.

◆ lmpi_sync_shared_memory_window()

subroutine, public mpi_lib_oct_m::lmpi_sync_shared_memory_window ( type(mpi_win), intent(in)  window,
type(mpi_grp_t), intent(in)  intranode_grp 
)

Definition at line 192 of file mpi_lib.F90.

◆ create_intranode_communicator()

subroutine, public mpi_lib_oct_m::create_intranode_communicator ( type(mpi_grp_t), intent(in)  base_grp,
type(mpi_grp_t), intent(out)  intranode_grp,
type(mpi_grp_t), intent(out)  internode_grp 
)

Definition at line 204 of file mpi_lib.F90.

◆ dlmpi_gen_allgatherv()

subroutine mpi_lib_oct_m::dlmpi_gen_allgatherv ( integer, intent(in)  incount,
real(real64), dimension(:), intent(in), contiguous  in,
integer, intent(out)  outcount,
real(real64), dimension(:), intent(out), contiguous  out,
type(mpi_grp_t), intent(in)  mpi_grp 
)
private

Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items.

Definition at line 297 of file mpi_lib.F90.

◆ dlmpi_create_shared_memory_window()

subroutine mpi_lib_oct_m::dlmpi_create_shared_memory_window ( integer(int64), intent(in)  number_of_elements,
type(mpi_grp_t), intent(in)  intranode_grp,
type(mpi_win), intent(out)  window,
real(real64), dimension(:), intent(out), pointer  array 
)
private

Create a shared memory segment as an MPI window.

Definition at line 335 of file mpi_lib.F90.

◆ zlmpi_gen_allgatherv()

subroutine mpi_lib_oct_m::zlmpi_gen_allgatherv ( integer, intent(in)  incount,
complex(real64), dimension(:), intent(in), contiguous  in,
integer, intent(out)  outcount,
complex(real64), dimension(:), intent(out), contiguous  out,
type(mpi_grp_t), intent(in)  mpi_grp 
)

Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items.

Definition at line 447 of file mpi_lib.F90.

◆ zlmpi_create_shared_memory_window()

subroutine mpi_lib_oct_m::zlmpi_create_shared_memory_window ( integer(int64), intent(in)  number_of_elements,
type(mpi_grp_t), intent(in)  intranode_grp,
type(mpi_win), intent(out)  window,
complex(real64), dimension(:), intent(out), pointer  array 
)
private

Create a shared memory segment as an MPI window.

Definition at line 485 of file mpi_lib.F90.

◆ ilmpi_gen_allgatherv()

subroutine mpi_lib_oct_m::ilmpi_gen_allgatherv ( integer, intent(in)  incount,
integer, dimension(:), intent(in), contiguous  in,
integer, intent(out)  outcount,
integer, dimension(:), intent(out), contiguous  out,
type(mpi_grp_t), intent(in)  mpi_grp 
)

Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items.

Definition at line 597 of file mpi_lib.F90.

◆ ilmpi_create_shared_memory_window()

subroutine mpi_lib_oct_m::ilmpi_create_shared_memory_window ( integer(int64), intent(in)  number_of_elements,
type(mpi_grp_t), intent(in)  intranode_grp,
type(mpi_win), intent(out)  window,
integer, dimension(:), intent(out), pointer  array 
)
private

Create a shared memory segment as an MPI window.

Definition at line 635 of file mpi_lib.F90.

◆ llmpi_gen_allgatherv()

subroutine mpi_lib_oct_m::llmpi_gen_allgatherv ( integer, intent(in)  incount,
integer(int64), dimension(:), intent(in), contiguous  in,
integer, intent(out)  outcount,
integer(int64), dimension(:), intent(out), contiguous  out,
type(mpi_grp_t), intent(in)  mpi_grp 
)

Every node has incount (may vary from node to node) items (in array in) to send to everybody else in the group. The total number of items in the out array is given by outcount. out has to be big enough to contain all possible incoming items.

Definition at line 748 of file mpi_lib.F90.

◆ llmpi_create_shared_memory_window()

subroutine mpi_lib_oct_m::llmpi_create_shared_memory_window ( integer(int64), intent(in)  number_of_elements,
type(mpi_grp_t), intent(in)  intranode_grp,
type(mpi_win), intent(out)  window,
integer(int64), dimension(:), intent(out), pointer  array 
)
private

Create a shared memory segment as an MPI window.

Definition at line 786 of file mpi_lib.F90.