Thyra
Version of the Day
|
The package Thyra contains base subclasses that support a common type of SPMD implementation of vectors and multi-vectors that are described here. The base subclasses described here provide support for a simple, yet general, category of Serial and SPMD vectors, multi-vectors and vector spaces. More...
Classes | |
class | Thyra::SerialVectorSpaceConverterBase< ScalarFrom, ScalarTo > |
Node base class for converting serial multi-vectors (and vectors) from one scalar type to another. More... | |
class | Thyra::SpmdMultiVectorDefaultBase< Scalar > |
Base node implementation class for SPMD multi-vectors. More... | |
class | Thyra::SpmdVectorDefaultBase< Scalar > |
Base class for SPMD vectors that can provide views of contiguous elements in a process. More... | |
class | Thyra::SpmdVectorSpaceDefaultBase< Scalar > |
Base VectorSpaceBase class for all SPMD vector spaces with contiguous local-to-global indexing. More... | |
The package Thyra contains base subclasses that support a common type of SPMD implementation of vectors and multi-vectors that are described here. The base subclasses described here provide support for a simple, yet general, category of Serial and SPMD vectors, multi-vectors and vector spaces.
Thyra::SpmdVectorSpaceDefaultBase
abstracts the the types of SPMD distributed-memory data distributions supported by these base subclasses. This vector space base class assumes a unique partitioning of vector and multi-vector elements to a set of processors where there exists no ghost elements.
Thyra::SpmdVectorBase
is a base subclass for SPMD Thyra::VectorBase
objects. This class defines concrete implementations for the Thyra::VectorBase
virtual functions applyOp()
, acquireDetachedView() const
, releaseDetachedView() const
, acquireDetachedView()
and commitDetachedView()
. These functions are implemented given explicit access to local processor elements as returned by the getLocalData()
functions overridden in a subclass object.
Thyra::SpmdMultiVectorBase
is a base subclass for SPMD Thyra::MultiVectorBase
objects. This class defines concrete implementations for the Thyra::MultiVectorBase
virtual functions applyOp()
, acquireDetachedView() const
, releaseDetachedView() const
, acquireDetachedView()
and commitDetachedView()
. These functions are implemented given explicit access to local processor elements as returned by the getLocalData()
functions overridden in a subclass object. The multi-vector version of Thyra::SpmdMultiVectorBase::apply()
is implemented by calling Teuchos::BLAS::GEMM()
on each local processor to access level-3 BLAS. Therefore, if Teuchos is configured to link to optimized BLAS then this base subclass will provided a near optimal implementation of a SPMD multi-vector.
One of the big advantages of deriving concrete SPMD implementations from these base subclasses is that they provide automatic interoperability between different concrete subclasses that all derive from these interfaces..
In addition, there is support software for accessing local data in SPMD vectors and multi-vectors described Official utilities for accessing local data in SPMD vectors and multi-vectors..