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.

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::execution::ChunkedEdgeIterator< 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::ChunkedEdgeIntersectionIterator< DimensionTag, ViewType, KokkosIndexType >

Public Types

using policy_index_type = IndexType

Policy index type. Must be convertible to integral type.

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.

specfem::execution::PolicyType

enum class specfem::execution::PolicyType

Enumeration for different policy types used in execution iterators.

Values:

enumerator KokkosPolicy

Indicates a Kokkos policy.

enumerator TilePolicy

Indicates a tile policy.

enumerator VoidPolicy

Indicates a void policy.