kokkos-execution 0.0.1
Loading...
Searching...
No Matches
Kokkos::Execution::parallel_for_t Struct Reference

Custom algorithm for the Kokkos::parallel_for construct. More...

#include <parallel_for.hpp>

Public Types

template<typename Functor, typename ExecPolicyOrIterSpace, typename... Properties>
using parallel_for_data_t

Public Member Functions

template<typename Label, typename Functor, typename ExecPolicy>
requires (Impl::label<std::remove_cvref_t<Label>> && Kokkos::ExecutionPolicy<std::remove_cvref_t<ExecPolicy>>)
constexpr auto operator() (Label &&label, ExecPolicy &&policy, Functor &&functor) const noexcept(noexcept(stdexec::__closure(*this, std::forward< ExecPolicy >(policy), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))) -> decltype(stdexec::__closure(*this, std::forward< ExecPolicy >(policy), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))
template<typename Functor, typename ExecPolicyOrIterSpace>
requires Impl::execution_policy_or_iteration_space<std::remove_cvref_t<ExecPolicyOrIterSpace>>
constexpr auto operator() (ExecPolicyOrIterSpace &&policy_or_iter_space, Functor &&functor) const noexcept(noexcept(stdexec::__closure(*this, std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor)))) -> decltype(stdexec::__closure(*this, std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor)))
template<typename Label, typename Functor, std::integral T>
requires Impl::label<std::remove_cvref_t<Label>>
constexpr auto operator() (Label &&label, const T work_count, Functor &&functor) const noexcept(noexcept(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))) -> decltype(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))
template<typename Functor, std::integral T>
constexpr auto operator() (const T work_count, Functor &&functor) const noexcept(noexcept(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor)))) -> decltype(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor)))
template<stdexec::sender Sndr, typename Functor, typename ExecPolicyOrIterSpace, typename... Properties>
requires Impl::execution_policy_or_iteration_space<std::remove_cvref_t<ExecPolicyOrIterSpace>>
constexpr auto operator() (Sndr &&sndr, ExecPolicyOrIterSpace &&policy_or_iter_space, Functor &&functor, Properties &&... properties) const noexcept(noexcept(Impl::ParallelForSender< Sndr, parallel_for_data_t< Functor, ExecPolicyOrIterSpace, Properties... > >{{ parallel_for_t{}, parallel_for_data_t< Functor, ExecPolicyOrIterSpace, Properties... >{ std::forward< Properties >(properties)..., std::forward< Functor >(functor), std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space)}, std::forward< Sndr >(sndr) }})) -> Impl::ParallelForSender< Sndr, parallel_for_data_t< Functor, ExecPolicyOrIterSpace, Properties... > >
template<stdexec::sender Sndr, typename Label, typename Functor, typename ExecPolicyOrIterSpace>
requires ( Impl::label<std::remove_cvref_t<Label>> && Impl::execution_policy_or_iteration_space<std::remove_cvref_t
<ExecPolicyOrIterSpace>>)
constexpr auto operator() (Sndr &&sndr, Label &&label, ExecPolicyOrIterSpace &&policy_or_iter_space, Functor &&functor) const noexcept(noexcept(this->operator()(std::forward< Sndr >(sndr), std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))) -> decltype(this->operator()(std::forward< Sndr >(sndr), std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))

Detailed Description

Custom algorithm for the Kokkos::parallel_for construct.

Definition at line 44 of file parallel_for.hpp.

Member Typedef Documentation

◆ parallel_for_data_t

template<typename Functor, typename ExecPolicyOrIterSpace, typename... Properties>
using Kokkos::Execution::parallel_for_t::parallel_for_data_t
Initial value:
std::remove_cvref_t<Functor>,
std::remove_cvref_t<ExecPolicyOrIterSpace>,
std::remove_cvref_t<Properties>...
>

Definition at line 76 of file parallel_for.hpp.

Member Function Documentation

◆ operator()() [1/6]

template<typename Functor, std::integral T>
auto Kokkos::Execution::parallel_for_t::operator() ( const T work_count,
Functor && functor ) const -> decltype(stdexec::__closure(*this, Impl::make_iter_space(work_count), std::forward< Functor >(functor)))
inlineconstexprnoexcept

Definition at line 73 of file parallel_for.hpp.

References Kokkos::Execution::Impl::make_iter_space().

◆ operator()() [2/6]

template<typename Functor, typename ExecPolicyOrIterSpace>
requires Impl::execution_policy_or_iteration_space<std::remove_cvref_t<ExecPolicyOrIterSpace>>
auto Kokkos::Execution::parallel_for_t::operator() ( ExecPolicyOrIterSpace && policy_or_iter_space,
Functor && functor ) const -> decltype(stdexec::__closure( *this, std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor)))
inlineconstexprnoexcept

Definition at line 57 of file parallel_for.hpp.

◆ operator()() [3/6]

template<typename Label, typename Functor, std::integral T>
requires Impl::label<std::remove_cvref_t<Label>>
auto Kokkos::Execution::parallel_for_t::operator() ( Label && label,
const T work_count,
Functor && functor ) const -> decltype(stdexec::__closure( *this, Impl::make_iter_space(work_count), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))
inlineconstexprnoexcept

◆ operator()() [4/6]

template<typename Label, typename Functor, typename ExecPolicy>
requires (Impl::label<std::remove_cvref_t<Label>> && Kokkos::ExecutionPolicy<std::remove_cvref_t<ExecPolicy>>)
auto Kokkos::Execution::parallel_for_t::operator() ( Label && label,
ExecPolicy && policy,
Functor && functor ) const -> decltype(stdexec::__closure( *this, std::forward< ExecPolicy >(policy), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))
inlineconstexprnoexcept

Definition at line 47 of file parallel_for.hpp.

References Kokkos::Execution::label().

◆ operator()() [5/6]

template<stdexec::sender Sndr, typename Functor, typename ExecPolicyOrIterSpace, typename... Properties>
requires Impl::execution_policy_or_iteration_space<std::remove_cvref_t<ExecPolicyOrIterSpace>>
auto Kokkos::Execution::parallel_for_t::operator() ( Sndr && sndr,
ExecPolicyOrIterSpace && policy_or_iter_space,
Functor && functor,
Properties &&... properties ) const -> Impl::ParallelForSender< Sndr, parallel_for_data_t< Functor, ExecPolicyOrIterSpace, Properties... > >
inlineconstexprnoexcept

Definition at line 84 of file parallel_for.hpp.

References KOKKOS_EXECUTION_RETURNS_BRACED.

◆ operator()() [6/6]

template<stdexec::sender Sndr, typename Label, typename Functor, typename ExecPolicyOrIterSpace>
requires ( Impl::label<std::remove_cvref_t<Label>> && Impl::execution_policy_or_iteration_space<std::remove_cvref_t
<ExecPolicyOrIterSpace>>)
auto Kokkos::Execution::parallel_for_t::operator() ( Sndr && sndr,
Label && label,
ExecPolicyOrIterSpace && policy_or_iter_space,
Functor && functor ) const -> decltype(this->operator()( std::forward< Sndr >(sndr), std::forward< ExecPolicyOrIterSpace >(policy_or_iter_space), std::forward< Functor >(functor), Impl::Label{std::forward< Label >(label)}))
inlineconstexprnoexcept

Definition at line 105 of file parallel_for.hpp.

References Kokkos::Execution::label().


The documentation for this struct was generated from the following file: