alpaka
Abstraction Library for Parallel Kernel Acceleration
TaskKernelCpuOmp2Blocks.hpp File Reference
#include "alpaka/acc/Traits.hpp"
#include "alpaka/dev/Traits.hpp"
#include "alpaka/dim/Traits.hpp"
#include "alpaka/idx/Traits.hpp"
#include "alpaka/platform/Traits.hpp"
#include "alpaka/acc/AccCpuOmp2Blocks.hpp"
#include "alpaka/core/Decay.hpp"
#include "alpaka/core/OmpSchedule.hpp"
#include "alpaka/dev/DevCpu.hpp"
#include "alpaka/idx/MapIdx.hpp"
#include "alpaka/kernel/Traits.hpp"
#include "alpaka/workdiv/WorkDivMembers.hpp"
#include <functional>
#include <stdexcept>
#include <tuple>
#include <type_traits>
#include <utility>
#include <iostream>
#include <omp.h>

Go to the source code of this file.

Classes

struct  alpaka::detail::ParallelFor< TKernel, TSchedule, TSfinae >
 Executor of parallel OpenMP loop. More...
 
struct  alpaka::detail::ParallelFor< TKernel, omp::Schedule >
 Executor of parallel OpenMP loop. More...
 
struct  alpaka::detail::ParallelFor< TKernel, TSchedule, UseScheduleKind< TKernel, TSchedule > >
 Executor of parallel OpenMP loop. More...
 
struct  alpaka::detail::ParallelForDynamicImpl< TKernel, TSchedule, TSfinae >
 Helper executor of parallel OpenMP loop with the dynamic schedule. More...
 
struct  alpaka::detail::ParallelForDynamicImpl< TKernel, TSchedule, HasScheduleChunkSize< TKernel > >
 Helper executor of parallel OpenMP loop with the dynamic schedule. More...
 
struct  alpaka::detail::ParallelForGuidedImpl< TKernel, TSchedule, TSfinae >
 Helper executor of parallel OpenMP loop with the guided schedule. More...
 
struct  alpaka::detail::ParallelForGuidedImpl< TKernel, TSchedule, HasScheduleChunkSize< TKernel > >
 Helper executor of parallel OpenMP loop with the guided schedule. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, omp::Schedule, omp::Schedule::Dynamic >
 Executor of parallel OpenMP loop with the dynamic schedule. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, omp::Schedule, omp::Schedule::Guided >
 Executor of parallel OpenMP loop with the guided schedule. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, omp::Schedule, omp::Schedule::Static >
 Executor of parallel OpenMP loop with the static schedule. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, TSchedule, omp::Schedule::Auto >
 Executor of parallel OpenMP loop with auto schedule set. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, TSchedule, omp::Schedule::Dynamic >
 Executor of parallel OpenMP loop with the dynamic schedule. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, TSchedule, omp::Schedule::Guided >
 Executor of parallel OpenMP loop with the guided schedule. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, TSchedule, omp::Schedule::NoSchedule >
 Executor of parallel OpenMP loop with no schedule set. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, TSchedule, omp::Schedule::Runtime >
 Executor of parallel OpenMP loop with runtime schedule set. More...
 
struct  alpaka::detail::ParallelForImpl< TKernel, TSchedule, omp::Schedule::Static >
 Executor of parallel OpenMP loop with the static schedule. More...
 
struct  alpaka::detail::ParallelForStaticImpl< TKernel, TSchedule, TSfinae >
 Helper executor of parallel OpenMP loop with the static schedule. More...
 
struct  alpaka::detail::ParallelForStaticImpl< TKernel, TSchedule, HasScheduleChunkSize< TKernel > >
 Helper executor of parallel OpenMP loop with the static schedule. More...
 
class  alpaka::TaskKernelCpuOmp2Blocks< TDim, TIdx, TKernelFnObj, TArgs >
 The CPU OpenMP 2.0 block accelerator execution task. More...
 
struct  alpaka::trait::AccType< TaskKernelCpuOmp2Blocks< TDim, TIdx, TKernelFnObj, TArgs... > >
 The CPU OpenMP 2.0 grid block execution task accelerator type trait specialization. More...
 
struct  alpaka::trait::DevType< TaskKernelCpuOmp2Blocks< TDim, TIdx, TKernelFnObj, TArgs... > >
 The CPU OpenMP 2.0 grid block execution task device type trait specialization. More...
 
struct  alpaka::trait::DimType< TaskKernelCpuOmp2Blocks< TDim, TIdx, TKernelFnObj, TArgs... > >
 The CPU OpenMP 2.0 grid block execution task dimension getter trait specialization. More...
 
struct  alpaka::trait::IdxType< TaskKernelCpuOmp2Blocks< TDim, TIdx, TKernelFnObj, TArgs... > >
 The CPU OpenMP 2.0 block execution task idx type trait specialization. More...
 
struct  alpaka::trait::PlatformType< TaskKernelCpuOmp2Blocks< TDim, TIdx, TKernelFnObj, TArgs... > >
 The CPU OpenMP 2.0 grid block execution task platform type trait specialization. More...
 

Namespaces

 alpaka
 The alpaka accelerator library.
 
 alpaka::detail
 
 alpaka::trait
 The accelerator traits.
 

Typedefs

template<typename TKernel >
using alpaka::detail::HasScheduleChunkSize = std::void_t< decltype(TKernel::ompScheduleChunkSize)>
 Helper type to check if TKernel has member ompScheduleChunkSize. More...
 
template<typename TSchedule >
using alpaka::detail::IsOmpScheduleTraitSpecialized = std::integral_constant< bool, std::is_same< TSchedule, omp::Schedule >::value >
 Helper type to check if TSchedule is a type originating from OmpSchedule trait definition. More...
 
template<typename TKernel , typename TSchedule >
using alpaka::detail::UseScheduleKind = std::enable_if_t< sizeof(TKernel::ompScheduleKind) &&!IsOmpScheduleTraitSpecialized< TSchedule >::value >
 Helper type to check if member ompScheduleKind of TKernel should be used. More...
 

Functions

template<typename TKernel , typename TLoopBody , typename TIdx , typename TSchedule >
ALPAKA_FN_HOST ALPAKA_FN_INLINE void alpaka::detail::parallelFor (TKernel const &kernel, TLoopBody &&loopBody, TIdx const numIterations, TSchedule const &schedule)
 Run parallel OpenMP loop. More...