Logical grid extension of Kokkos parallel iteration. More...
#include <Cabana_Grid_IndexSpace.hpp>
#include <Cabana_Grid_LocalGrid.hpp>
#include <Kokkos_Profiling_ScopedRegion.hpp>
#include <string>
Go to the source code of this file.
Namespaces | |
namespace | Cabana |
Core: particle data structures and algorithms. | |
Functions | |
template<class FunctorType, class ExecutionSpace, long N> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const IndexSpace< N > &index_space, const FunctorType &functor) |
Execute a functor in parallel with a multidimensional execution policy specified by the given index space. | |
template<class FunctorType, class WorkTag, class ExecutionSpace, long N> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const IndexSpace< N > &index_space, const WorkTag &work_tag, const FunctorType &functor) |
Execute a functor with a work tag in parallel with a multidimensional execution policy specified by the given index space. | |
template<class FunctorType, class ExecutionSpace, class MeshType, class DecompositionType, class EntityType> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const LocalGrid< MeshType > &local_grid, const DecompositionType &decomposition, const EntityType &entity_type, const FunctorType &functor) |
Execute a functor in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local. | |
template<class FunctorType, class WorkTag, class ExecutionSpace, class MeshType, class DecompositionType, class EntityType> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const LocalGrid< MeshType > &local_grid, const DecompositionType &decomposition, const EntityType &entity_type, const WorkTag &work_tag, const FunctorType &functor) |
Execute a functor with a work tag in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local. | |
template<class FunctorType, class ExecutionSpace, std::size_t NumSpace> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const Kokkos::Array< IndexSpace< 4 >, NumSpace > &index_spaces, const FunctorType &functor) |
Execute a functor in parallel with a linear execution policy specified by the set of given index spaces. 4D specialization. | |
template<class FunctorType, class ExecutionSpace, std::size_t NumSpace> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const Kokkos::Array< IndexSpace< 3 >, NumSpace > &index_spaces, const FunctorType &functor) |
Execute a functor in parallel with a linear execution policy specified by the set of given index spaces. 3D specialization. | |
template<class FunctorType, class ExecutionSpace, std::size_t NumSpace> | |
void | Cabana::Grid::grid_parallel_for (const std::string &label, const ExecutionSpace &exec_space, const Kokkos::Array< IndexSpace< 2 >, NumSpace > &index_spaces, const FunctorType &functor) |
Execute a functor in parallel with a linear execution policy specified by the set of given index spaces. 2D specialization. | |
template<class FunctorType, class ExecutionSpace, long N, class ReduceType> | |
void | Cabana::Grid::grid_parallel_reduce (const std::string &label, const ExecutionSpace &exec_space, const IndexSpace< N > &index_space, const FunctorType &functor, ReduceType &reducer) |
Execute a reduction functor in parallel with a multidimensional execution policy specified by the given index space. | |
template<class FunctorType, class WorkTag, class ExecutionSpace, long N, class ReduceType> | |
void | Cabana::Grid::grid_parallel_reduce (const std::string &label, const ExecutionSpace &exec_space, const IndexSpace< N > &index_space, const WorkTag &work_tag, const FunctorType &functor, ReduceType &reducer) |
Execute a reduction functor with a work tag in parallel with a multidimensional execution policy specified by the given index space. | |
template<class FunctorType, class ExecutionSpace, class MeshType, class DecompositionType, class EntityType, class ReduceType> | |
void | Cabana::Grid::grid_parallel_reduce (const std::string &label, const ExecutionSpace &exec_space, const LocalGrid< MeshType > &local_grid, const DecompositionType &decomposition, const EntityType &entity_type, const FunctorType &functor, ReduceType &reducer) |
Execute a reduction functor in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local. | |
template<class FunctorType, class WorkTag, class ExecutionSpace, class MeshType, class DecompositionType, class EntityType, class ReduceType> | |
void | Cabana::Grid::grid_parallel_reduce (const std::string &label, const ExecutionSpace &exec_space, const LocalGrid< MeshType > &local_grid, const DecompositionType &decomposition, const EntityType &entity_type, const WorkTag &work_tag, const FunctorType &functor, ReduceType &reducer) |
Execute a reduction functor with a work tag in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local. | |
Logical grid extension of Kokkos parallel iteration.
|
inline |
Execute a functor in parallel with a multidimensional execution policy specified by the given index space.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
N | The dimension of the index space. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_space | The index space over which to loop. |
functor | The functor to execute. |
|
inline |
Execute a functor with a work tag in parallel with a multidimensional execution policy specified by the given index space.
FunctorType | The functor type to execute. |
WorkTag | The functor execution tag. |
ExecutionSpace | The execution space type. |
N | The dimension of the index space. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_space | The index space over which to loop. |
work_tag | The functor execution tag. |
functor | The functor to execute. |
|
inline |
Execute a functor in parallel with a linear execution policy specified by the set of given index spaces. 2D specialization.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
NumSpace | The number of index spaces. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_spaces | The set of index spaces over which to loop. |
functor | The functor to execute. Signature is f(space_id,i,j) space_id is the index of the index space in index_spaces. |
|
inline |
Execute a functor in parallel with a linear execution policy specified by the set of given index spaces. 3D specialization.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
NumSpace | The number of index spaces. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_spaces | The set of index spaces over which to loop. |
functor | The functor to execute. Signature is f(space_id,i,j,k) space_id is the index of the index space in index_spaces. |
|
inline |
Execute a functor in parallel with a linear execution policy specified by the set of given index spaces. 4D specialization.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
NumSpace | The number of index spaces. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_spaces | The set of index spaces over which to loop. |
functor | The functor to execute. Signature is f(space_id,i,j,k,l) space_id is the index of the index space in index_spaces. |
|
inline |
Execute a functor in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
MeshType | The mesh type of the local grid. |
label | Parallel region label. |
exec_space | An execution space instance. |
local_grid | The local grid to iterate over. |
decomposition | The decomposition type of the entities (own,ghost). |
entity_type | The entity type over which to loop. |
functor | The functor to execute. |
|
inline |
Execute a functor with a work tag in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local.
FunctorType | The functor type to execute. |
WorkTag | The functor work tag. |
ExecutionSpace | The execution space type. |
MeshType | The mesh type of the local grid. |
label | Parallel region label. |
exec_space | An execution space instance. |
local_grid | The local grid to iterate over. |
decomposition | The decomposition type of the entities (own,ghost). |
entity_type | The entity type over which to loop. |
work_tag | The functor execution tag. |
functor | The functor to execute. |
|
inline |
Execute a reduction functor in parallel with a multidimensional execution policy specified by the given index space.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
N | The dimension of the index space. |
ReduceType | The reduction type. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_space | The index space over which to loop. |
functor | The functor to execute. |
reducer | The parallel reduce result. |
|
inline |
Execute a reduction functor with a work tag in parallel with a multidimensional execution policy specified by the given index space.
FunctorType | The functor type to execute. |
WorkTag | The functor execution tag. |
ExecutionSpace | The execution space type. |
N | The dimension of the index space. |
ReduceType | The reduction type. |
label | Parallel region label. |
exec_space | An execution space instance. |
index_space | The index space over which to loop. |
work_tag | The functor execution tag. |
functor | The functor to execute. |
reducer | The parallel reduce result. |
|
inline |
Execute a reduction functor in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local.
FunctorType | The functor type to execute. |
ExecutionSpace | The execution space type. |
MeshType | The mesh type of the local grid. |
ReduceType | The reduction type. |
label | Parallel region label. |
exec_space | An execution space instance. |
local_grid | The local grid to iterate over. |
decomposition | The decomposition type of the entities (own,ghost). |
entity_type | The entity type over which to loop. |
functor | The functor to execute. |
reducer | The parallel reduce result. |
|
inline |
Execute a reduction functor with a work tag in parallel with a multidimensional execution policy specified by the given local grid, decomposition, and entity type. The loop indices are local.
FunctorType | The functor type to execute. |
WorkTag | The functor work tag. |
ExecutionSpace | The execution space type. |
MeshType | The mesh type of the local grid. |
ReduceType | The reduction type. |
label | Parallel region label. |
exec_space | An execution space instance. |
decomposition | The decomposition type of the entities (own,ghost). |
local_grid | The local grid to iterate over. |
entity_type | The entity type over which to loop. |
work_tag | The functor execution tag. |
functor | The functor to execute. |
reducer | The parallel reduce result. |