SerialExecution
SerialExecution
Section titled “SerialExecution”#include <sbio/execution/serial.hh>class SerialExecutionDefined in src/lib/sbio/execution/serial.hh:46
Inherits:
Execution< SerialExecution >
SerialExecution is a simple policy, with single-process single-thread host buffers.
This execution policy provides purely synchronous behaviour for use with a single buffer in a host-only pipeline. No synchronization is necessary.
List of all members
Section titled “List of all members”| Name | Kind | Owner |
|---|---|---|
ParallelSupport |
variable |
Declared here |
configure_impl |
function |
Declared here |
allocate_storage_impl |
function |
Declared here |
allocate_impl_helper |
function |
Declared here |
next_impl |
function |
Declared here |
BufferTypeFor |
typedef |
Declared here |
m_event_idx |
variable |
Declared here |
m_logger |
variable |
Declared here |
ParallelSupport |
variable |
Inherited from Execution |
result_memory_space |
function |
Inherited from Execution |
configure |
function |
Inherited from Execution |
allocate_storage |
function |
Inherited from Execution |
allocate_storage |
function |
Inherited from Execution |
get_block_from_pool |
function |
Inherited from Execution |
should_index |
function |
Inherited from Execution |
should_process |
function |
Inherited from Execution |
on_step |
function |
Inherited from Execution |
pre_update |
function |
Inherited from Execution |
post_update |
function |
Inherited from Execution |
execute_read |
function |
Inherited from Execution |
acquire_broker_view |
function |
Inherited from Execution |
allocate_group_storage |
function |
Inherited from Execution |
get_data |
function |
Inherited from Execution |
get_data_steps |
function |
Inherited from Execution |
next |
function |
Inherited from Execution |
BufferTypeFor |
typedef |
Inherited from Execution |
Inherited from Execution
Section titled “Inherited from Execution”| Kind | Name | Description |
|---|---|---|
variable |
ParallelSupport static constexpr |
The set of parallelization methods supported by the Execution policy. |
function |
result_memory_space static inline constexpr |
The memory space that results (via get_data) are returned in. |
function |
configure static inline |
|
function |
allocate_storage static inline requires FormatTraits<FTraits, IO, Derived> |
Controls the allocation of storage. |
function |
allocate_storage static inline requires FormatTraits<FTraits, IO, Derived> |
|
function |
get_block_from_pool static inline |
|
function |
should_index static inline |
Decide whether or not this StreamBroker should proceed to the indexing state. |
function |
should_process static inline |
Decide whether or not this StreamBroker should process this particular step. |
function |
on_step static inline |
An opportunity to provide explicit synchronization immediately after every step. |
function |
pre_update static inline |
An opportunity to provide explicit synchronization before any Storage changes. |
function |
post_update static inline |
An opportunity to provide explicit synchronization after any Storage changes. |
function |
execute_read static inline |
|
function |
acquire_broker_view static inline |
|
function |
allocate_group_storage static inline requires FormatTraits<FTraits, IO, Derived> |
|
function |
get_data static inline |
Run the data fetching and then querying of the filled buffers. |
function |
get_data_steps static inline |
Run the data fetching and then querying of the filled buffers, for a BATCh of steps. |
function |
next static inline |
Request the next step index to read data for. |
typedef |
BufferTypeFor |
Sub-classes must define the used buffer types. |
Public Static Attributes
Section titled “Public Static Attributes”| Return | Name | Description |
|---|---|---|
constexpr std::bitset< static_cast< std::size_t >(ParallelizationMethods::NUM_METHODS) > |
ParallelSupport static constexpr |
ParallelSupport
Section titled “ParallelSupport”static constexpr
constexpr std::bitset< static_cast< std::size_t >(ParallelizationMethods::NUM_METHODS) > ParallelSupport { 0x0 }Defined in src/lib/sbio/execution/serial.hh:60
Public Static Methods
Section titled “Public Static Methods”| Return | Name | Description |
|---|---|---|
void |
configure_impl static inline |
|
auto |
allocate_storage_impl static inline requires FormatTraits<FTraits, IO, SerialExecution> |
Allocate HostBuffer storage for requested roles. |
auto |
allocate_impl_helper static inline |
|
FTraits::StepIdxType |
next_impl static inline |
The SerialExecution policy generates step indices in monotonically. |
configure_impl
Section titled “configure_impl”static inline
static inline void configure_impl(constConfig &)Defined in src/lib/sbio/execution/serial.hh:62
allocate_storage_impl
Section titled “allocate_storage_impl”static inline requires FormatTraits<FTraits, IO, SerialExecution>
template<IsTypeList Requirements, class IO, class FTraits> static inline auto allocate_storage_impl(constAllocationRequest< FTraits > & request) requires FormatTraits<FTraits, IO, SerialExecution>Defined in src/lib/sbio/execution/serial.hh:81
Allocate HostBuffer storage for requested roles.
The SerialExecution policy does not perform any complex logic when fulfilling allocation requests. It will serve the request (unless the machine is actually exhausted of memory).
Returns
Section titled “Returns”Allocated storage per the request.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
request |
[const](api-sbio-Execution.md#should_process)[AllocationRequest](api-sbio-AllocationRequest.md#allocationrequest)< FTraits > & |
The allocation request. |
allocate_impl_helper
Section titled “allocate_impl_helper”static inline
template<typename... Descriptors, class FTraits> static inline auto allocate_impl_helper(TypeList< Descriptors... >, constAllocationRequest< FTraits > & request)Defined in src/lib/sbio/execution/serial.hh:93
next_impl
Section titled “next_impl”static inline
template<class FTraits, classIndexTrigger> static inline FTraits::StepIdxType next_impl(typename FTraits::StepIdxType & max_capacity, IndexTrigger && trigger)Defined in src/lib/sbio/execution/serial.hh:132
The SerialExecution policy generates step indices in monotonically.
The policy will continuously increment the step counter, returning the next index until exhaustion. It will then use the callback trigger to reindex.
Returns
Section titled “Returns”The next step_idx.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
max_capacity |
[typename](api-sbio-Execution.md#should_process) FTraits::StepIdxType & |
The current max capacity (currently available indices). |
trigger |
[IndexTrigger](api-sbio-Execution.md#should_process) && |
The reindex callback routine. |
Public Types
Section titled “Public Types”| Name | Description |
|---|---|
BufferTypeFor |
SerialExecution’s buffer selector always points to HostBuffer. |
BufferTypeFor
Section titled “BufferTypeFor”using BufferTypeFor = HostBufferDefined in src/lib/sbio/execution/serial.hh:54
SerialExecution’s buffer selector always points to HostBuffer.
Regardless of role, a [HostBuffer](api-sbio-HostBuffer.md#hostbuffer) will always be used for this policy.
Private Static Attributes
Section titled “Private Static Attributes”| Return | Name | Description |
|---|---|---|
std::size_t |
m_event_idx static |
The event/step index counter for distribution. |
std::shared_ptr< spdlog::logger > |
m_logger static |
m_event_idx
Section titled “m_event_idx”static
std::size_t m_event_idx { 0 }Defined in src/lib/sbio/execution/serial.hh:158
The event/step index counter for distribution.
m_logger
Section titled “m_logger”static
std::shared_ptr< spdlog::logger > m_loggerDefined in src/lib/sbio/execution/serial.hh:160