NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library
cntr::distributed_array< T > Class Template Reference

Auxiliary data structure for handling set of data blocks and includes usual MPI processes on them. More...

#include <cntr_distributed_array_decl.hpp>

+ Inheritance diagram for cntr::distributed_array< T >:

Public Member Functions

T * block (int j)
  Returns the pointer to block j. More...
int blocksize (void) const
void clear (void)
  Clear all data More...
T * data (void) const
 distributed_array ()
 distributed_array (const distributed_array &g)
 distributed_array (int n, int maxlen, bool mpi)
  Initializes the distributed_array class. More...
int firstblock_rank (void)
  Return first blocks on rank. More...
int maxlen (void) const
void mpi_bcast_all (void)
  MPI Allgather equivalent for the distributed array More...
void mpi_bcast_all (void)
void mpi_bcast_block (int j)
  MPI broadcast of j-th block More...
void mpi_bcast_block (int j)
void mpi_gather (void)
void mpi_gather (int dest)
  MPI gather for the distributed array More...
void mpi_send_block (int j, int dest)
  Sends the j-th block to the MPI rank dest More...
int n (void) const
int ntasks (void) const
int numblock_rank (void)
  Return number of blocks on rank. More...
distributed_arrayoperator= (const distributed_array &g)
bool rank_owns (int k) const
void reset_blocksize (int blocksize)
  Reset the block size for each block. More...
int tid (void) const
std::vector< int > tid_map (void) const
 ~distributed_array ()

Detailed Description

template<typename T>
class cntr::distributed_array< T >

Auxiliary data structure for handling set of data blocks and includes usual MPI processes on them.


Auxiliary data structure for handling of data blocks (total number is n_) , which are stored in * contiguous form in member data_ and includes usual MPI routines. The class identity is marked by * tid_ \( \in (0,\ldots,ntasks_-1) \) and the value of the tid_ is just the MPI rank or 0 if MPI is not defined. Each data block j is owned by precisely one process, which is given by \( tid * _map(j) = tid_\). The member maxlen marks the maximum size reserved for the block. NOTE: even if the block is not owned by the process, the space for the data is allocated; the ownership plays a role when the data are manipulated

Definition at line 30 of file cntr_distributed_array_decl.hpp.

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