component namespace
Namespaces
Classes
- struct BaseComponent
- The abstract
BaseComponentfor VT runtime component pack. - struct Bufferable
- The abstract
Bufferabletrait for delaying operations generically across VT components. -
template<typename T>struct Component
Componentclass for a generic VT runtime module, CRTP'ed over the component's actual type-
template<typename T, typename _Enable = void, typename... Us>struct ComponentConstructor
- Construct a component with either a regular
std::make_uniqueor through the specialized staticconstructmethod, which is used to create the objgroup if the component is implemented as one. -
template<typename T, typename... Us>struct ComponentConstructor<T, typename std::enable_if_t<ComponentTraits<T, Us...>::hasConstruct>, Us...>
-
template<typename T, typename... Us>struct ComponentConstructor<T, typename std::enable_if_t<not ComponentTraits<T, Us...>::hasConstruct>, Us...>
- struct ComponentName
- Pure virtual class for concrete components to override, providing an unique name for the given component.
- struct ComponentPack
ComponentPackclass for holding a set of runtime components that make up a coherent inter-dependent runtime- struct ComponentReducer
- Trait class for the component that composes in the unique reducer for each component.
- struct ComponentRegistry
-
template<typename T, typename... Us>struct ComponentTraits
- struct Diagnostic
- The abstract
Diagnostictrait for outputting debugging state information generically across VT components. - struct DiagnosticErasedValue
- Typed-erased, diagnostic values as strings for outputting to user after being formatted.
- struct MovableFn
- A move-only closure around a general function. This type is not user-constructible; serves as a general base class for move-only callables.
-
template<typename Fn>struct MovableFnTyped
- A typed move-only function closed around a lambda that can't be copied.
-
template<typename T>struct PollableComponent
Componentclass for a generic, pollable VT runtime module, CRTP'ed over the component's actual type. A pollable component will be registered with the VT scheduler to ensure it makes progress.- struct Progressable
- The abstract
Progressabletrait for pollable components to make progress from the scheduler.
Enums
- enum class DiagnosticTypeEnum: int8_t { PerformanceDiagnostic, DebugDiagnostic }
- The type of diagnostic (the category)
- enum class DiagnosticUpdate: int8_t { Sum, Avg, Replace, Min, Max }
- enum class DiagnosticUnit: int8_t { Bytes, Units, UnitsPerSecond, Seconds }
- Unit type for a diagnostic value.
- enum class UnitMultiplier: int8_t { Base = 0, Thousands = 1, Millions = 2, Billions = 3, Trillions = 4, Quadrillions = 5, Quintillions = 6 }
- Multipliers for basic units.
- enum class TimeMultiplier: int8_t { Seconds = 0, Milliseconds = -1, Microseconds = -2, Nanoseconds = -3 }
- Time multipliers for DiagnosticUnit::
Seconds.
Typedefs
-
template<typename... Ts>using StartupDeps = typename BaseComponent::
StartupDepsPack<Ts...> - Type alias for a pack of startup dependencies.
-
template<typename... Ts>using RuntimeDeps = typename BaseComponent::
RuntimeDepsPack<Ts...> - Type alias for a pack of runtime dependencies, automatically including all startup dependencies.
Functions
- auto diagnosticUpdateTypeString(DiagnosticUpdate update) -> std::string
- Convert a diagnostic update enum to a human-readable string.
- auto diagnosticShowTotal(DiagnosticUpdate update) -> bool
- Whether to print the total (or sum across processors) of a given type of update.
- auto diagnosticUnitTypeString(DiagnosticUnit unit) -> std::string
- Convert a diagnostic unit type to a human-readable string.
- auto diagnosticMultiplierString(UnitMultiplier multiplier) -> std::string
- Convert a diagnostic unit multiplier to a human-readable string.
- auto diagnosticTimeMultiplierString(TimeMultiplier time) -> std::string
- Convert a time unit multiplier to a human-readable string.
Enum documentation
enum class vt:: runtime:: component:: DiagnosticTypeEnum: int8_t
The type of diagnostic (the category)
| Enumerators | |
|---|---|
| PerformanceDiagnostic |
A performance diagnostic |
| DebugDiagnostic |
A debugging diagnostic |
enum class vt:: runtime:: component:: DiagnosticUnit: int8_t
Unit type for a diagnostic value.
| Enumerators | |
|---|---|
| Bytes |
Memory units as bytes |
| Units |
Units of some entity |
| UnitsPerSecond |
Units per second |
| Seconds |
Time units as seconds |
enum class vt:: runtime:: component:: UnitMultiplier: int8_t
Multipliers for basic units.
| Enumerators | |
|---|---|
| Base |
Multiplier = 1 |
| Thousands |
Multiplier = 1,000 |
| Millions |
Multiplier = 1,000,000 |
| Billions |
Multiplier = 1,000,000,000 |
| Trillions |
Multiplier = 1,000,000,000,000 |
| Quadrillions |
Multiplier = 1,000,000,000,000,000 |
| Quintillions |
Multiplier = 1,000,000,000,000,000,000 |
enum class vt:: runtime:: component:: TimeMultiplier: int8_t
Time multipliers for DiagnosticUnit::
| Enumerators | |
|---|---|
| Seconds |
Multiplier = 1 |
| Milliseconds |
Multiplier = 0.001 |
| Microseconds |
Multiplier = 0.000001 |
| Nanoseconds |
Multiplier = 0.000000001 |
Typedef documentation
template<typename... Ts>
using vt:: runtime:: component:: StartupDeps = typename BaseComponent:: StartupDepsPack<Ts...>
Type alias for a pack of startup dependencies.
template<typename... Ts>
using vt:: runtime:: component:: RuntimeDeps = typename BaseComponent:: RuntimeDepsPack<Ts...>
Type alias for a pack of runtime dependencies, automatically including all startup dependencies.
Function documentation
std::string vt:: runtime:: component:: diagnosticUpdateTypeString(DiagnosticUpdate update)
Convert a diagnostic update enum to a human-readable string.
| Parameters | |
|---|---|
| update in | the update type |
| Returns | a string for printing |
bool vt:: runtime:: component:: diagnosticShowTotal(DiagnosticUpdate update)
Whether to print the total (or sum across processors) of a given type of update.
| Parameters | |
|---|---|
| update in | the update type |
| Returns | whether to print the total |
\internalFor example, a DiagnosticUpdate:: value updater does not make sense to print the total across nodes.
std::string vt:: runtime:: component:: diagnosticUnitTypeString(DiagnosticUnit unit)
Convert a diagnostic unit type to a human-readable string.
| Parameters | |
|---|---|
| unit in | the unit |
| Returns | a string for printing |
std::string vt:: runtime:: component:: diagnosticMultiplierString(UnitMultiplier multiplier)
Convert a diagnostic unit multiplier to a human-readable string.
| Parameters | |
|---|---|
| multiplier in | the multiplier type |
| Returns | a string for printing |
std::string vt:: runtime:: component:: diagnosticTimeMultiplierString(TimeMultiplier time)
Convert a time unit multiplier to a human-readable string.
| Parameters | |
|---|---|
| time in | the time unit |
| Returns | a string for printing |