specfem::execution::VoidPolicy¶
-
template<typename ExecutionSpace>
class VoidPolicy¶ VoidPolicy class is used when there is no valid index to iterate over.
This policy is used as a placeholder when no iteration is needed.
Subclassed by specfem::execution::VoidIterator< ExecutionSpace >
Public Types
-
using base_policy_type = VoidPolicy¶
Base policy type, which is itself.
-
using policy_index_type = void¶
No index type for void policy.
-
using execution_space = ExecutionSpace¶
Execution space type for the void policy.
Public Static Attributes
-
static constexpr PolicyType policy_type = PolicyType::VoidPolicy¶
Indicates this is a void policy.
-
static constexpr bool is_top_level_policy = false¶
Indicates this is not a top-level policy.
-
using base_policy_type = VoidPolicy¶
specfem::execution::RangePolicy¶
-
template<typename ParallelConfig>
class RangePolicy : public Kokkos::RangePolicy<ParallelConfig::execution_space>¶ Base class for all iterators using on
Kokkos::RangePolicy.- Template Parameters:
ParallelConfig – Configuration for parallel execution. specfem::parallel_configurationuration::range_config
Subclassed by specfem::execution::RangeIterator< ParallelConfig >
Public Types
-
using base_policy_type = Kokkos::RangePolicy<typename ParallelConfig::execution_space>¶
Base policy type. Evaluates to
Kokkos::RangePolicy
-
using policy_index_type = typename base_policy_type::index_type¶
convertible to integral type.
-
using execution_space = typename base_policy_type::execution_space¶
Execution space type.
Public Static Attributes
-
static constexpr PolicyType policy_type = PolicyType::KokkosPolicy¶
Indicates this is a Kokkos policy.
-
static constexpr bool is_top_level_policy = true¶
Indicates this is a top-level policy.
specfem::execution::TeamPolicy¶
-
template<typename ParallelConfig>
class TeamPolicy : public Kokkos::TeamPolicy<ParallelConfig::execution_space>¶ Base class for all iterators using on
Kokkos::TeamPolicy.- Template Parameters:
ParallelConfig – Configuration for parallel execution. specfem::parallel_configurationuration::team_config
Subclassed by specfem::execution::ChunkedDomainIterator< DimensionTag, ParallelConfig, ViewType, specfem::mesh_entity::Grid<> >, specfem::execution::ChunkedDomainIterator< DimensionTag, ParallelConfig, ViewType, G >, specfem::execution::ChunkedEdgeIterator< ParallelConfig, ViewType >, specfem::execution::ChunkedFaceIterator< ParallelConfig, ViewType >, specfem::execution::ChunkedIntersectionIterator< ParallelConfig, ViewType >
Public Types
-
using base_policy_type = Kokkos::TeamPolicy<typename ParallelConfig::execution_space>¶
Base policy type. Evaluates to
Kokkos::TeamPolicy
-
using policy_index_type = typename base_policy_type::member_type¶
Policy index type.
-
using execution_space = typename base_policy_type::execution_space¶
Execution space type.
Public Static Attributes
-
static constexpr PolicyType policy_type = PolicyType::KokkosPolicy¶
Indicates this is a Kokkos policy.
-
static constexpr bool is_top_level_policy = true¶
Indicates this is a top-level policy.
specfem::execution::TeamThreadRangePolicy¶
-
template<typename TeamMemberType, typename IndexType>
class TeamThreadRangePolicy : public decltypeKokkos::TeamThreadRangestd::declval<TeamMemberType>, private std::declval<IndexType>¶ TeamThreadRangePolicy class is used to iterate over a range of indices within a Kokkos team.
This policy is used to iterate over a range of indices in a team parallel execution context.
- Template Parameters:
TeamMemberType – The type of the Kokkos team member.
IndexType – The type of the index to iterate over.
Subclassed by specfem::execution::ChunkEdgeIterator< DimensionTag, ViewType, KokkosIndexType >, specfem::execution::ChunkFaceIterator< DimensionTag, ViewType, KokkosIndexType >, specfem::execution::ChunkedInterfaceIntersectionIterator< DimensionTag, ViewType, KokkosIndexType >
Public Types
-
using execution_space = typename TeamMemberType::execution_space¶
Execution space type.
Public Functions
-
inline TeamThreadRangePolicy(const TeamMemberType &team, const IndexType &range)¶
Constructs a TeamThreadRangePolicy for a given team member and range.
- Parameters:
team – The Kokkos team member.
range – The range of indices to iterate over.
Public Static Attributes
-
static constexpr PolicyType policy_type = PolicyType::KokkosPolicy¶
Indicates this is a Kokkos policy.
-
static constexpr bool is_top_level_policy = false¶
Indicates this is not a top-level policy.