Launching tasks and kernels. More...
| Topics | |
| Reduction Operations | |
| Types to use with reduce,reduceall, andreduction_accessor. | |
| Kernels | |
| Local concurrent operations. | |
| Classes | |
| struct | agent< S > | 
| A node-local context for potentially parallel operations.  More... | |
| struct | blocks< S, T, B > | 
| Parallel operations with thread configuration.  More... | |
| struct | cpu | 
| Single-core execution space.  More... | |
| struct | executor< S, T, B > | 
| Parallel operations given a name for debugging or profiling.  More... | |
| struct | executor_base< D > | 
| Executor derivation.  More... | |
| struct | future< Return, Launch > | 
| Single or multiple future.  More... | |
| struct | future< Return > | 
| Single-valued future.  More... | |
| struct | future< Return, exec::launch_type_t::index > | 
| Multi-valued future from an index launch.  More... | |
| struct | gpu | 
| GPU execution space.  More... | |
| struct | trace::guard | 
| RAII guard for executing a trace.  More... | |
| struct | launch_domain | 
| An explicit launch domain size.  More... | |
| struct | omp | 
| OpenMP execution space.  More... | |
| struct | scheduler | 
| Launches tasks according to their execution-space (template) parameters.  More... | |
| struct | space< S > | 
| Execution space operations.  More... | |
| struct | space_base | 
| An execution space.  More... | |
| struct | task_class | 
| Example task class which is not really implemented.  More... | |
| struct | task_local< T > | 
| A global variable with a task-specific value.  More... | |
| struct | trace | 
| Records execution of a loop whose iterations all execute the same sequence of tasks.  More... | |
| Typedefs | |
| using | accelerator | 
| The available accelerated execution space. | |
| Enumerations | |
| enum | task_attributes_mask_t : TaskAttributes { } | 
| Task attribute flags.  More... | |
| Functions | |
| template<class T , class... AA> | |
| auto & | allocate (std::unique_ptr< topology< T > > &p, const typename T::coloring &c, AA &&... aa) | 
| Create a topology instance with specialization support. | |
| template<auto & TASK, TaskAttributes ATTRIBUTES = flecsi::loc | flecsi::leaf, typename... ARGS> | |
| auto | execute (ARGS &&... args) | 
| Execute a task. | |
| template<auto & F, class... AA> | |
| constexpr exec::partial< F, std::decay_t< AA >... > | make_partial (AA &&... aa) | 
| Partially apply a function. | |
| template<auto & Task, class Reduction , TaskAttributes Attributes = flecsi::loc | flecsi::leaf, typename... Args> | |
| auto | reduce (Args &&...) | 
| Execute a reduction task. | |
| template<class V , class... AA> | |
| int | test (AA &&... aa) | 
| Execute a variant of a test task. | |
| template<auto & TASK, TaskAttributes ATTRIBUTES = flecsi::loc | flecsi::leaf, typename... ARGS> | |
| int | test (ARGS &&... args) | 
| Execute a test task. | |
| Variables | |
| constexpr auto | default_accelerator | 
| The task attribute to use for tasks that use the on-node parallelism interface. | |
| constexpr on_t | on | 
| Placeholder argument that corresponds to an execution-space task parameter. | |
Launching tasks and kernels.
Tasks are coarse-grained and use distributed-memory with restricted side effects; kernels are fine-grained and data-parallel, possibly using an accelerator.
Contents are in flecsi::exec unless otherwise specified. 
| using accelerator | 
The available accelerated execution space.
Defined as gpu or omp if support for one of those is available, otherwise cpu. 
| enum task_attributes_mask_t : TaskAttributes | 
Task attribute flags.
Appears directly in flecsi. 
| Enumerator | |
|---|---|
| idempotent | Ignored. 
 | 
| loc | Run on a Latency-Optimized Core (a CPU). | 
| toc | Run on a Throughput-Optimized Core (a GPU). The task function itself still runs on the host, but a GPU is reserved for its use and field data is made available there. 
 | 
| omp | Run as an OpenMP task. 
 
 | 
| mpi | Run simultaneously on all processes with the obvious color mapping; allow MPI communication among point tasks, at the cost of significant startup overhead. | 
| 
 | nodiscard | 
| auto execute | ( | ARGS &&... | args | ) | 
Execute a task.
| TASK | The user task. Its parameters must be copyable or a reference to a const, movable type. Any that is a pointer must be to a const type or to a function. If ATTRIBUTES specifies an MPI task, parameters need merely be movable. | 
| ATTRIBUTES | The task attributes mask. | 
| ARGS | The user-specified task arguments, implicitly converted to the parameter types for TASK. Certain FleCSI-defined parameter types accept particular, different argument types that serve as selectors for information stored by the backend; each type involved documents the correspondence. Additionally, a parameter may be a std::vectorof such a type or astd::tuplethat includes such a type; it accepts astd::vectorof or astd::tupleincluding the corresponding argument type. | 
Appears directly in flecsi. 
| 
 | constexpr | 
Partially apply a function.
| F | function to call | 
| AA | leading arguments | 
Appears directly in flecsi. 
std::bind. | 
 | nodiscard | 
Execute a test task.
This interface is provided for FleCSI's unit testing framework. Test tasks must return an integer that is non-zero on failure, and zero otherwise.
execute about parameter and argument types.Appears directly in flecsi. 
| 
 | nodiscard | 
Execute a variant of a test task.
| auto & allocate | ( | std::unique_ptr< topology< T > > & | p, | 
| const typename T::coloring & | c, | ||
| AA &&... | aa ) | 
Create a topology instance with specialization support.
Calls the specialization's initialize on the topology instance. 
| p | where to store the topology | 
| c | coloring (perhaps from an mpi_coloring) | 
| aa | further specialization-specific parameters | 
| 
 | constexpr | 
Placeholder argument that corresponds to an execution-space task parameter.
| 
 | constexpr | 
The task attribute to use for tasks that use the on-node parallelism interface.
toc causes field data to be placed on the device, so that it is accessible only via the parallelism interface.Appears directly in flecsi. 
accelerator.