|
Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
|
SIMD-accelerated statistical aggregator. More...
#include <simd_aggregator.h>

Public Member Functions | |
| simd_aggregator () | |
| Default constructor with default configuration. | |
| simd_aggregator (const simd_config &config) | |
| Construct with configuration. | |
| common::Result< double > | sum (const std::vector< double > &data) |
| Calculate sum of elements. | |
| common::Result< double > | mean (const std::vector< double > &data) |
| Calculate mean of elements. | |
| common::Result< double > | min (const std::vector< double > &data) |
| Find minimum value. | |
| common::Result< double > | max (const std::vector< double > &data) |
| Find maximum value. | |
| common::Result< double > | variance (const std::vector< double > &data) |
| Calculate variance of elements. | |
| common::Result< statistical_summary > | compute_summary (const std::vector< double > &data) |
| Compute full statistical summary. | |
| const simd_capabilities & | get_capabilities () const |
| Get SIMD capabilities. | |
| common::Result< bool > | test_simd () |
| Self-test SIMD functionality. | |
| const simd_aggregator_statistics & | get_statistics () const |
| Get aggregator statistics. | |
| void | reset_statistics () |
| Reset statistics. | |
Private Member Functions | |
| bool | should_use_simd (size_t data_size) const |
| double | sum_scalar (const std::vector< double > &data) const |
| double | sum_simd (const std::vector< double > &data) const |
| double | min_scalar (const std::vector< double > &data) const |
| double | min_simd (const std::vector< double > &data) const |
| double | max_scalar (const std::vector< double > &data) const |
| double | max_simd (const std::vector< double > &data) const |
Private Attributes | |
| simd_config | config_ |
| simd_capabilities | capabilities_ |
| simd_aggregator_statistics | stats_ |
SIMD-accelerated statistical aggregator.
This class provides high-performance statistical operations using SIMD (Single Instruction Multiple Data) instructions when available. Falls back to scalar operations when SIMD is not available or disabled.
Definition at line 189 of file simd_aggregator.h.
|
inline |
Default constructor with default configuration.
Definition at line 194 of file simd_aggregator.h.
|
inlineexplicit |
Construct with configuration.
| config | Aggregator configuration |
Definition at line 200 of file simd_aggregator.h.
|
inline |
Compute full statistical summary.
| data | Input data vector |
Definition at line 335 of file simd_aggregator.h.
References kcenon::monitoring::statistical_summary::count, kcenon::monitoring::invalid_argument, max(), min(), kcenon::monitoring::operation_failed, sum(), kcenon::monitoring::summary, and variance().
Referenced by TEST_F(), TEST_F(), TEST_F(), and TEST_F().


|
inline |
Get SIMD capabilities.
Definition at line 378 of file simd_aggregator.h.
References capabilities_.
Referenced by TEST_F(), and TEST_F().

|
inline |
Get aggregator statistics.
Definition at line 430 of file simd_aggregator.h.
References stats_.
Referenced by TEST_F(), TEST_F(), and TEST_F().

|
inline |
Find maximum value.
| data | Input data vector |
Definition at line 279 of file simd_aggregator.h.
References kcenon::monitoring::invalid_argument, max_scalar(), max_simd(), kcenon::monitoring::simd_aggregator_statistics::scalar_operations, should_use_simd(), kcenon::monitoring::simd_aggregator_statistics::simd_operations, stats_, kcenon::monitoring::simd_aggregator_statistics::total_elements_processed, and kcenon::monitoring::simd_aggregator_statistics::total_operations.
Referenced by compute_summary(), TEST_F(), TEST_F(), and test_simd().


|
inlineprivate |
Definition at line 596 of file simd_aggregator.h.
Referenced by max(), and max_simd().

|
inlineprivate |
Definition at line 600 of file simd_aggregator.h.
References max_scalar().
Referenced by max().


|
inline |
Calculate mean of elements.
| data | Input data vector |
Definition at line 235 of file simd_aggregator.h.
References kcenon::monitoring::invalid_argument, and sum().
Referenced by TEST_F(), TEST_F(), TEST_F(), test_simd(), and variance().


|
inline |
Find minimum value.
| data | Input data vector |
Definition at line 253 of file simd_aggregator.h.
References kcenon::monitoring::invalid_argument, min_scalar(), min_simd(), kcenon::monitoring::simd_aggregator_statistics::scalar_operations, should_use_simd(), kcenon::monitoring::simd_aggregator_statistics::simd_operations, stats_, kcenon::monitoring::simd_aggregator_statistics::total_elements_processed, and kcenon::monitoring::simd_aggregator_statistics::total_operations.
Referenced by compute_summary(), TEST_F(), TEST_F(), and test_simd().


|
inlineprivate |
Definition at line 528 of file simd_aggregator.h.
Referenced by min(), and min_simd().

|
inlineprivate |
Definition at line 532 of file simd_aggregator.h.
References min_scalar().
Referenced by min().


|
inline |
Reset statistics.
Definition at line 437 of file simd_aggregator.h.
References kcenon::monitoring::simd_aggregator_statistics::reset(), and stats_.

|
inlineprivate |
Definition at line 442 of file simd_aggregator.h.
References kcenon::monitoring::simd_capabilities::avx2_available, capabilities_, config_, kcenon::monitoring::simd_config::enable_simd, kcenon::monitoring::simd_capabilities::neon_available, kcenon::monitoring::simd_capabilities::sse2_available, and kcenon::monitoring::simd_config::vector_size.
Referenced by max(), min(), and sum().

|
inline |
Calculate sum of elements.
| data | Input data vector |
Definition at line 209 of file simd_aggregator.h.
References kcenon::monitoring::invalid_argument, kcenon::monitoring::simd_aggregator_statistics::scalar_operations, should_use_simd(), kcenon::monitoring::simd_aggregator_statistics::simd_operations, stats_, sum_scalar(), sum_simd(), kcenon::monitoring::simd_aggregator_statistics::total_elements_processed, and kcenon::monitoring::simd_aggregator_statistics::total_operations.
Referenced by compute_summary(), mean(), TEST_F(), TEST_F(), TEST_F(), and test_simd().


|
inlineprivate |
Definition at line 458 of file simd_aggregator.h.
Referenced by sum(), and sum_simd().

|
inlineprivate |
Definition at line 462 of file simd_aggregator.h.
References sum_scalar().
Referenced by sum().


|
inline |
Self-test SIMD functionality.
Definition at line 386 of file simd_aggregator.h.
References max(), mean(), min(), and sum().
Referenced by TEST_F().


|
inline |
Calculate variance of elements.
| data | Input data vector |
Definition at line 305 of file simd_aggregator.h.
References kcenon::monitoring::invalid_argument, and mean().
Referenced by compute_summary(), TEST_F(), TEST_F(), and TEST_F().


|
private |
Definition at line 665 of file simd_aggregator.h.
Referenced by get_capabilities(), and should_use_simd().
|
private |
Definition at line 664 of file simd_aggregator.h.
Referenced by should_use_simd().
|
mutableprivate |
Definition at line 666 of file simd_aggregator.h.
Referenced by get_statistics(), max(), min(), reset_statistics(), and sum().