This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matrix.
More...
#include <parallel_2d.h>
|
int | blacs_ctxt = -1 |
| BLACS context.
|
|
int | desc [9] = {} |
| ScaLAPACK descriptor.
|
|
int | nrow = 0 |
| local size (nloc = nrow * ncol)
|
|
int | ncol = 0 |
|
int64_t | nloc = 0 |
|
int | nb = 1 |
| block size
|
|
int | dim0 = 0 |
| number of processes in each dimension of the MPI Cartesian grid
|
|
int | dim1 = 0 |
|
int | coord [2] = {-1, -1} |
| process coordinate in the BLACS grid
|
|
bool | is_serial = false |
| whether to use the serial mode
|
|
This class packs the basic information of 2D-block-cyclic parallel distribution of an arbitrary matrix.
◆ Parallel_2D() [1/2]
Parallel_2D::Parallel_2D |
( |
| ) |
|
|
default |
◆ ~Parallel_2D()
Parallel_2D::~Parallel_2D |
( |
| ) |
|
|
default |
◆ Parallel_2D() [2/2]
◆ _init_proc_grid()
void Parallel_2D::_init_proc_grid |
( |
const MPI_Comm |
comm, |
|
|
const bool |
mode |
|
) |
| |
|
protected |
◆ _set_dist_info()
void Parallel_2D::_set_dist_info |
( |
const int |
mg, |
|
|
const int |
ng, |
|
|
const int |
nb |
|
) |
| |
|
protected |
◆ comm()
MPI_Comm Parallel_2D::comm |
( |
| ) |
const |
◆ get_block_size()
int Parallel_2D::get_block_size |
( |
| ) |
const |
|
inline |
side length of 2d square block
◆ get_col_size()
int Parallel_2D::get_col_size |
( |
| ) |
const |
|
inline |
◆ get_global_col_size()
int Parallel_2D::get_global_col_size |
( |
| ) |
const |
◆ get_global_row_size()
int Parallel_2D::get_global_row_size |
( |
| ) |
const |
◆ get_local_size()
int64_t Parallel_2D::get_local_size |
( |
| ) |
const |
|
inline |
number of local matrix elements
◆ get_row_size()
int Parallel_2D::get_row_size |
( |
| ) |
const |
|
inline |
◆ global2local_col()
int Parallel_2D::global2local_col |
( |
const int |
igc | ) |
const |
|
inline |
get the local index of a global index (col)
◆ global2local_row()
int Parallel_2D::global2local_row |
( |
const int |
igr | ) |
const |
|
inline |
get the local index of a global index (row)
◆ in_this_processor()
bool Parallel_2D::in_this_processor |
( |
const int |
iw1_all, |
|
|
const int |
iw2_all |
|
) |
| const |
check whether a global index is in this process
◆ init()
int Parallel_2D::init |
( |
const int |
mg, |
|
|
const int |
ng, |
|
|
const int |
nb, |
|
|
const MPI_Comm |
comm, |
|
|
bool |
mode = false |
|
) |
| |
Initialize a BLACS grid with the given MPI communicator and set up the info of a block-cyclic distribution.
◆ local2global_col()
int Parallel_2D::local2global_col |
( |
const int |
ilc | ) |
const |
|
inline |
get the global index of a local index (col)
◆ local2global_row()
int Parallel_2D::local2global_row |
( |
const int |
ilr | ) |
const |
|
inline |
get the global index of a local index (row)
◆ operator=()
◆ set()
int Parallel_2D::set |
( |
const int |
mg, |
|
|
const int |
ng, |
|
|
const int |
nb, |
|
|
const int |
blacs_ctxt |
|
) |
| |
Set up the info of a block-cyclic distribution using given BLACS context.
◆ set_serial()
void Parallel_2D::set_serial |
( |
const int |
mg, |
|
|
const int |
ng |
|
) |
| |
◆ blacs_ctxt
int Parallel_2D::blacs_ctxt = -1 |
◆ coord
int Parallel_2D::coord[2] = {-1, -1} |
process coordinate in the BLACS grid
◆ desc
int Parallel_2D::desc[9] = {} |
◆ dim0
int Parallel_2D::dim0 = 0 |
number of processes in each dimension of the MPI Cartesian grid
◆ dim1
int Parallel_2D::dim1 = 0 |
◆ global2local_col_
std::vector<int> Parallel_2D::global2local_col_ |
|
protected |
◆ global2local_row_
std::vector<int> Parallel_2D::global2local_row_ |
|
protected |
map from global index to local index
◆ is_serial
bool Parallel_2D::is_serial = false |
whether to use the serial mode
◆ local2global_col_
std::vector<int> Parallel_2D::local2global_col_ |
|
protected |
◆ local2global_row_
std::vector<int> Parallel_2D::local2global_row_ |
|
protected |
map from local index to global index
◆ nb
◆ ncol
int Parallel_2D::ncol = 0 |
◆ nloc
int64_t Parallel_2D::nloc = 0 |
◆ nrow
int Parallel_2D::nrow = 0 |
local size (nloc = nrow * ncol)
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_base/parallel_2d.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_base/parallel_2d.cpp
- /home/runner/work/abacus-develop/abacus-develop/source/source_io/test/single_R_io_test.cpp