|
RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
|
Namespaces | |
| expt | |
| internal | |
Classes | |
| struct | Parallel |
| struct | For |
| struct | NoWait |
| struct | Auto |
| struct | Static |
| struct | Runtime |
| struct | omp_parallel_region |
| struct | omp_launch_t |
| struct | omp_for_nowait_schedule_exec |
| struct | omp_for_schedule_exec |
| struct | omp_taskgraph_segit |
| struct | omp_taskgraph_interval_segit |
| struct | omp_work |
| struct | omp_reduce |
| struct | omp_reduce_ordered |
| struct | omp_multi_reduce_policy |
| struct | omp_synchronize |
| struct | omp_atomic |
| struct | omp_thread |
| struct | Teams |
| struct | Target |
| struct | Distribute |
| struct | Collapse |
| struct | omp_target_parallel_for_exec |
| struct | omp_target_parallel_for_exec_nt |
| struct | omp_target_parallel_collapse_exec |
| struct | omp_target_reduce |
| struct | omp_target_work |
Functions | |
| template<typename Iterable , typename Func , typename InnerPolicy , typename ForallParam > | |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy< resources::Host >, RAJA::expt::type_traits::is_ForallParamPack< ForallParam >, concepts::negate< RAJA::expt::type_traits::is_ForallParamPack_empty< ForallParam > > > | forall_impl (resources::Host host_res, const omp_parallel_exec< InnerPolicy > &, Iterable &&iter, Func &&loop_body, ForallParam f_params) |
| template<typename Func > | |
| RAJA_INLINE void | region_impl (const omp_parallel_region &, Func &&body) |
| RAJA::region implementation for OpenMP. More... | |
| RAJA_INLINE void | synchronize_impl (const omp_synchronize &) |
| Synchronize all OpenMP threads and tasks. More... | |
| using RAJA::policy::omp::Dynamic = typedef internal::Schedule<omp_sched_dynamic, ChunkSize> |
| using RAJA::policy::omp::Guided = typedef internal::Schedule<omp_sched_guided, ChunkSize> |
| using RAJA::policy::omp::omp_for_exec = typedef omp_for_schedule_exec<Auto> |
Internal type aliases supporting 'omp for schedule( )' for specific schedule types.
| using RAJA::policy::omp::omp_for_static_exec = typedef omp_for_schedule_exec<omp::Static<ChunkSize> > |
| using RAJA::policy::omp::omp_for_dynamic_exec = typedef omp_for_schedule_exec<omp::Dynamic<ChunkSize> > |
| using RAJA::policy::omp::omp_for_guided_exec = typedef omp_for_schedule_exec<omp::Guided<ChunkSize> > |
| using RAJA::policy::omp::omp_for_runtime_exec = typedef omp_for_schedule_exec<omp::Runtime> |
| using RAJA::policy::omp::omp_for_nowait_static_exec = typedef omp_for_nowait_schedule_exec<omp::Static<ChunkSize> > |
Internal type aliases supporting 'omp for schedule( ) nowait' for specific schedule types.
IMPORTANT: We only provide a nowait policy option for static scheduling since that is the only scheduling case that can be used with nowait and be correct in general. Paraphrasing the OpenMP standard:
Programs that depend on which thread executes a particular iteration under any circumstance other than static schedule are non-conforming.
| using RAJA::policy::omp::omp_parallel_exec = typedef make_policy_pattern_launch_platform_t<Policy::openmp, Pattern::forall, Launch::undefined, Platform::host, omp::Parallel, wrapper<InnerPolicy> > |
Struct supporting OpenMP 'parallel' region containing an inner loop execution construct.
| using RAJA::policy::omp::omp_parallel_for_exec = typedef omp_parallel_exec<omp_for_exec> |
Internal type aliases supporting 'omp parallel for schedule( )' for specific schedule types.
| using RAJA::policy::omp::omp_parallel_for_static_exec = typedef omp_parallel_exec<omp_for_schedule_exec<omp::Static<ChunkSize> >> |
| using RAJA::policy::omp::omp_parallel_for_dynamic_exec = typedef omp_parallel_exec<omp_for_schedule_exec<omp::Dynamic<ChunkSize> >> |
| using RAJA::policy::omp::omp_parallel_for_guided_exec = typedef omp_parallel_exec<omp_for_schedule_exec<omp::Guided<ChunkSize> >> |
| using RAJA::policy::omp::omp_parallel_for_runtime_exec = typedef omp_parallel_exec<omp_for_schedule_exec<omp::Runtime> > |
| using RAJA::policy::omp::omp_parallel_for_segit = typedef omp_parallel_for_exec |
Basic Indexset segment iteration policies
| using RAJA::policy::omp::omp_parallel_segit = typedef omp_parallel_for_segit |
| using RAJA::policy::omp::omp_multi_reduce_tuning = typedef omp_multi_reduce_policy<RAJA::omp::MultiReduceTuning<algorithm> > |
| using RAJA::policy::omp::omp_multi_reduce_combine_on_destruction = typedef omp_multi_reduce_tuning< RAJA::omp::multi_reduce_algorithm::combine_on_destruction> |
| using RAJA::policy::omp::omp_multi_reduce_combine_on_get = typedef omp_multi_reduce_tuning<RAJA::omp::multi_reduce_algorithm::combine_on_get> |
| using RAJA::policy::omp::omp_multi_reduce_unordered = typedef omp_multi_reduce_combine_on_destruction |
| using RAJA::policy::omp::omp_multi_reduce = typedef omp_multi_reduce_unordered |
| RAJA_INLINE concepts::enable_if_t< resources::EventProxy<resources::Host>, RAJA::expt::type_traits::is_ForallParamPack<ForallParam>, concepts::negate< RAJA::expt::type_traits::is_ForallParamPack_empty<ForallParam> > > RAJA::policy::omp::forall_impl | ( | resources::Host | host_res, |
| const omp_parallel_exec< InnerPolicy > & | , | ||
| Iterable && | iter, | ||
| Func && | loop_body, | ||
| ForallParam | f_params | ||
| ) |
OpenMP parallel policy implementation
| RAJA_INLINE void RAJA::policy::omp::region_impl | ( | const omp_parallel_region & | , |
| Func && | body | ||
| ) |
RAJA::region implementation for OpenMP.
Generates an OpenMP parallel region
| Policy | region policy |
| RAJA_INLINE void RAJA::policy::omp::synchronize_impl | ( | const omp_synchronize & | ) |
Synchronize all OpenMP threads and tasks.