Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::simd_aggregator_statistics Struct Reference

Statistics for SIMD aggregator operations. More...

#include <simd_aggregator.h>

Collaboration diagram for kcenon::monitoring::simd_aggregator_statistics:
Collaboration graph

Public Member Functions

 simd_aggregator_statistics ()=default
 
 simd_aggregator_statistics (const simd_aggregator_statistics &other)
 
simd_aggregator_statisticsoperator= (const simd_aggregator_statistics &other)
 
 simd_aggregator_statistics (simd_aggregator_statistics &&other) noexcept
 
simd_aggregator_statisticsoperator= (simd_aggregator_statistics &&other) noexcept
 
double get_simd_utilization () const
 Get SIMD utilization rate.
 
void reset ()
 Reset all statistics.
 

Public Attributes

std::atomic< size_t > total_operations {0}
 
std::atomic< size_t > simd_operations {0}
 
std::atomic< size_t > scalar_operations {0}
 
std::atomic< size_t > total_elements_processed {0}
 

Detailed Description

Statistics for SIMD aggregator operations.

Definition at line 120 of file simd_aggregator.h.

Constructor & Destructor Documentation

◆ simd_aggregator_statistics() [1/3]

kcenon::monitoring::simd_aggregator_statistics::simd_aggregator_statistics ( )
default

◆ simd_aggregator_statistics() [2/3]

kcenon::monitoring::simd_aggregator_statistics::simd_aggregator_statistics ( const simd_aggregator_statistics & other)
inline

Definition at line 127 of file simd_aggregator.h.

128 : total_operations(other.total_operations.load())
129 , simd_operations(other.simd_operations.load())
130 , scalar_operations(other.scalar_operations.load())
131 , total_elements_processed(other.total_elements_processed.load()) {}

◆ simd_aggregator_statistics() [3/3]

kcenon::monitoring::simd_aggregator_statistics::simd_aggregator_statistics ( simd_aggregator_statistics && other)
inlinenoexcept

Definition at line 143 of file simd_aggregator.h.

144 : total_operations(other.total_operations.load())
145 , simd_operations(other.simd_operations.load())
146 , scalar_operations(other.scalar_operations.load())
147 , total_elements_processed(other.total_elements_processed.load()) {}

Member Function Documentation

◆ get_simd_utilization()

double kcenon::monitoring::simd_aggregator_statistics::get_simd_utilization ( ) const
inline

Get SIMD utilization rate.

Returns
Percentage of operations using SIMD (0.0 to 100.0)

Definition at line 163 of file simd_aggregator.h.

163 {
164 auto total = total_operations.load();
165 if (total == 0) {
166 return 0.0;
167 }
168 return (static_cast<double>(simd_operations.load()) / static_cast<double>(total)) * 100.0;
169 }

References simd_operations, and total_operations.

◆ operator=() [1/2]

simd_aggregator_statistics & kcenon::monitoring::simd_aggregator_statistics::operator= ( const simd_aggregator_statistics & other)
inline

Definition at line 133 of file simd_aggregator.h.

133 {
134 if (this != &other) {
135 total_operations.store(other.total_operations.load());
136 simd_operations.store(other.simd_operations.load());
137 scalar_operations.store(other.scalar_operations.load());
138 total_elements_processed.store(other.total_elements_processed.load());
139 }
140 return *this;
141 }

References kcenon::monitoring::other, scalar_operations, simd_operations, total_elements_processed, and total_operations.

◆ operator=() [2/2]

simd_aggregator_statistics & kcenon::monitoring::simd_aggregator_statistics::operator= ( simd_aggregator_statistics && other)
inlinenoexcept

Definition at line 149 of file simd_aggregator.h.

149 {
150 if (this != &other) {
151 total_operations.store(other.total_operations.load());
152 simd_operations.store(other.simd_operations.load());
153 scalar_operations.store(other.scalar_operations.load());
154 total_elements_processed.store(other.total_elements_processed.load());
155 }
156 return *this;
157 }

References kcenon::monitoring::other, scalar_operations, simd_operations, total_elements_processed, and total_operations.

◆ reset()

void kcenon::monitoring::simd_aggregator_statistics::reset ( )
inline

Reset all statistics.

Definition at line 174 of file simd_aggregator.h.

174 {
175 total_operations.store(0);
176 simd_operations.store(0);
177 scalar_operations.store(0);
179 }

References scalar_operations, simd_operations, total_elements_processed, and total_operations.

Referenced by kcenon::monitoring::simd_aggregator::reset_statistics().

Here is the caller graph for this function:

Member Data Documentation

◆ scalar_operations

std::atomic<size_t> kcenon::monitoring::simd_aggregator_statistics::scalar_operations {0}

◆ simd_operations

std::atomic<size_t> kcenon::monitoring::simd_aggregator_statistics::simd_operations {0}

◆ total_elements_processed

std::atomic<size_t> kcenon::monitoring::simd_aggregator_statistics::total_elements_processed {0}

◆ total_operations

std::atomic<size_t> kcenon::monitoring::simd_aggregator_statistics::total_operations {0}

The documentation for this struct was generated from the following file: