|
DASH
0.3.0
|
This class is a simple memory pool which holds allocates elements of size ValueType. More...
Namespaces | |
| atomic | |
| Routines to perform atomic operations on atomics residing in the global address space. | |
| io | |
| Specification of the DASH Container IO interfaces. | |
Classes | |
| struct | allocation_dynamic |
| struct | allocation_static |
| Allocation Policy. More... | |
| struct | allocator_traits |
| class | Array |
| A distributed array. More... | |
| class | ArrayRef |
Proxy type representing an access modifier on elements in a dash::Array. More... | |
| class | ArrayRefView |
Proxy type representing a view specifier on elements in a dash::Array. More... | |
| class | Atomic |
| Type wrapper to mark any trivial type atomic. More... | |
| struct | bit_and |
| Reduce operands with binary AND. More... | |
| struct | bit_or |
| Reduce operands with binary OR. More... | |
| struct | bit_xor |
| Reduce operands with binary XOR. More... | |
| class | BlockPattern |
| Defines how a list of global indices is mapped to single units within a Team. More... | |
| class | BlockPattern< 1, Arrangement, IndexType > |
| Defines how a list of global indices is mapped to single units within a Team. More... | |
| class | BytesPerCycleMeasure |
| class | CartesianIndexSpace |
| Defines a cartesian, totally-ordered index space by mapping linear indices to cartesian coordinates depending on memory order. More... | |
| class | CartesianSpace |
Cartesian space defined by extents in n dimensions. More... | |
| struct | CartView |
| Cartesian view class. More... | |
| class | CartViewBase |
| Base class for a cartesian view, i.e. More... | |
| class | Coarray |
| A fortran style coarray. More... | |
| class | Coevent |
| A fortran style coevent. More... | |
| class | CompositeView |
| class | Comutex |
| A fortran style comutex. More... | |
| struct | conjunction |
| struct | conjunction< Cond0 > |
| struct | conjunction< Cond0, CondN... > |
| class | CSRPattern< 1, Arrangement, IndexType > |
| Irregular Pattern for Compressed Sparse Row Storage. More... | |
| struct | dart_datatype |
| Type trait for mapping to DART data types. More... | |
| struct | dart_operation |
| Query the underlying dart_operation_t for arbitrary binary operations. More... | |
| struct | dart_punned_datatype |
| Type trait for mapping to punned DART data type for reduce operations. More... | |
| struct | dart_storage |
Convencience wrapper to determine the DART type and number of elements required for the given template parameter type T and the desired number of values nvalues. More... | |
| class | DefaultDeleter |
| class | Deferred |
| class | Dimensional |
| Base class for dimensional attributes, stores an n-dimensional value with identical type all dimensions. More... | |
| class | Distribution |
| Specifies how a Pattern distributes elements to units in a specific dimension. More... | |
| class | DistributionSpec |
| DistributionSpec describes distribution patterns of all dimensions,. More... | |
| class | Domain |
| class | DynamicPattern< 1, Arrangement, IndexType > |
| Irregular dynamic pattern. More... | |
| class | EpochSynchronizedAllocator |
| Encapsulates a memory allocation and deallocation strategy of global memory regions distributed across local memory of units in a specified team. More... | |
| struct | Extent |
| struct | first |
| Returns second operand. More... | |
| class | Future |
| Implementation of a future used to wait for an operation to complete and access the value returned by that operation. More... | |
| class | Future< void > |
Overload of dash::Future for operations returning void. More... | |
| class | GlobalAllocator |
| class | GlobalMemorySpaceBase |
| class | GlobAsyncIter |
| class | GlobAsyncRef |
| Global value reference for asynchronous / non-blocking operations. More... | |
| class | GlobAsyncRef< dash::Atomic< T > > |
| Specialization for atomic values. More... | |
| class | GlobHeapLocalPtr |
| Iterator on local buckets. More... | |
| class | GlobHeapMem |
| Global memory region with dynamic size. More... | |
| class | GlobHeapPtr |
| Iterator on global buckets. More... | |
| class | GlobIter |
| Iterator on Partitioned Global Address Space. More... | |
| class | GlobListIter |
Bi-directional global iterator on elements of a dash::List instance. More... | |
| class | GlobLocalMemoryPool |
| class | GlobPtr |
| Pointer in global memory space with random access arithmetics. More... | |
| class | GlobRef |
| class | GlobRef< dash::Atomic< T > > |
| Specialization for atomic values. More... | |
| class | GlobSharedRef |
| class | GlobStaticMem |
| Global memory with address space of static size. More... | |
| class | GlobViewIter |
| Global iterator on an index set specified by a view modifier. More... | |
| struct | has_operator_equal |
| struct | has_operator_equal_impl |
| Type trait indicating whether a type has a comparision operator== defined. More... | |
| class | HashLocal |
| class | HBWSpace |
| class | HIter |
| class | HostSpace |
| class | HView |
| class | HView< ContainerType, -1 > |
| class | IndexRange |
| class | IndexRange< 1, IndexType > |
| struct | is_arithmetic |
| Type trait indicating whether a type can be used for arithmetic operations in global memory space. More... | |
| struct | is_atomic |
type traits for dash::Atomic More... | |
| struct | is_atomic< dash::Atomic< T > > |
| struct | is_atomic_compatible |
| Type trait indicating whether a type can be used for global atomic operations. More... | |
| struct | is_container_compatible |
| Type trait indicating whether the specified type is eligible for elements of DASH containers. More... | |
| struct | is_range |
Definition of type trait dash::is_range<T> with static member value indicating whether type T is a model of the Range concept. More... | |
| struct | iterator_traits |
| class | IteratorRange |
Adapter template for range concept, wraps begin and end iterators in range type. More... | |
| class | IteratorRange< LocalIterator *, LocalSentinel * > |
Specialization of adapter template for range concept, wraps begin and end pointers in range type. More... | |
| class | IteratorViewOrigin |
| class | List |
| Usage examples: More... | |
| class | ListRef |
Proxy type referencing a dash::List. More... | |
| class | LoadBalancePattern |
| Irregular dynamic pattern. More... | |
| class | LoadBalancePattern< 1, CompBasedMeasure, MemBasedMeasure, Arrangement, IndexType > |
| Irregular dynamic pattern. More... | |
| class | LocalArrayRef |
Proxy type representing local access to elements in a dash::Array. More... | |
| struct | LocalIndexRange |
| class | LocalListRef |
Proxy type representing a local view on a referenced dash::List. More... | |
| class | LocalMatrixRef |
| Forward-declaration. More... | |
| class | LocalMemoryLayout |
| Specifies how local element indices are arranged in a specific number of dimensions. More... | |
| class | LocalMemorySpaceBase |
| struct | LocalRange |
| class | Matrix |
| Forward-declaration. More... | |
| class | MatrixRef |
| Forward-declaration. More... | |
| class | MatrixRefView |
| Stores information needed by subscripting and subdim selection. More... | |
| struct | max |
| Reduce operands to their maximum value. More... | |
| struct | memory_domain_global |
The MemorySpace concept follows the STL std::pmr::memory_resource. More... | |
| struct | memory_domain_local |
| struct | memory_space_contiguous |
| struct | memory_space_cuda_tag |
| struct | memory_space_hbw_tag |
| struct | memory_space_host_tag |
| struct | memory_space_noncontiguous |
| struct | memory_space_pmem_tag |
| struct | memory_space_traits |
| class | MemorySpace |
| class | MemorySpace< memory_domain_global, Args... > |
| class | MemorySpace< memory_domain_local, Args... > |
| struct | multiply |
| Reduce operands to their product. More... | |
| class | MultiView |
| Multidimensional view. More... | |
| class | Mutex |
Behaves similar to std::mutex and is used to ensure mutual exclusion within a dash team. More... | |
| struct | Pair |
| A trivially-copyable implementation of std::pair to be used as element type of DASH containers. More... | |
| struct | pattern_constraints |
| Traits for compile-time pattern constraints checking, suitable as a helper for template definitions employing SFINAE where no verbose error reporting is required. More... | |
| struct | pattern_layout_properties |
| {} More... | |
| struct | pattern_layout_tag |
| {} More... | |
| struct | pattern_layout_traits |
| struct | pattern_mapping_properties |
| Generic type of mapping properties of a model satisfying the Pattern concept. More... | |
| struct | pattern_mapping_tag |
| Container type for mapping properties of models satisfying the Pattern concept. More... | |
| struct | pattern_mapping_traits |
| struct | pattern_partitioning_properties |
| {} More... | |
| struct | pattern_partitioning_tag |
| {} More... | |
| struct | pattern_partitioning_traits |
| struct | pattern_traits |
| class | PatternConcept |
| Defines how a list of global indices is mapped to single units within a Team. More... | |
| class | PatternIterator |
| {}Usage: More... | |
| struct | plus |
| Reduce operands to their sum. More... | |
| struct | Point |
| class | RangeBase |
| struct | remove_atomic |
type traits for dash::Atomic More... | |
| struct | remove_atomic< dash::Atomic< T > > |
| struct | second |
| Returns second operand. More... | |
| class | SeqTilePattern |
| Defines how a list of global indices is mapped to single units within a Team. More... | |
| class | Shared |
| Shared access to a value in global memory across a team. More... | |
| class | SharedCounter |
| A simple shared counter that allows atomic increment- and decrement operations. More... | |
| class | ShiftTilePattern |
| Defines how a list of global indices is mapped to single units within a Team. More... | |
| class | SimpleMemoryPoolResource |
| class | SizeSpec |
| Specifies cartesian extents in a specific number of dimensions. More... | |
| class | StridedView |
| struct | synchronization_collective |
| Synchronization Policy. More... | |
| struct | synchronization_independent |
| struct | synchronization_single |
| class | Team |
| A Team instance specifies a subset of all available units. More... | |
| class | TeamPtr |
| class | TeamSpec |
| Specifies the arrangement of team units in a specified number of dimensions. More... | |
| class | TilePattern |
| Defines how a list of global indices is mapped to single units within a Team. More... | |
| class | UnitClockFreqMeasure |
| class | UniversalMember |
| Utility class template to capture values from both moved temporaries (rvalues) and named references to avoid temporary copies. More... | |
| class | UnorderedMap |
| Usage examples: More... | |
| class | UnorderedMapGlobIter |
| class | UnorderedMapLocalIter |
| class | UnorderedMapLocalRef |
| Local view specifier of a dynamic map container with support for workload balancing. More... | |
| struct | view_traits |
| View type traits. More... | |
| struct | view_traits< dash::IteratorRange< IteratorT, SentinelT > > |
Specialization of dash::view_traits for IteratorRange. More... | |
| struct | view_traits< IteratorViewOrigin< Iterator, Sentinel > > |
| struct | view_traits< ViewLocalMod< DomainType, NDim > > |
| struct | view_traits< ViewOrigin< NDim > > |
| struct | view_traits< ViewSubMod< DomainType, SubDim, NDim > > |
| class | ViewBlockMod |
| class | ViewIterator |
| class | ViewIterator< DomainIterator *, IndexSetType > |
| class | ViewLocalMod |
| class | ViewModBase |
| class | ViewOrigin |
| Monotype for the logical symbol that represents a view origin. More... | |
| struct | ViewPair |
| Offset and extent in a single dimension. More... | |
| struct | ViewRange |
| struct | ViewRegion |
| Representation of a ViewPair as region specified by origin and end coordinates. More... | |
| class | ViewSpec |
| Specifies view parameters for implementing submat, rows and cols. More... | |
| class | ViewSubMod |
Typedefs | |
| typedef dash::pattern_partitioning_properties< dash::pattern_partitioning_tag::rectangular, dash::pattern_partitioning_tag::balanced, dash::pattern_partitioning_tag::ndimensional > | summa_pattern_partitioning_constraints |
Constraints on pattern partitioning properties of matrix operands passed to dash::summa. More... | |
| typedef dash::pattern_mapping_properties< dash::pattern_mapping_tag::multiple, dash::pattern_mapping_tag::unbalanced > | summa_pattern_mapping_constraints |
Constraints on pattern mapping properties of matrix operands passed to dash::summa. More... | |
| typedef dash::pattern_layout_properties< dash::pattern_layout_tag::blocked, dash::pattern_layout_tag::linear > | summa_pattern_layout_constraints |
Constraints on pattern layout properties of matrix operands passed to dash::summa. More... | |
| template<typename MatrixType > | |
| using | summa_pattern_constraints = typename dash::pattern_constraints< dash::summa_pattern_partitioning_constraints, dash::summa_pattern_mapping_constraints, dash::summa_pattern_layout_constraints, typename MatrixType::pattern_type > |
| template<typename T , dim_t NumDimensions, typename IndexT = dash::default_index_t, class PatternT = Pattern<NumDimensions, ROW_MAJOR, IndexT>, typename LocalMemSpaceT = HostSpace> | |
| using | NArray = dash::Matrix< T, NumDimensions, IndexT, PatternT, LocalMemSpaceT > |
| Template alias for dash::Matrix with the same default template arguments. More... | |
| template<class T > | |
| using | GlobMemAllocPtr = decltype(dash::memalloc< T >(size_t{})) |
| Convenience Wrapper to retrieve easily the type allocated by dash::memalloc<T> More... | |
| typedef dash::pattern_partitioning_properties< pattern_partitioning_tag::rectangular, pattern_partitioning_tag::unbalanced > | pattern_partitioning_default_properties |
| typedef dash::pattern_mapping_properties< pattern_mapping_tag::unbalanced > | pattern_mapping_default_properties |
| typedef dash::pattern_layout_properties< pattern_layout_tag::row_major, pattern_layout_tag::canonical, pattern_layout_tag::linear > | pattern_layout_default_properties |
| template<dim_t NumDimensions, MemArrange Arrangement = ROW_MAJOR, typename IndexType = dash::default_index_t> | |
| using | Pattern = dash::BlockPattern< NumDimensions, Arrangement, IndexType > |
| Template alias for dash::Pattern with the same default template arguments. More... | |
| typedef enum dash::MemArrange | MemArrange |
| typedef int | dim_t |
| Scalar type for a dimension value, with 0 indicating the first dimension. More... | |
| typedef internal::default_signed_index | default_index_t |
| Signed integer type used as default for index values. More... | |
| typedef internal::default_unsigned_index | default_extent_t |
| Unsigned integer type used as default for extent values. More... | |
| typedef internal::default_unsigned_index | default_size_t |
| Unsigned integer type used as default for size values. More... | |
| typedef internal::default_signed_index | gptrdiff_t |
| Difference type for global pointers. More... | |
| typedef struct dash::unit_id< dash::local_unit, dart_team_unit_t > | team_unit_t |
| Unit ID to use for team-local IDs. More... | |
| typedef struct dash::unit_id< dash::global_unit, dart_global_unit_t > | global_unit_t |
| Unit ID to use for global IDs. More... | |
| typedef std::max_align_t | max_align_t |
Enumerations | |
| enum | global_allocation_policy : uint8_t { global_allocation_policy::collective, global_allocation_policy::non_collective, global_allocation_policy::epoch_synchronized } |
| enum | launch : uint16_t { launch::sync = 0x1, launch::async = 0x2 } |
| enum | MemArrange { MEM_ARRANGE_UNDEFINED = 0, ROW_MAJOR, COL_MAJOR } |
Functions | |
| template<typename GlobIter , typename UnaryPredicate > | |
| bool | all_of (GlobIter first, GlobIter last, UnaryPredicate p) |
Check whether all element in the range satisfy predicate p. More... | |
| template<typename GlobIter , typename UnaryPredicate > | |
| bool | any_of (GlobIter first, GlobIter last, UnaryPredicate p) |
Check whether any element in the range satisfies predicate p. More... | |
| template<class LocalInputIter , typename = typename std::enable_if< !dash::detail::is_global_iterator<LocalInputIter>::value >::type> | |
| void | broadcast (LocalInputIter in_first, LocalInputIter in_last, dash::team_unit_t root, dash::Team &team=dash::Team::All()) |
Broadcast the local range of elements [in_first, in_last) from unit root to all other units in team. More... | |
| template<class ValueType > | |
| ValueType | broadcast (dash::Shared< ValueType > &shared) |
| Broadcast the value stored in dash::Shared from the unit owning the value to all other units with access to the shared object. More... | |
| template<typename T > | |
| void | broadcast (Coarray< T > &coarr, const team_unit_t &root) |
Broadcasts the value on root to all other members of this co_array. More... | |
| template<typename ValueType , class InputIt , class OutputIt > | |
| OutputIt | copy (InputIt in_first, InputIt in_last, OutputIt out_first) |
Copies the elements in the range, defined by [in_first, in_last), to another range beginning at out_first. More... | |
| template<typename ValueType , class GlobInputIt > | |
| dash::Future< ValueType * > | copy_async (InputIt in_first, InputIt in_last, OutputIt out_first) |
Asynchronous variant of dash::copy. More... | |
| template<typename GlobIter > | |
| bool | equal (GlobIter first_1, GlobIter last_1, GlobIter first_2) |
Returns true if the range [first1, last1) is equal to the range [first2, first2 + (last1 - first1)), and false otherwise. More... | |
| template<typename GlobIter , class BinaryPredicate > | |
| bool | equal (GlobIter first_1, GlobIter last_1, GlobIter first_2, BinaryPredicate) |
Returns true if the range [first1, last1) is equal to the range [first2, first2 + (last1 - first1)) with respect to a specified predicate, and false otherwise. More... | |
| template<typename GlobIterType > | |
| void | fill (GlobIterType first, GlobIterType last, const typename GlobIterType::value_type &value) |
| Assigns the given value to the elements in the range [first, last) More... | |
| template<typename GlobIter , typename ElementType > | |
| GlobIter | find (GlobIter first, GlobIter last, const ElementType &value) |
Returns an iterator to the first element in the range [first,last) that compares equal to val. More... | |
| template<typename GlobIter , typename UnaryPredicate > | |
| GlobIter | find_if (GlobIter first, GlobIter last, UnaryPredicate predicate) |
Returns an iterator to the first element in the range [first,last) that satisfies the predicate p. More... | |
| template<typename GlobIter , class UnaryPredicate > | |
| GlobIter | find_if_not (GlobIter first, GlobIter last, UnaryPredicate predicate) |
Returns an iterator to the first element in the range [first,last) that does not satisfy the predicate p. More... | |
| template<typename GlobInputIt , class UnaryFunction > | |
| void | for_each (const GlobInputIt &first, const GlobInputIt &last, UnaryFunction func) |
| Invoke a function on every element in a range distributed by a pattern. More... | |
| template<typename GlobInputIt , class UnaryFunctionWithIndex > | |
| void | for_each_with_index (const GlobInputIt &first, const GlobInputIt &last, UnaryFunctionWithIndex func) |
| Invoke a function on every element in a range distributed by a pattern. More... | |
| template<typename GlobInputIt , class UnaryFunction > | |
| void | generate (GlobInputIt first, GlobInputIt last, UnaryFunction gen) |
| Assigns each element in range [first, last) a value generated by the given function object g. More... | |
| template<typename GlobInputIt , class UnaryFunction > | |
| void | generate_with_index (GlobInputIt first, GlobInputIt last, UnaryFunction gen) |
| Assigns each element in range [first, last) a value generated by the given function object g. More... | |
| template<dim_t SubDim, class DomainT , class OffsetT > | |
| constexpr auto | sub (OffsetT begin, OffsetT end, const DomainT &domain) -> typename std::enable_if< dash::view_traits< DomainT >::rank::value==1, ViewSubMod< DomainT, SubDim > >::type |
| template<class GlobInputIter > | |
| std::enable_if< !GlobInputIter::has_view::value, LocalIndexRange< typename GlobInputIter::pattern_type::index_type >>::type | local_index_range (const GlobInputIter &first, const GlobInputIter &last) |
| Resolves the local index range between global iterators. More... | |
| template<class GlobInputIter > | |
| std::enable_if< GlobInputIter::has_view::value, LocalIndexRange< typename GlobInputIter::pattern_type::index_type >>::type | local_index_range (const GlobInputIter &first, const GlobInputIter &last) |
| Resolves the local index range between global view iterators. More... | |
| template<class GlobIterType > | |
| LocalRange< const typename GlobIterType::value_type > | local_range (const GlobIterType &first, const GlobIterType &last) |
| Resolves the local address range between global iterators. More... | |
| template<class GlobIterType > | |
| LocalRange< typename GlobIterType::value_type > | local_range (GlobIterType &first, GlobIterType &last) |
| template<class ElementType , class Compare = std::less<const ElementType &>> | |
| const ElementType * | min_element (const ElementType *l_range_begin, const ElementType *l_range_end, Compare compare=std::less< const ElementType &>()) |
| Finds an iterator pointing to the element with the smallest value in the range [first,last). More... | |
| template<typename GlobInputIt , class Compare = std::less< const typename dash::iterator_traits<GlobInputIt>::value_type &>> | |
| GlobInputIt | min_element (const typename std::enable_if< dash::iterator_traits< GlobInputIt >::is_global_iterator::value, GlobInputIt >::type &first, const GlobInputIt &last, Compare compare=Compare()) |
| Finds an iterator pointing to the element with the smallest value in the range [first,last). More... | |
| template<class GlobIter , class Compare = std::greater<const typename GlobIter::value_type &>> | |
| GlobIter | max_element (const GlobIter &first, const GlobIter &last, Compare compare=Compare()) |
| Finds an iterator pointing to the element with the greatest value in the range [first,last). More... | |
| template<class ElementType , class Compare = std::greater<ElementType &>> | |
| const ElementType * | max_element (const ElementType *first, const ElementType *last, Compare compare=Compare()) |
| Finds an iterator pointing to the element with the greatest value in the range [first,last). More... | |
| template<typename BinaryOperation > | |
| struct dash::dart_operation | operator ()(const ValueType &lhs |
| template<class LocalInputIter , class InitType , class BinaryOperation = dash::plus<typename std::iterator_traits<LocalInputIter>::value_type>, typename = typename std::enable_if< !dash::detail::is_global_iterator<LocalInputIter>::value >::type> | |
| std::iterator_traits< LocalInputIter >::value_type | reduce (LocalInputIter in_first, LocalInputIter in_last, InitType init, BinaryOperation binary_op=BinaryOperation(), bool non_empty=true, dash::Team &team=dash::Team::All()) |
Accumulate values in each process' range [in_first, in_last) using the provided binary reduce function binary_op, which must be commutative and associative. More... | |
| template<class LocalInputIter , class InitType = typename std::iterator_traits<LocalInputIter>::value_type, typename = typename std::enable_if< !dash::detail::is_global_iterator<LocalInputIter>::value >::type> | |
| std::iterator_traits< LocalInputIter >::value_type | reduce (LocalInputIter in_first, LocalInputIter in_last, InitType init, bool non_empty, dash::Team &team=dash::Team::All()) |
Accumulate values across the local ranges [in_first,in_last) of each process as the sum of all values in the range. More... | |
| template<class GlobInputIt , class InitType = typename dash::iterator_traits<GlobInputIt>::value_type, class BinaryOperation = dash::plus<typename dash::iterator_traits<GlobInputIt>::value_type>, typename = typename std::enable_if< dash::detail::is_global_iterator<GlobInputIt>::value >::type> | |
| dash::iterator_traits< GlobInputIt >::value_type | reduce (GlobInputIt in_first, GlobInputIt in_last, InitType init, BinaryOperation binary_op=BinaryOperation()) |
Accumulate values in the global range [in_first, in_last) using the provided binary reduce function binary_op, which must be commutative and linear. More... | |
| template<class GlobRandomIt > | |
| void | sort (GlobRandomIt begin, GlobRandomIt end) |
Sorts the elements in the range, defined by [begin, end) in ascending order. More... | |
| template<class GlobRandomIt , class SortableHash > | |
| void | sort (GlobRandomIt begin, GlobRandomIt end, SortableHash hash) |
Sorts the elements in the range, defined by [begin, end) in ascending order. More... | |
| template<typename MatrixTypeA , typename MatrixTypeB , typename MatrixTypeC > | |
| void | summa (MatrixTypeA &A, MatrixTypeB &B, MatrixTypeC &C) |
| Multiplies two matrices using the SUMMA algorithm. More... | |
| template<typename MatrixTypeA , typename MatrixTypeB , typename MatrixTypeC > | |
| void | mmult (MatrixTypeA &A, MatrixTypeB &B, MatrixTypeC &C) |
| Function adapter to an implementation of matrix-matrix multiplication (xDGEMM) depending on the matrix distribution patterns. More... | |
| template<typename ValueType , class InputIt , class OutputIt , class UnaryOperation > | |
| OutputIt | transform (InputIt in_first, InputIt in_last, OutputIt out_first, UnaryOperation unary_op) |
Apply a given function to elements in a range and store the result in another range, beginning at out_first. More... | |
| template<class InputIt1 , class GlobInputIt , class GlobOutputIt , class BinaryOperation > | |
| GlobOutputIt | transform (InputIt1 in_a_first, InputIt1 in_a_last, GlobInputIt in_b_first, GlobOutputIt out_first, BinaryOperation binary_op) |
Apply a given function to pairs of elements from two ranges and store the result in another range, beginning at out_first. More... | |
| template<class T , class U , class LocalMemSpace , global_allocation_policy AllocationPolicy, template< class > class LocalAlloc> | |
| bool | operator== (const EpochSynchronizedAllocator< T, LocalMemSpace, AllocationPolicy, LocalAlloc > &lhs, const EpochSynchronizedAllocator< U, LocalMemSpace, AllocationPolicy, LocalAlloc > &rhs) |
| template<class T , class U , class LocalMemSpace , global_allocation_policy AllocationPolicy, template< class > class LocalAlloc> | |
| bool | operator!= (const EpochSynchronizedAllocator< T, LocalMemSpace, AllocationPolicy, LocalAlloc > &lhs, const EpochSynchronizedAllocator< U, LocalMemSpace, AllocationPolicy, LocalAlloc > &rhs) |
| template<class T , class GlobMemType > | |
| constexpr bool | operator== (GlobalAllocator< T, GlobMemType > lhs, GlobalAllocator< T, GlobMemType > rhs) noexcept |
| void * | align (std::size_t alignment, std::size_t size, void *&ptr, std::size_t &space) |
| Replacement for missing std::align in gcc < 5.0. More... | |
| template<typename T > | |
| std::ostream & | operator<< (std::ostream &os, const Atomic< T > &at) |
| template<dash::dim_t NumDimensions, typename SizeType > | |
| std::ostream & | operator<< (std::ostream &os, const dash::CartesianSpace< NumDimensions, SizeType > &cartesian_space) |
| template<dash::dim_t NumDimensions> | |
| std::ostream & | operator<< (std::ostream &os, const dash::CartesianIndexSpace< NumDimensions > &cartesian_space) |
| template<typename DimensionalType > | |
| constexpr dim_t | ndim (const DimensionalType &d) |
| template<typename DimensionalType > | |
| constexpr dim_t | rank (const DimensionalType &d) |
| template<dim_t Dim, typename DimensionalType > | |
| constexpr DimensionalType::extent_type | extent (const DimensionalType &d) |
| template<typename DimensionalType > | |
| constexpr DimensionalType::extent_type | extent (dim_t dim, const DimensionalType &d) |
| template<dim_t NumDimensions> | |
| std::ostream & | operator<< (std::ostream &os, const DistributionSpec< NumDimensions > &distspec) |
| template<typename IndexType > | |
| std::ostream & | operator<< (std::ostream &os, const ViewRange< IndexType > &viewrange) |
| template<typename IndexType > | |
| static bool | operator== (const ViewPair< IndexType > &lhs, const ViewPair< IndexType > &rhs) |
| Equality comparison operator for ViewPair. More... | |
| template<typename IndexType > | |
| static bool | operator!= (const ViewPair< IndexType > &lhs, const ViewPair< IndexType > &rhs) |
| Inequality comparison operator for ViewPair. More... | |
| template<typename IndexType > | |
| std::ostream & | operator<< (std::ostream &os, const ViewPair< IndexType > &viewpair) |
| template<typename ElementType , dim_t NumDimensions> | |
| std::ostream & | operator<< (std::ostream &os, const Dimensional< ElementType, NumDimensions > &dimensional) |
| template<dim_t NumDimensions, typename IndexType > | |
| std::ostream & | operator<< (std::ostream &os, const ViewSpec< NumDimensions, IndexType > &viewspec) |
| template<dim_t D, typename I > | |
| std::ostream & | operator<< (std::ostream &os, const dash::Domain< D, I > &dom) |
| template<typename ResultT > | |
| std::ostream & | operator<< (std::ostream &os, const Future< ResultT > &future) |
| template<typename T > | |
| std::ostream & | operator<< (std::ostream &os, const GlobAsyncRef< T > &gar) |
| template<class T , class MemSpaceT > | |
| dash::gptrdiff_t | distance ( GlobPtr< T, MemSpaceT > gbegin, GlobPtr< T, MemSpaceT > gend) |
| Returns the number of hops from gbegin to gend. More... | |
| template<typename T , class MemSpaceT > | |
| std::ostream & | operator<< (std::ostream &os, const GlobPtr< T, MemSpaceT > &gptr) |
| template<class T , class MemSpaceT > | |
| DASH_CONSTEXPR std::enable_if< std::is_same< typename dash::memory_space_traits< MemSpaceT >::memory_space_layout_tag, memory_space_contiguous >::value, T >::type * | local_begin (GlobPtr< T, MemSpaceT > global_begin, dash::team_unit_t unit) |
| Returns the begin of the local memory portion within a global memory segment. More... | |
| template<typename T > | |
| std::ostream & | operator<< (std::ostream &os, const GlobRef< T > &gref) |
| template<typename T > | |
| void | swap (dash::GlobRef< T > &&a, dash::GlobRef< T > &&b) |
| specialization for unqualified calls to swap More... | |
| template<class MemSpaceT , class T > | |
| auto | addressof (dash::GlobRef< T > const &ref) |
| specialization for unqualified calls to swap More... | |
| template<typename T , typename P > | |
| std::ostream & | operator<< (std::ostream &os, const GlobSharedRef< T, P > &gref) |
| void | init (int *argc, char ***argv) |
| Initialize the DASH library and the underlying runtime system. More... | |
| void | finalize () |
| Finalize the DASH library and the underlying runtime system. More... | |
| bool | is_initialized () |
| Check whether DASH has been initialized already. More... | |
| bool | is_multithreaded () |
| Check whether DASH has been initialized with support for multi-threaded access. More... | |
| global_unit_t | myid () |
| Shortcut to query the global unit ID of the calling unit. More... | |
| size_t | size () |
| Return the number of units in the global team. More... | |
| void | barrier () |
| A global barrier involving all units. More... | |
| void | abort () |
| Immediately abort the application run. More... | |
| void | abort (int errorcode) |
Immediately abort the application run with the return value errorcode. More... | |
| template<typename ElementType , class Pattern , class GlobStaticMem , class Pointer , class Reference > | |
| std::ostream & | operator<< (std::ostream &os, const dash::GlobIter< ElementType, Pattern, GlobStaticMem, Pointer, Reference > &it) |
| template<typename ElementType , class Pattern , class GlobStaticMem , class Pointer , class Reference > | |
| auto | distance (const GlobViewIter< ElementType, Pattern, GlobStaticMem, Pointer, Reference > &first, const GlobViewIter< ElementType, Pattern, GlobStaticMem, Pointer, Reference > &last) -> typename Pattern::index_type |
| Resolve the number of elements between two global iterators. More... | |
| template<typename ElementType , class Pattern , class GlobStaticMem , class Pointer , class Reference > | |
| std::ostream & | operator<< (std::ostream &os, const dash::GlobViewIter< ElementType, Pattern, GlobStaticMem, Pointer, Reference > &it) |
| template<class IndexType > | |
| constexpr std::enable_if< std::is_integral< IndexType >::value, IndexType >::type | index (IndexType idx) |
| template<class Iterator > | |
| constexpr auto | index (Iterator it) -> decltype((++it).gpos()) |
| template<class RandomAccessIt > | |
| RandomAccessIt::difference_type | distance (const RandomAccessIt &first, const RandomAccessIt &last) |
| Resolve the number of elements between two iterators. More... | |
| template<typename ElementType , class Pattern , class GlobMemType , class Pointer , class Reference > | |
| Pattern::index_type | distance (const GlobIter< ElementType, Pattern, GlobMemType, Pointer, Reference > &first, const GlobIter< ElementType, Pattern, GlobMemType, Pointer, Reference > &last) |
| Resolve the number of elements between two global iterators. More... | |
| template<typename ElementType , class Pattern , class GlobMemType , class Pointer , class Reference > | |
| DASH_CONSTEXPR auto | operator- (const GlobIter< ElementType, Pattern, GlobMemType, Pointer, Reference > &lhs, const GlobIter< ElementType, Pattern, GlobMemType, Pointer, Reference > &rhs) DASH_NOEXCEPT |
| template<class T > | |
| constexpr std::ptrdiff_t | distance (T *const first, T *const last) |
| template<class OffsetType > | |
| constexpr std::enable_if< std::is_integral< OffsetType >::value, OffsetType >::type | distance (OffsetType begin, OffsetType end) |
| template<typename Key , typename Mapped , typename Hash , typename Pred , typename GlobMemType > | |
| std::ostream & | operator<< (std::ostream &os, const dash::UnorderedMapGlobIter< Key, Mapped, Hash, Pred, GlobMemType > &it) |
| template<typename Key , typename Mapped , typename Hash , typename Pred , typename LMemSpace > | |
| std::ostream & | operator<< (std::ostream &os, const dash::UnorderedMapLocalIter< Key, Mapped, Hash, Pred, LMemSpace > &it) |
| template<typename T_ , dim_t NumDimensions1, class PatternT_ , typename LocalMemT > | |
| std::ostream & | operator<< (std::ostream &os, const MatrixRefView< T_, NumDimensions1, PatternT_, LocalMemT > &mrefview) |
| template<typename ElementType , typename IndexType , class Pointer , class Reference > | |
| auto | distance (const dash::GlobHeapLocalPtr< ElementType, IndexType, Pointer, Reference > &first, const dash::GlobHeapLocalPtr< ElementType, IndexType, Pointer, Reference > &last) -> IndexType |
| Resolve the number of elements between two local bucket iterators. More... | |
| template<typename ElementType , typename IndexType , class Pointer , class Reference > | |
| std::ostream & | operator<< (std::ostream &os, const dash::GlobHeapLocalPtr< ElementType, IndexType, Pointer, Reference > &it) |
| template<typename ElementType , class MemSpaceT > | |
| auto | distance (const dash::GlobHeapPtr< ElementType, MemSpaceT > &first, const dash::GlobHeapPtr< ElementType, MemSpaceT > &last) -> typename MemSpaceT::index_type |
| Resolve the number of elements between two global bucket pointers. More... | |
| template<typename ElementType , class MemSpaceT > | |
| std::ostream & | operator<< (std::ostream &os, const dash::GlobHeapPtr< ElementType, MemSpaceT > &gptr) |
| template<class MSpaceDomainCategory , class MSpaceTypeCategory > | |
| MemorySpace< MSpaceDomainCategory, MSpaceTypeCategory > * | get_default_memory_space () |
| Forward declarations. More... | |
| template<> | |
| MemorySpace< memory_domain_local, memory_space_host_tag > * | get_default_memory_space< memory_domain_local, memory_space_host_tag > () |
| template<> | |
| MemorySpace< memory_domain_local, memory_space_hbw_tag > * | get_default_memory_space< memory_domain_local, memory_space_hbw_tag > () |
| template<> | |
| MemorySpace< memory_domain_global, memory_space_host_tag > * | get_default_memory_space< memory_domain_global, memory_space_host_tag > () |
| template<typename T > | |
| GlobPtr< T, GlobLocalMemoryPool< dash::HostSpace > > | memalloc (size_t nelem) |
| template<class T > | |
| void | memfree (GlobPtr< T, GlobLocalMemoryPool< dash::HostSpace >> gptr, size_t nels) |
| template<class Allocator > | |
| constexpr bool | operator== (DefaultDeleter< Allocator > const &, DefaultDeleter< Allocator > const &) noexcept |
| template<class T , class AllocatorT , template< class > class Deleter = dash::DefaultDeleter> | |
| auto | allocate_unique (const AllocatorT &alloc, std::size_t n) |
| template<class T > | |
| std::string | typestr (const T &obj) |
| Returns string containing the type name of the given object. More... | |
| template<class T > | |
| std::string | typestr () |
| Returns string containing the name of the specified type. More... | |
| template<typename T , typename GlobPtrType > | |
| void | fence (const GlobPtrType &gptr) |
| Block until local and global completion of operations on a global address. More... | |
| template<typename T , typename GlobPtrType > | |
| void | fence_local (const GlobPtrType &gptr) |
| Block until local completion of operations on a global address. More... | |
| template<typename T , typename GlobPtrType > | |
| void | put_value_async (const T &newval, const GlobPtrType &gptr) |
| Write a value to a global pointer, non-blocking. More... | |
| template<typename T , typename GlobPtrType > | |
| void | get_value_async (T *ptr, const GlobPtrType &gptr) |
| Read a value fom a global pointer, non-blocking. More... | |
| template<typename T , typename GlobPtrType > | |
| void | put_value (const T &newval, const GlobPtrType &gptr) |
| Write a value to a global pointer. More... | |
| template<typename T , typename GlobPtrType > | |
| void | get_value (T *ptr, const GlobPtrType &gptr) |
| Read a value fom a global pointer. More... | |
| template<class T1 , class T2 > | |
| constexpr bool | operator== (const Pair< T1, T2 > &x, const Pair< T1, T2 > &y) |
| Two pairs of the same type are equal iff their members are equal. More... | |
| template<class T1 , class T2 > | |
| constexpr bool | operator< (const Pair< T1, T2 > &x, const Pair< T1, T2 > &y) |
| A pair is smaller than another pair if the first member is smaller or the first is equal and the second is smaller. More... | |
| template<class T1 , class T2 > | |
| constexpr bool | operator!= (const Pair< T1, T2 > &x, const Pair< T1, T2 > &y) |
| Inequality comparison operator implemented in terms of equality operator. More... | |
| template<class T1 , class T2 > | |
| constexpr bool | operator> (const Pair< T1, T2 > &x, const Pair< T1, T2 > &y) |
| Greater-than operator implemented in terms of less-than operator. More... | |
| template<class T1 , class T2 > | |
| constexpr bool | operator<= (const Pair< T1, T2 > &x, const Pair< T1, T2 > &y) |
| Less-than-or-equal operator implemented in terms of less-than operator. More... | |
| template<class T1 , class T2 > | |
| constexpr bool | operator>= (const Pair< T1, T2 > &x, const Pair< T1, T2 > &y) |
| Greater-than-or-equal operator implemented in terms of less-than operator. More... | |
| template<class T1 , class T2 > | |
| void | swap (Pair< T1, T2 > &x, Pair< T1, T2 > &y) noexcept(noexcept(x.swap(y))) |
| Wrapper for Pair::swap. More... | |
| template<class T1 , class T2 > | |
| constexpr Pair< typename internal::decay_and_strip< T1 >::type, typename internal::decay_and_strip< T2 >::type > | make_pair (T1 &&x, T2 &&y) |
| Convennience wrapper to create a Pair object. More... | |
| template<class T1 , class T2 > | |
| std::ostream & | operator<< (std::ostream &os, const Pair< T1, T2 > &pair) |
| template<typename PartitioningTags , typename MappingTags , typename LayoutTags , class SizeSpecType > | |
| TeamSpec< SizeSpecType::ndim::value, typename SizeSpecType::index_type > | make_team_spec (const SizeSpecType &sizespec, int n_units, typename SizeSpecType::size_type n_nodes=0, typename SizeSpecType::size_type n_numa_dom=0, typename SizeSpecType::size_type n_cores=0) |
| template<typename PartitioningTags , typename MappingTags , typename LayoutTags , class SizeSpecType > | |
| TeamSpec< SizeSpecType::ndim::value, typename SizeSpecType::index_type > | make_team_spec (const SizeSpecType &sizespec, dash::Team &team=dash::Team::All(), typename SizeSpecType::size_type n_nodes=0, typename SizeSpecType::size_type n_numa_dom=0, typename SizeSpecType::size_type n_cores=0) |
| {} More... | |
| template<typename PartitioningTags , typename MappingTags , typename LayoutTags , class SizeSpecType , class TeamSpecType > | |
| DistributionSpec< SizeSpecType::ndim::value > | make_distribution_spec (const SizeSpecType &sizespec, const TeamSpecType &teamspec) |
Generic Abstract Factory for instances of dash::DistributionSpec. More... | |
| template<typename PartitioningTags = dash::pattern_partitioning_default_properties, typename MappingTags = dash::pattern_mapping_default_properties, typename LayoutTags = dash::pattern_layout_default_properties, class SizeSpecType , class TeamSpecType > | |
| std::enable_if< !MappingTags::diagonal &&PartitioningTags::rectangular &&PartitioningTags::balanced &&!PartitioningTags::unbalanced &&LayoutTags::blocked, TilePattern< SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type >>::type | make_pattern (const SizeSpecType &sizespec, const TeamSpecType &teamspec) |
| Generic Abstract Factory for models of the Pattern concept. More... | |
| template<typename PartitioningTags = dash::pattern_partitioning_default_properties, typename MappingTags = dash::pattern_mapping_default_properties, typename LayoutTags = dash::pattern_layout_default_properties, class SizeSpecType , class TeamSpecType > | |
| std::enable_if< MappingTags::diagonal &&(LayoutTags::blocked||(PartitioningTags::balanced &&SizeSpecType::ndim::value==1)), ShiftTilePattern< SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type >>::type | make_pattern (const SizeSpecType &sizespec, const TeamSpecType &teamspec) |
| Generic Abstract Factory for models of the Pattern concept. More... | |
| template<typename PartitioningTags = dash::pattern_partitioning_default_properties, typename MappingTags = dash::pattern_mapping_default_properties, typename LayoutTags = dash::pattern_layout_default_properties, class SizeSpecType , class TeamSpecType > | |
| std::enable_if< LayoutTags::canonical, BlockPattern< SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type >>::type | make_pattern (const SizeSpecType &sizespec, const TeamSpecType &teamspec) |
| Generic Abstract Factory for models of the Pattern concept. More... | |
| template<typename PartitioningConstraints , typename MappingConstraints , typename LayoutConstraints , typename PatternType > | |
| bool | check_pattern_constraints (const PatternType &pattern) |
| Traits for compile- and run-time pattern constraints checking, suitable for property checks where detailed error reporting is desired. More... | |
| template<dim_t ND, MemArrange Ar, typename Index > | |
| std::ostream & | operator<< (std::ostream &os, const SeqTilePattern< ND, Ar, Index > &pattern) |
| template<dim_t ND, MemArrange Ar, typename Index > | |
| std::ostream & | operator<< (std::ostream &os, const TilePattern< ND, Ar, Index > &pattern) |
| template<typename RangeType > | |
| constexpr auto | begin (RangeType &&range) -> decltype(std::forward< RangeType >(range).begin()) |
| template<class RangeType > | |
| constexpr auto | end (RangeType &&range) -> decltype(std::forward< RangeType >(range).end()) |
| template<class RangeType > | |
| constexpr auto | size (RangeType &&r) -> decltype(std::forward< RangeType >(r).size()) |
| template<class Iterator , class Sentinel > | |
| constexpr dash::IteratorRange< const Iterator, const Sentinel > | make_range (const Iterator &begin, const Sentinel &end) |
| Adapter utility function. More... | |
| template<class Iterator , class Sentinel > | |
| constexpr dash::IteratorRange< Iterator *, Sentinel * > | make_range (Iterator *begin, Sentinel *end) |
| Adapter utility function. More... | |
| template<class Iterator , class Sentinel > | |
| dash::IteratorRange< Iterator, Sentinel > | make_range (Iterator &begin, Sentinel &end) |
| Adapter utility function. More... | |
| template<typename T > | |
| void | swap (dash::Shared< T > &a, dash::Shared< T > &b) |
| std::ostream & | operator<< (std::ostream &os, const Team &team) |
| bool | operator== (const Team::Deallocator &lhs, const Team::Deallocator &rhs) |
| template<class ViewTypeA , class ViewTypeB > | |
| constexpr auto | apply (ViewTypeA &view_a, ViewTypeB &view_b) -> decltype(view_a.apply(view_b)) |
Inverse operation to dash::domain. More... | |
| template<class ViewType > | |
| constexpr auto | apply (const ViewType &view) -> decltype(view.apply()) |
| template<class ViewType , class OffsetT > | |
| constexpr auto | block (OffsetT block_idx, const ViewType &view) -> typename std::enable_if<(!dash::view_traits< ViewType >::is_local::value), ViewBlockMod< ViewType > >::type |
| Blocks view from global view. More... | |
| template<class ViewT , typename ViewValueT = typename std::decay<ViewT>::type> | |
| constexpr auto | domain (ViewT &&view) -> typename std::enable_if< dash::detail::has_type_domain_type< ViewValueT >::value, decltype(std::forward< ViewT >(view).domain()) >::type |
| template<class ViewT > | |
| constexpr auto | domain (const ViewT &view) -> typename std::enable_if< dash::detail::has_type_domain_type< ViewT >::value, decltype(view.domain()) >::type |
| template<class ContainerT , typename ContainerValueT = typename std::decay<ContainerT>::type> | |
| constexpr std::enable_if< !dash::detail::has_type_domain_type< ContainerValueT >::value, ContainerT & >::type | domain (ContainerT &container) |
| template<class ContainerT , typename ContainerValueT = typename std::decay<ContainerT>::type> | |
| constexpr std::enable_if< !dash::detail::has_type_domain_type< ContainerValueT >::value, const ContainerT & >::type | domain (const ContainerT &container) |
| template<class ViewType > | |
| constexpr std::enable_if< dash::view_traits< ViewType >::is_view::value &&dash::view_traits< ViewType >::is_local::value, const typename ViewType::global_type & >::type | global (const ViewType &v) |
| template<class ContainerType > | |
| constexpr std::enable_if< !dash::view_traits< ContainerType >::is_view::value||!dash::view_traits< ContainerType >::is_local::value, ContainerType & >::type | global (ContainerType &c) |
| template<class ViewType , typename ViewValueT = typename std::decay<ViewType>::type> | |
| constexpr auto | local (ViewType &v) -> typename std::enable_if<(std::is_pointer< typename ViewType::iterator >::value||(dash::view_traits< ViewValueT >::is_local::value)), ViewType &>::type |
| template<class ContainerType , typename ContainerDecayType = typename std::decay<ContainerType>::type> | |
| constexpr std::enable_if<(!dash::view_traits< ContainerDecayType >::is_view::value &&!dash::view_traits< ContainerDecayType >::is_local::value &&dash::view_traits< ContainerDecayType >::is_origin::value), const typename ContainerType::local_type & >::type | local (const ContainerType &c) |
| template<class ViewType > | |
| constexpr auto | local (const ViewType &v) -> typename std::enable_if< dash::view_traits< ViewType >::is_view::value, decltype(v.local()) >::type |
| template<class ViewType , typename ViewValueT = typename std::decay<ViewType>::type> | |
| constexpr auto | local (ViewType &&v) -> typename std::enable_if<(dash::view_traits< ViewValueT >::is_view::value &&!dash::view_traits< ViewValueT >::is_local::value), decltype(std::forward< ViewType >(v).local()) >::type |
| template<class GlobalIterator > | |
| constexpr auto | local (const GlobalIterator &g_it) -> decltype((g_it - g_it.pos()).local()) |
| Convert global iterator referencing an element the active unit's memory to a corresponding native pointer referencing the element. More... | |
| template<class ViewT > | |
| dash::view_traits< ViewT >::origin_type | origin (ViewT &view) |
| template<class ViewType > | |
| constexpr auto | remote (dash::team_unit_t unit, const ViewType &v) -> typename std::enable_if< dash::view_traits< ViewType >::is_view::value, decltype(v.local()) >::type |
| template<class ContainerType > | |
| constexpr std::enable_if< !dash::view_traits< ContainerType >::is_view::value, const typename ContainerType::local_type & >::type | remote (dash::team_unit_t unit, const ContainerType &c) |
| template<class ViewTypeA , class ViewTypeB > | |
| constexpr auto | intersect (const ViewTypeA &va, const ViewTypeB &vb) -> decltype(dash::sub(0, 0, va)) |
| template<class ComponentViewType > | |
| constexpr CompositeView< ComponentViewType > | set_union (const std::vector< ComponentViewType > &views) |
| template<class ComponentViewType > | |
| constexpr CompositeView< ComponentViewType > | set_union (std::initializer_list< ComponentViewType > views) |
| template<dim_t SubDim = 0, dim_t NViewDim, class OffsetFirstT , class OffsetFinalT > | |
| constexpr ViewSubMod< ViewOrigin< NViewDim >, SubDim > | sub (OffsetFirstT begin, OffsetFinalT end) |
| Sub-section, view dimensions maintain domain dimensions. More... | |
| template<dim_t SubDim = 0, dim_t NViewDim, class IndexRangeT > | |
| constexpr ViewSubMod< ViewOrigin< NViewDim >, SubDim > | sub (const IndexRangeT &range) |
| Sub-section, view dimensions maintain domain dimensions. More... | |
| template<dim_t SubDim = 0, class DomainT , class OffsetFirstT , class OffsetFinalT , typename DomainValueT = typename std::decay<DomainT>::type> | |
| constexpr ViewSubMod< DomainValueT, SubDim, dash::view_traits< DomainValueT >::rank::value > | sub (OffsetFirstT begin, OffsetFinalT end, const DomainT &domain) |
| template<dim_t SubDim = 0, class DomainT , class OffsetFirstT , class OffsetFinalT , typename DomainValueT = typename std::decay<DomainT>::type> | |
| constexpr ViewSubMod< DomainValueT, SubDim, dash::view_traits< DomainValueT >::rank::value > | sub (OffsetFirstT begin, OffsetFinalT end, DomainT &&domain) |
| template<class DomainT , class IndexSetT > | |
| std::ostream & | operator<< (std::ostream &os, const ViewIterator< DomainT, IndexSetT > &view_it) |
| template<class Viewable > | |
| constexpr Viewable::domain_type & | domain (const Viewable &v) |
| Returns a reference to the specified object's domain, or the object itself if it is not a View type. More... | |
| template<class Iterator , class Sentinel > | |
| constexpr dash::IteratorViewOrigin< Iterator, Sentinel > | make_view (Iterator begin, Sentinel end) |
Variables | |
| struct dash::dart_operation | ValueType |
| Reduce operands to their minimum value. More... | |
| struct dash::dart_operation | DART_OP_MIN |
| struct dash::dart_operation | ARITHMETIC |
| struct dash::dart_operation const ValueType &rhs | const |
| dash::max | operator |
| constexpr team_unit_t | UNDEFINED_TEAM_UNIT_ID { ((dart_unit_t)(-1)) } |
| Invalid local unit ID. More... | |
| constexpr global_unit_t | UNDEFINED_GLOBAL_UNIT_ID { ((dart_unit_t)(-1)) } |
| Invalid global unit ID. More... | |
This class is a simple memory pool which holds allocates elements of size ValueType.
The DASH C++ Library Interface.
Efficient allocation is achieved in terms of the memory regions. Each region represents a chunk of memory blocks and each block is a single element of size ValueType.
| Return Type | Method | Parameters | Description |
|---|---|---|---|
ValueType * | allocate | nbsp; | Allocates an aligned block to store a single element of size ValueType |
void | deallocate | addr | Deallocates the specified memory address and keeps memory internall in a freelist. |
void | reserve | nblocks | Reserve a chunk of memory blocks to hold at least n elements of size ValueType. |
void | release | nbsp; | Release all memory chunks and deallocate everything at one. |
| typedef internal::default_unsigned_index dash::default_extent_t |
| typedef internal::default_signed_index dash::default_index_t |
| typedef internal::default_unsigned_index dash::default_size_t |
| typedef int dash::dim_t |
| typedef struct dash::unit_id< dash::global_unit, dart_global_unit_t > dash::global_unit_t |
Unit ID to use for global IDs.
Note that this typed is returned by dash::myid() and dash::Team::GlobalUnitID().
| using dash::GlobMemAllocPtr = typedef decltype(dash::memalloc<T>(size_t{})) |
Convenience Wrapper to retrieve easily the type allocated by dash::memalloc<T>
Definition at line 88 of file MemorySpace.h.
| typedef internal::default_signed_index dash::gptrdiff_t |
| using dash::NArray = typedef dash::Matrix<T, NumDimensions, IndexT, PatternT, LocalMemSpaceT> |
Template alias for dash::Matrix with the same default template arguments.
| using dash::Pattern = typedef dash::BlockPattern<NumDimensions, Arrangement, IndexType> |
Template alias for dash::Pattern with the same default template arguments.
| typedef dash::pattern_layout_properties< dash::pattern_layout_tag::blocked, dash::pattern_layout_tag::linear > dash::summa_pattern_layout_constraints |
Constraints on pattern layout properties of matrix operands passed to dash::summa.
| typedef dash::pattern_mapping_properties< dash::pattern_mapping_tag::multiple, dash::pattern_mapping_tag::unbalanced > dash::summa_pattern_mapping_constraints |
Constraints on pattern mapping properties of matrix operands passed to dash::summa.
Constraints on pattern partitioning properties of matrix operands passed to dash::summa.
| typedef struct dash::unit_id< dash::local_unit, dart_team_unit_t > dash::team_unit_t |
Unit ID to use for team-local IDs.
Note that this is returned by calls to dash::Team::myid(), including dash::Team::All().myid() as it is handled as a team as well.
|
strong |
Definition at line 17 of file AllocationPolicy.h.
|
strong |
| Enumerator | |
|---|---|
| sync | synchronous launch policy |
| async | async launch policy |
Definition at line 8 of file LaunchPolicy.h.
|
inline |
specialization for unqualified calls to swap
Definition at line 432 of file GlobRef.h.
|
inline |
Replacement for missing std::align in gcc < 5.0.
Implementation from original bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57350
Definition at line 21 of file Allocator.h.
| constexpr auto dash::block | ( | OffsetT | block_idx, |
| const ViewType & | view | ||
| ) | -> typename std::enable_if< ( !dash::view_traits<ViewType>::is_local::value ), ViewBlockMod<ViewType> >::type |
Blocks view from global view.
Blocks view from local view.
Definition at line 49 of file Chunked.h.
References local(), and origin().
Referenced by dash::tools::PatternVisualizer< PatternT >::draw_blocks(), and dash::tools::PatternVisualizer< PatternT >::draw_local_blocks().
| dash::gptrdiff_t dash::distance | ( | GlobPtr< T, MemSpaceT > | gbegin, |
| GlobPtr< T, MemSpaceT > | gend | ||
| ) |
Returns the number of hops from gbegin to gend.
Equivalent to (gend - gbegin).
Definition at line 547 of file GlobPtr.h.
References begin(), and end().
Referenced by dash::GlobPtr< event_ctr_t, globmem_t >::operator-().
| auto dash::distance | ( | const dash::GlobHeapLocalPtr< ElementType, IndexType, Pointer, Reference > & | first, |
| const dash::GlobHeapLocalPtr< ElementType, IndexType, Pointer, Reference > & | last | ||
| ) | -> IndexType |
Resolve the number of elements between two local bucket iterators.
| first | Global iterator to the first position in the global sequence |
| last | Global iterator to the final position in the global sequence |
Definition at line 469 of file GlobHeapLocalPtr.h.
| auto dash::distance | ( | const dash::GlobHeapPtr< ElementType, MemSpaceT > & | first, |
| const dash::GlobHeapPtr< ElementType, MemSpaceT > & | last | ||
| ) | -> typename MemSpaceT::index_type |
Resolve the number of elements between two global bucket pointers.
| first | Global pointer to the first position in the global sequence |
| last | Global pointer to the final position in the global sequence |
Definition at line 644 of file GlobHeapPtr.h.
| auto dash::distance | ( | const GlobViewIter< ElementType, Pattern, GlobStaticMem, Pointer, Reference > & | first, |
| const GlobViewIter< ElementType, Pattern, GlobStaticMem, Pointer, Reference > & | last | ||
| ) | -> typename Pattern::index_type |
Resolve the number of elements between two global iterators.
The difference of global pointers is not well-defined if their range spans over more than one block. The corresponding invariant is: g_last == g_first + (l_last - l_first) Example:
When iterating in local memory range [0,5[ of unit 0, the position of the global iterator to return is 8 != 5
| ElementType | Type of the elements in the range |
| last | Global iterator to the final position in the global sequence |
Definition at line 1062 of file GlobViewIter.h.
| void dash::fence | ( | const GlobPtrType & | gptr | ) |
Block until local and global completion of operations on a global address.
Definition at line 152 of file Onesided.h.
References dart_flush(), and DART_OK.
| void dash::fence_local | ( | const GlobPtrType & | gptr | ) |
Block until local completion of operations on a global address.
Definition at line 164 of file Onesided.h.
References dart_flush_local(), and DART_OK.
|
inline |
Forward declarations.
Definition at line 29 of file MemorySpace.h.
Referenced by dash::GlobLocalMemoryPool< dash::HostSpace >::flush_local().
|
inline |
Read a value fom a global pointer.
Calls to this routine are blocking
| [out] | ptr | Local pointer that will contain the value of the global address |
| [in] | gptr | Global pointer to read |
Definition at line 230 of file Onesided.h.
Referenced by dash::GlobHeapMem< ElementType, LocalMemorySpace, AllocationPolicy, LocalAlloc >::get_value().
|
inline |
Read a value fom a global pointer, non-blocking.
Requires a later fence operation to guarantee local and/or remote completion.
| [out] | ptr | Local pointer that will contain the value of the global address |
| [in] | gptr | Global pointer to read |
Definition at line 197 of file Onesided.h.
| constexpr auto dash::local | ( | const GlobalIterator & | g_it | ) | -> decltype((g_it - g_it.pos()).local()) |
Convert global iterator referencing an element the active unit's memory to a corresponding native pointer referencing the element.
Precondition: g_it is local
| g_it | Global iterator referencing element in local memory |
|
inline |
Returns the begin of the local memory portion within a global memory segment.
| global_begin | The pointer which identifies the global memory segment |
| unit | The unit_id whose local memory portion is required. This must be a unit which is running locally, i.e. the local memory portion must be reachable with a native pointer (void*) |
Definition at line 593 of file GlobPtr.h.
Referenced by find(), dash::GlobIter< value_type, Pattern_t, GlobMem_t >::local(), dash::GlobViewIter< ElementT, PatternT, GlobMemT >::local(), local_range(), and min_element().
| std::enable_if< GlobInputIter::has_view::value, LocalIndexRange<typename GlobInputIter::pattern_type::index_type>>::type dash::local_index_range | ( | const GlobInputIter & | first, |
| const GlobInputIter & | last | ||
| ) |
Resolves the local index range between global view iterators.
| Total range | 0 1 2 3 4 5 6 7 8 9 |
|---|---|
| Global iterators | first = 4; last = 7; |
| 0 1 2 3 [4 5 6 7] 8 9] Local elements | (local index:value) 0:2 1:3 2:6 3:7 Result | (local indices) 2 3
d dimensions in the global iterators' pattern | first | Iterator to the initial position in the global sequence |
| last | Iterator to the final position in the global sequence |
Definition at line 188 of file LocalRange.h.
| LocalRange<typename GlobIterType::value_type> dash::local_range | ( | GlobIterType & | first, |
| GlobIterType & | last | ||
| ) |
Global iterators to local index range, O(d):
| first | Iterator to the initial position in the global sequence |
| last | Iterator to the final position in the global sequence |
Definition at line 338 of file LocalRange.h.
References local_begin(), and local_index_range().
| constexpr Pair<typename internal::decay_and_strip<T1>::type, typename internal::decay_and_strip<T2>::type> dash::make_pair | ( | T1 && | x, |
| T2 && | y | ||
| ) |
Convennience wrapper to create a Pair object.
Definition at line 225 of file Pair.h.
References dash::Pair< T1, T2 >::first, dash::Pair< T1, T2 >::second, and typestr().
| std::enable_if< MappingTags::diagonal && (LayoutTags::blocked || (PartitioningTags::balanced && SizeSpecType::ndim::value == 1)), ShiftTilePattern<SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type>>::type dash::make_pattern | ( | const SizeSpecType & | sizespec, |
| const TeamSpecType & | teamspec | ||
| ) |
Generic Abstract Factory for models of the Pattern concept.
Creates an instance of a Pattern model that satisfies the contiguos linearization property from given pattern traits.
{}
dash::ShiftTilePattern if the following constraints are specified: (Mapping: diagonal) and (Layout: blocked or (Partitioning: balanced Dimensions: 1)) | sizespec | Size spec of cartesian space to be distributed by the pattern. |
| teamspec | Team spec containing layout of units mapped by the pattern. |
Definition at line 439 of file MakePattern.h.
References make_distribution_spec(), and ndim().
| std::enable_if< LayoutTags::canonical, BlockPattern<SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type >>::type dash::make_pattern | ( | const SizeSpecType & | sizespec, |
| const TeamSpecType & | teamspec | ||
| ) |
Generic Abstract Factory for models of the Pattern concept.
Creates an instance of a Pattern model that satisfies the canonical (strided) layout property from given pattern traits.
{}
dash::BlockPattern if the following constraints are specified:| sizespec | Size spec of cartesian space to be distributed by the pattern. |
| teamspec | Team spec containing layout of units mapped by the pattern. |
Definition at line 497 of file MakePattern.h.
References make_distribution_spec(), and ndim().
| constexpr dash::IteratorRange<const Iterator, const Sentinel> dash::make_range | ( | const Iterator & | begin, |
| const Sentinel & | end | ||
| ) |
Adapter utility function.
Wraps begin and end const iterators in range type.
Definition at line 433 of file Range.h.
References begin(), and end().
| constexpr dash::IteratorRange<Iterator *, Sentinel *> dash::make_range | ( | Iterator * | begin, |
| Sentinel * | end | ||
| ) |
Adapter utility function.
Wraps begin and end pointers in range type.
Definition at line 447 of file Range.h.
References begin(), and end().
| dash::IteratorRange<Iterator, Sentinel> dash::make_range | ( | Iterator & | begin, |
| Sentinel & | end | ||
| ) |
Adapter utility function.
Wraps begin and end iterators in range type.
Definition at line 461 of file Range.h.
References begin(), and end().
| TeamSpec<SizeSpecType::ndim::value, typename SizeSpecType::index_type> dash::make_team_spec | ( | const SizeSpecType & | sizespec, |
| int | n_units, | ||
| typename SizeSpecType::size_type | n_nodes = 0, |
||
| typename SizeSpecType::size_type | n_numa_dom = 0, |
||
| typename SizeSpecType::size_type | n_cores = 0 |
||
| ) |
| sizespec | Size spec of cartesian space to be distributed by the pattern. |
Definition at line 31 of file MakePattern.h.
References ndim(), dash::TeamSpec< MaxDimensions, IndexType >::resize(), and dash::CartesianIndexSpace< MaxDimensions, ROW_MAJOR, IndexType >::size().
Referenced by make_team_spec().
| void dash::mmult | ( | MatrixTypeA & | A, |
| MatrixTypeB & | B, | ||
| MatrixTypeC & | C | ||
| ) |
Function adapter to an implementation of matrix-matrix multiplication (xDGEMM) depending on the matrix distribution patterns.
Delegates dash::mmult<MatrixType> to dash::summa<MatrixType> if MatrixType::pattern_type satisfies the pattern property constraints of the SUMMA implementation.
| A | Matrix to multiply, extents n x m |
| B | Matrix to multiply, extents m x p |
| C | Matrix to contain the multiplication result, extents n x p, initialized with zeros |
Referenced by summa().
|
static |
Inequality comparison operator for ViewPair.
Definition at line 406 of file Dimensional.h.
References dash::ViewPair< IndexType >::extent, and dash::ViewPair< IndexType >::offset.
| DASH_CONSTEXPR auto dash::operator- | ( | const GlobIter< ElementType, Pattern, GlobMemType, Pointer, Reference > & | lhs, |
| const GlobIter< ElementType, Pattern, GlobMemType, Pointer, Reference > & | rhs | ||
| ) |
| lhs | Global pointer to the initial position in the global sequence |
| rhs | Global iterator to the final position in the global sequence |
Definition at line 147 of file Iterator.h.
Referenced by dash::halo::StencilIteratorTest< CoordsIdxManagerBoundary_t >::operator--(), dash::Coarray< T, IndexType, Arrangement, LocalMemSpaceT >::operator--(), and dash::halo::StencilIterator< Element_t, Pattern_t, typename HaloBlockT::GlobMem_t, StencilSpecT, StencilViewScope::ALL >::operator--().
|
inline |
A pair is smaller than another pair if the first member is smaller or the first is equal and the second is smaller.
See http://gcc.gnu.org/onlinedocs/libstdc++/manual/utilities.html
Definition at line 140 of file Pair.h.
References dash::Pair< T1, T2 >::first.
Referenced by dash::UnorderedMapGlobIter< Key, Mapped, Hash, Pred, GlobMemType >::operator--(), dash::halo::StencilIteratorTest< CoordsIdxManagerBoundary_t >::operator--(), and dash::halo::StencilIterator< Element_t, Pattern_t, typename HaloBlockT::GlobMem_t, StencilSpecT, StencilViewScope::ALL >::operator--().
|
inline |
Less-than-or-equal operator implemented in terms of less-than operator.
Definition at line 172 of file Pair.h.
Referenced by dash::UnorderedMapGlobIter< Key, Mapped, Hash, Pred, GlobMemType >::operator--(), dash::halo::StencilIteratorTest< CoordsIdxManagerBoundary_t >::operator--(), and dash::halo::StencilIterator< Element_t, Pattern_t, typename HaloBlockT::GlobMem_t, StencilSpecT, StencilViewScope::ALL >::operator--().
|
inline |
Two pairs of the same type are equal iff their members are equal.
Definition at line 128 of file Pair.h.
References dash::Pair< T1, T2 >::first, and dash::Pair< T1, T2 >::second.
|
static |
Equality comparison operator for ViewPair.
Definition at line 391 of file Dimensional.h.
References dash::ViewPair< IndexType >::extent, and dash::ViewPair< IndexType >::offset.
|
inline |
Greater-than operator implemented in terms of less-than operator.
Definition at line 162 of file Pair.h.
Referenced by dash::UnorderedMapGlobIter< Key, Mapped, Hash, Pred, GlobMemType >::operator--(), dash::halo::StencilIteratorTest< CoordsIdxManagerBoundary_t >::operator--(), and dash::halo::StencilIterator< Element_t, Pattern_t, typename HaloBlockT::GlobMem_t, StencilSpecT, StencilViewScope::ALL >::operator--().
|
inline |
Greater-than-or-equal operator implemented in terms of less-than operator.
Definition at line 182 of file Pair.h.
Referenced by dash::UnorderedMapGlobIter< Key, Mapped, Hash, Pred, GlobMemType >::operator--(), dash::halo::StencilIteratorTest< CoordsIdxManagerBoundary_t >::operator--(), and dash::halo::StencilIterator< Element_t, Pattern_t, typename HaloBlockT::GlobMem_t, StencilSpecT, StencilViewScope::ALL >::operator--().
|
inline |
Write a value to a global pointer.
Calls to this routine are blocking
| [in] | newval | Value to set |
| [in] | gptr | Global pointer referencing target address of value |
Definition at line 214 of file Onesided.h.
Referenced by dash::GlobHeapMem< ElementType, LocalMemorySpace, AllocationPolicy, LocalAlloc >::put_value().
|
inline |
Write a value to a global pointer, non-blocking.
Requires a later fence operation to guarantee local and/or remote completion.
| [in] | newval | Value to set |
| [in] | gptr | Global pointer referencing target address of value |
Definition at line 180 of file Onesided.h.
| void dash::summa | ( | MatrixTypeA & | A, |
| MatrixTypeB & | B, | ||
| MatrixTypeC & | C | ||
| ) |
Multiplies two matrices using the SUMMA algorithm.
Performs (2 * (nunits-1) * nunits^2) async copy operations of submatrices in A and B.
Pseudocode:
C = zeros(n,n) for k = 1:b:n { // k increments in steps of blocksize b u = k:(k+b-1) // u is [k, k+1, ..., k+b-1] C = C + A(:,u) * B(u,:) // Multiply n x b matrix from A with // b x p matrix from B }
| A | Matrix to multiply, extents n x m |
| B | Matrix to multiply, extents m x p |
| C | Matrix to contain the multiplication result, extents n x p, initialized with zeros |
Definition at line 151 of file SUMMA.h.
References check_pattern_constraints(), copy(), copy_async(), dash::pattern_mapping_tag::diagonal, dash::pattern_partitioning_tag::minimal, mmult(), and dash::Future< ResultT >::wait().
|
inline |
specialization for unqualified calls to swap
Definition at line 424 of file GlobRef.h.
Referenced by dash::Coarray< T, IndexType, Arrangement, LocalMemSpaceT >::Coarray(), and dash::GlobSharedRef< T, GlobalPointerType >::operator=().
| std::string dash::typestr | ( | const T & | obj | ) |
Returns string containing the type name of the given object.
Similar to the typeid operator but ensures human-readable, demangled format.
Definition at line 20 of file TypeInfo.h.
Referenced by dash::Atomic< T >::Atomic(), dash::LocalMemoryLayout< NumDimensions, Arrangement, IndexType >::coords(), make_pair(), and dash::GlobRef< T >::swap().
| std::string dash::typestr | ( | ) |
Returns string containing the name of the specified type.
Similar to the typeid operator but ensures human-readable, demangled format.
Definition at line 33 of file TypeInfo.h.
| struct dash::dart_operation const ValueType& rhs dash::const |
Definition at line 131 of file Operation.h.
| constexpr global_unit_t dash::UNDEFINED_GLOBAL_UNIT_ID { ((dart_unit_t)(-1)) } |
Invalid global unit ID.
This is a typed version of DART_UNDEFINED_UNIT_ID.
| constexpr team_unit_t dash::UNDEFINED_TEAM_UNIT_ID { ((dart_unit_t)(-1)) } |
Invalid local unit ID.
This is a typed version of DART_UNDEFINED_UNIT_ID.
Definition at line 341 of file Types.h.
Referenced by dash::Team::global_id(), dash::SeqTilePattern< NumDimensions, Arrangement, IndexType >::ndim(), dash::TeamSpec< NumDimensions, IndexType >::neighbor(), and dash::TilePattern< NumDimensions, Arrangement, IndexType >::underfilled_blocksize().