ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
MPICommGroup Class Reference

#include <parallel_comm.h>

Collaboration diagram for MPICommGroup:

Public Member Functions

 MPICommGroup (MPI_Comm parent_comm)
 
 ~MPICommGroup ()
 
void divide_group_comm (const int &ngroup, const bool assert_even=true)
 

Public Attributes

bool is_even = false
 whether the group is even
 
MPI_Comm parent_comm = MPI_COMM_NULL
 parent communicator
 
int gsize = 0
 size of parent communicator
 
int grank = 0
 rank of parent communicator
 
MPI_Comm group_comm = MPI_COMM_NULL
 group communicator
 
int ngroups = 0
 number of groups
 
int nprocs_in_group = 0
 number of processes in the group
 
int my_group = 0
 the group index
 
int rank_in_group = 0
 the rank in the group
 
MPI_Comm inter_comm = MPI_COMM_NULL
 inter communicator
 
bool has_inter_comm = false
 whether has inter communicator
 
int & nprocs_in_inter = ngroups
 number of processes in the inter communicator
 
int & my_inter = rank_in_group
 the rank in the inter communicator
 
int & rank_in_inter = my_group
 the inter group index
 

Constructor & Destructor Documentation

◆ MPICommGroup()

MPICommGroup::MPICommGroup ( MPI_Comm  parent_comm)

◆ ~MPICommGroup()

MPICommGroup::~MPICommGroup ( )

Member Function Documentation

◆ divide_group_comm()

void MPICommGroup::divide_group_comm ( const int &  ngroup,
const bool  assert_even = true 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ grank

int MPICommGroup::grank = 0

rank of parent communicator

◆ group_comm

MPI_Comm MPICommGroup::group_comm = MPI_COMM_NULL

group communicator

◆ gsize

int MPICommGroup::gsize = 0

size of parent communicator

◆ has_inter_comm

bool MPICommGroup::has_inter_comm = false

whether has inter communicator

◆ inter_comm

MPI_Comm MPICommGroup::inter_comm = MPI_COMM_NULL

inter communicator

◆ is_even

bool MPICommGroup::is_even = false

whether the group is even

◆ my_group

int MPICommGroup::my_group = 0

the group index

◆ my_inter

int& MPICommGroup::my_inter = rank_in_group

the rank in the inter communicator

◆ ngroups

int MPICommGroup::ngroups = 0

number of groups

◆ nprocs_in_group

int MPICommGroup::nprocs_in_group = 0

number of processes in the group

◆ nprocs_in_inter

int& MPICommGroup::nprocs_in_inter = ngroups

number of processes in the inter communicator

◆ parent_comm

MPI_Comm MPICommGroup::parent_comm = MPI_COMM_NULL

parent communicator

◆ rank_in_group

int MPICommGroup::rank_in_group = 0

the rank in the group

◆ rank_in_inter

int& MPICommGroup::rank_in_inter = my_group

the inter group index


The documentation for this class was generated from the following files: