vt::mapping namespace

Classes

template<typename IdxT>
struct BaseMapper
The base class for a general mapper object group used for mapping elements of a collection to a node.
template<typename IdxT>
struct UnboundedDefaultMap
The default mapper for an unbounded dynamic collection.

Typedefs

template<typename IndexT>
using MapAdapter = PhysicalResourceType(IndexT*, IndexT*, PhysicalResourceType)
template<typename F, F* f>
using FunctorAdapt = ::vt::auto_registry::FunctorAdapter<F, f>
template<typename F, F* f, typename IndexT>
using MapFunctorAdapt = ::vt::auto_registry::FunctorAdapter<F, f, IndexT>
template<typename Index>
using IdxPtr = Index*
template<typename T = IdxBase>
using Idx1DPtr = IdxType1D<T>*
template<typename T = IdxBase>
using Idx2DPtr = IdxType2D<T>*
template<typename T = IdxBase>
using Idx3DPtr = IdxType3D<T>*
template<typename T, int8_t N>
using IdxNDPtr = IdxType<T, N>*
template<typename T = IdxBase>
using i1D = IdxType1D<T>
template<typename T = IdxBase>
using i2D = IdxType2D<T>
template<typename T = IdxBase>
using i3D = IdxType3D<T>
template<typename T, int8_t N>
using iND = IdxType<T, N>
template<typename F, F* f, typename IndexT>
using Adapt = MapFunctorAdapt<F, f, IndexT>
template<typename T = IdxBase>
using dense1DMapFn = Adapt<MapAdapter<i1D<T>>, defaultDenseIndex1DMap<T>, i1D<T>>
template<typename T = IdxBase>
using dense2DMapFn = Adapt<MapAdapter<i2D<T>>, defaultDenseIndex2DMap<T>, i2D<T>>
template<typename T = IdxBase>
using dense3DMapFn = Adapt<MapAdapter<i3D<T>>, defaultDenseIndex3DMap<T>, i3D<T>>
template<typename T, int8_t N>
using denseNDMapFn = Adapt<MapAdapter<iND<T, N>>, defaultDenseIndexNDMap<T>, iND<T, N>>
template<typename T = IdxBase>
using dense1DRRMapFn = Adapt<MapAdapter<i1D<T>>, dense1DRoundRobinMap<T>, i1D<T>>
template<typename T = IdxBase>
using dense2DRRMapFn = Adapt<MapAdapter<i2D<T>>, dense2DRoundRobinMap<T>, i2D<T>>
template<typename T = IdxBase>
using dense3DRRMapFn = Adapt<MapAdapter<i3D<T>>, dense3DRoundRobinMap<T>, i3D<T>>
template<typename T, int8_t N>
using denseNDRRMapFn = Adapt<MapAdapter<iND<T, N>>, denseNDRoundRobinMap<T>, iND<T, N>>
template<typename T = IdxBase>
using dense1DBlkMapFn = Adapt<MapAdapter<i1D<T>>, dense1DBlockMap<T>, i1D<T>>
template<typename T = IdxBase>
using dense2DBlkMapFn = Adapt<MapAdapter<i2D<T>>, dense2DBlockMap<T>, i2D<T>>
template<typename T = IdxBase>
using dense3DBlkMapFn = Adapt<MapAdapter<i3D<T>>, dense3DBlockMap<T>, i3D<T>>
template<typename T, int8_t N>
using denseNDBlkMapFn = Adapt<MapAdapter<iND<T, N>>, denseNDBlockMap<T>, iND<T, N>>
template<typename IndexType>
using MapType = PhysicalResourceType(*)(IndexType*, PhysicalResourceType)
template<typename IndexType>
using NodeMapType = MapType<IndexType>
template<typename IndexType>
using CoreMapType = MapType<IndexType>
template<typename IndexType>
using DenseMapType = PhysicalResourceType(*)(IndexType*, IndexType*, PhysicalResourceType)
template<typename IndexType>
using DenseNodeMapType = DenseMapType<IndexType>
template<typename IndexType>
using DenseCoreMapType = DenseMapType<IndexType>
using SeedMapType = PhysicalResourceType(*)(SeedType, PhysicalResourceType)
using NodeSeedMapType = SeedMapType
using CoreSeedMapType = SeedMapType
template<typename IndexT>
using ActiveMapTypedFnType = NodeType(IndexT*, IndexT*, NodeType)
using ActiveMapFnPtrType = NodeType(*)(index::BaseIndex*, index::BaseIndex*, NodeType)
using ActiveSeedMapFnType = NodeType(SeedType, NodeType)
using ActiveSeedMapFnPtrType = ActiveSeedMapFnType*
using CollectionMapFnType = ActiveMapFnPtrType

Functions

template<typename IndexElmType, typename PhysicalType>
auto blockMapDenseFlatIndex(IndexElmType* flat_idx, IndexElmType* num_elems, PhysicalType num_resources) -> NodeType
template<typename Idx, index::NumDimensionsType ndim>
auto linearizeDenseIndexColMajor(DenseIndex<Idx, ndim>* idx, DenseIndex<Idx, ndim>* max_idx) -> Idx
template<typename Idx, index::NumDimensionsType ndim>
auto linearizeDenseIndexRowMajor(DenseIndex<Idx, ndim>* idx, DenseIndex<Idx, ndim>* max_idx) -> Idx
template<typename Idx, index::NumDimensionsType ndim>
auto denseBlockMap(IdxPtr<Idx> idx, IdxPtr<Idx> max_idx, NodeType nnodes) -> NodeType
template<typename T = IdxBase>
auto defaultDenseIndex1DMap(Idx1DPtr<T> idx, Idx1DPtr<T> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto defaultDenseIndex2DMap(Idx2DPtr<T> idx, Idx2DPtr<T> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto defaultDenseIndex3DMap(Idx3DPtr<T> idx, Idx3DPtr<T> max, NodeType n) -> NodeType
template<typename T, int8_t N>
auto defaultDenseIndexNDMap(IdxNDPtr<T, N> idx, IdxNDPtr<T, N> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto dense1DRoundRobinMap(Idx1DPtr<T> idx, Idx1DPtr<T> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto dense2DRoundRobinMap(Idx2DPtr<T> idx, Idx2DPtr<T> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto dense3DRoundRobinMap(Idx3DPtr<T> idx, Idx3DPtr<T> max, NodeType n) -> NodeType
template<typename T, int8_t N>
auto denseNDRoundRobinMap(IdxNDPtr<T, N> idx, IdxNDPtr<T, N> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto dense1DBlockMap(Idx1DPtr<T> idx, Idx1DPtr<T> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto dense2DBlockMap(Idx2DPtr<T> idx, Idx2DPtr<T> max, NodeType n) -> NodeType
template<typename T = IdxBase>
auto dense3DBlockMap(Idx3DPtr<T> idx, Idx3DPtr<T> max, NodeType n) -> NodeType
template<typename T, int8_t N>
auto denseNDBlockMap(IdxNDPtr<T, N> idx, IdxNDPtr<T, N> max, NodeType n) -> NodeType
template<typename T>
auto dense1DRoundRobinMap(Idx1DPtr<T> idx, ] Idx1DPtr<T> max, NodeType nx) -> NodeType
auto randomSeedMap(SeedType seed, PhysicalResourceType nres) -> PhysicalResourceType
auto randomSeedMapCore(SeedType seed, CoreType ncores) -> CoreType
auto randomSeedMapNode(SeedType seed, NodeType nnodes) -> NodeType

Typedef documentation

template<typename IndexT>
using vt::mapping::MapAdapter = PhysicalResourceType(IndexT*, IndexT*, PhysicalResourceType)

template<typename F, F* f>
using vt::mapping::FunctorAdapt = ::vt::auto_registry::FunctorAdapter<F, f>

template<typename F, F* f, typename IndexT>
using vt::mapping::MapFunctorAdapt = ::vt::auto_registry::FunctorAdapter<F, f, IndexT>

template<typename Index>
using vt::mapping::IdxPtr = Index*

template<typename T = IdxBase>
using vt::mapping::Idx1DPtr = IdxType1D<T>*

template<typename T = IdxBase>
using vt::mapping::Idx2DPtr = IdxType2D<T>*

template<typename T = IdxBase>
using vt::mapping::Idx3DPtr = IdxType3D<T>*

template<typename T, int8_t N>
using vt::mapping::IdxNDPtr = IdxType<T, N>*

template<typename T = IdxBase>
using vt::mapping::i1D = IdxType1D<T>

template<typename T = IdxBase>
using vt::mapping::i2D = IdxType2D<T>

template<typename T = IdxBase>
using vt::mapping::i3D = IdxType3D<T>

template<typename T, int8_t N>
using vt::mapping::iND = IdxType<T, N>

template<typename F, F* f, typename IndexT>
using vt::mapping::Adapt = MapFunctorAdapt<F, f, IndexT>

template<typename T = IdxBase>
using vt::mapping::dense1DMapFn = Adapt<MapAdapter<i1D<T>>, defaultDenseIndex1DMap<T>, i1D<T>>

template<typename T = IdxBase>
using vt::mapping::dense2DMapFn = Adapt<MapAdapter<i2D<T>>, defaultDenseIndex2DMap<T>, i2D<T>>

template<typename T = IdxBase>
using vt::mapping::dense3DMapFn = Adapt<MapAdapter<i3D<T>>, defaultDenseIndex3DMap<T>, i3D<T>>

template<typename T, int8_t N>
using vt::mapping::denseNDMapFn = Adapt<MapAdapter<iND<T, N>>, defaultDenseIndexNDMap<T>, iND<T, N>>

template<typename T = IdxBase>
using vt::mapping::dense1DRRMapFn = Adapt<MapAdapter<i1D<T>>, dense1DRoundRobinMap<T>, i1D<T>>

template<typename T = IdxBase>
using vt::mapping::dense2DRRMapFn = Adapt<MapAdapter<i2D<T>>, dense2DRoundRobinMap<T>, i2D<T>>

template<typename T = IdxBase>
using vt::mapping::dense3DRRMapFn = Adapt<MapAdapter<i3D<T>>, dense3DRoundRobinMap<T>, i3D<T>>

template<typename T, int8_t N>
using vt::mapping::denseNDRRMapFn = Adapt<MapAdapter<iND<T, N>>, denseNDRoundRobinMap<T>, iND<T, N>>

template<typename T = IdxBase>
using vt::mapping::dense1DBlkMapFn = Adapt<MapAdapter<i1D<T>>, dense1DBlockMap<T>, i1D<T>>

template<typename T = IdxBase>
using vt::mapping::dense2DBlkMapFn = Adapt<MapAdapter<i2D<T>>, dense2DBlockMap<T>, i2D<T>>

template<typename T = IdxBase>
using vt::mapping::dense3DBlkMapFn = Adapt<MapAdapter<i3D<T>>, dense3DBlockMap<T>, i3D<T>>

template<typename T, int8_t N>
using vt::mapping::denseNDBlkMapFn = Adapt<MapAdapter<iND<T, N>>, denseNDBlockMap<T>, iND<T, N>>

template<typename IndexType>
using vt::mapping::MapType = PhysicalResourceType(*)(IndexType*, PhysicalResourceType)

template<typename IndexType>
using vt::mapping::NodeMapType = MapType<IndexType>

template<typename IndexType>
using vt::mapping::CoreMapType = MapType<IndexType>

template<typename IndexType>
using vt::mapping::DenseMapType = PhysicalResourceType(*)(IndexType*, IndexType*, PhysicalResourceType)

template<typename IndexType>
using vt::mapping::DenseNodeMapType = DenseMapType<IndexType>

template<typename IndexType>
using vt::mapping::DenseCoreMapType = DenseMapType<IndexType>

template<typename IndexT>
using vt::mapping::ActiveMapTypedFnType = NodeType(IndexT*, IndexT*, NodeType)

Function documentation

template<typename IndexElmType, typename PhysicalType>
NodeType vt::mapping::blockMapDenseFlatIndex(IndexElmType* flat_idx, IndexElmType* num_elems, PhysicalType num_resources)

template<typename Idx, index::NumDimensionsType ndim>
Idx vt::mapping::linearizeDenseIndexColMajor(DenseIndex<Idx, ndim>* idx, DenseIndex<Idx, ndim>* max_idx)

template<typename Idx, index::NumDimensionsType ndim>
Idx vt::mapping::linearizeDenseIndexRowMajor(DenseIndex<Idx, ndim>* idx, DenseIndex<Idx, ndim>* max_idx)

template<typename Idx, index::NumDimensionsType ndim>
NodeType vt::mapping::denseBlockMap(IdxPtr<Idx> idx, IdxPtr<Idx> max_idx, NodeType nnodes)

template<typename T = IdxBase>
NodeType vt::mapping::defaultDenseIndex1DMap(Idx1DPtr<T> idx, Idx1DPtr<T> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::defaultDenseIndex2DMap(Idx2DPtr<T> idx, Idx2DPtr<T> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::defaultDenseIndex3DMap(Idx3DPtr<T> idx, Idx3DPtr<T> max, NodeType n)

template<typename T, int8_t N>
NodeType vt::mapping::defaultDenseIndexNDMap(IdxNDPtr<T, N> idx, IdxNDPtr<T, N> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::dense1DRoundRobinMap(Idx1DPtr<T> idx, Idx1DPtr<T> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::dense2DRoundRobinMap(Idx2DPtr<T> idx, Idx2DPtr<T> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::dense3DRoundRobinMap(Idx3DPtr<T> idx, Idx3DPtr<T> max, NodeType n)

template<typename T, int8_t N>
NodeType vt::mapping::denseNDRoundRobinMap(IdxNDPtr<T, N> idx, IdxNDPtr<T, N> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::dense1DBlockMap(Idx1DPtr<T> idx, Idx1DPtr<T> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::dense2DBlockMap(Idx2DPtr<T> idx, Idx2DPtr<T> max, NodeType n)

template<typename T = IdxBase>
NodeType vt::mapping::dense3DBlockMap(Idx3DPtr<T> idx, Idx3DPtr<T> max, NodeType n)

template<typename T, int8_t N>
NodeType vt::mapping::denseNDBlockMap(IdxNDPtr<T, N> idx, IdxNDPtr<T, N> max, NodeType n)

template<typename T>
NodeType vt::mapping::dense1DRoundRobinMap(Idx1DPtr<T> idx, ] Idx1DPtr<T> max, NodeType nx)