ug4
Parallel Algebra

Modules

 Parallel Algebra Communication Policies
 Communication Policies for parallel Algebra.
 
 Parallel Algebra Communication Scheme
 Communication Scheme for parallel Algebra.
 
 Parallel Algebra Consistency Check
 with ConsistencyCheck, you can check the consistency of any array over layouts
 
 Parallel Algebra Util
 Util Functions for parallel Algebra.
 

Classes

class  ug::ParallelMatrix< TMatrix >
 Wrapper for sequential matrices to handle them in parallel. More...
 
class  ug::ParallelVector< TVector >
 

Typedefs

typedef pcl::SingleLevelLayout< pcl::OrderedInterface< size_t, std::vector > > ug::IndexLayout
 

Enumerations

enum  ug::ParallelStorageType { ug::PST_UNDEFINED = 0 , ug::PST_CONSISTENT = 1 << 0 , ug::PST_ADDITIVE = 1 << 1 , ug::PST_UNIQUE = 1 << 2 }
 

Detailed Description

Parallel Algebra is used to parallelize any type of vectors and matrices.

Typedef Documentation

◆ IndexLayout

Allows communication between distributed vectors and matrices. Note that indices are stored in an std::vector in the moment. This allows fast iteration and memory allocation, if dynamic interfaces are required this may however be slower than a std::list container.

Enumeration Type Documentation

◆ ParallelStorageType

Parallel Storage type The storage type of a vector is used in parallel applications. We assume that the dofs are distributed to the processes in the way that each dof is master on exactly one process and can be a slave (i.e. a local copy) on several other processes. Given the real values of the dofs the different storage type are defined as follows:

  • PST_UNDEFINED: no information given
  • PST_CONSISTENT: The real value is saved in the master and every slave
  • PST_ADDITIVE: The sum over the values in the master and all slaves gives the exact value
  • PST_UNIQUE: Same as PST_ADDITIV, but value is zero in all slaves (i.e. master has exact value)

Note, that a Vector can have more than one type. E.g. every unique Vector is additive. Moreover, the Vector being zero everywhere is consistent, additive and unique at the same time. Therefore, the information is given bitwise.

To check, whether a Vector v is in a type one may ask: – v.has_storage_type(PST_CONSISTENT), etc. To change into another type – v.change_storage_type(PST_ADDITIVE)

Enumerator
PST_UNDEFINED 
PST_CONSISTENT 
PST_ADDITIVE 
PST_UNIQUE