Lumiera  0.pre.03
»edit your freedom«
StressTestRig< maxFan > Class Template Reference

#include "/Werk/devel/lumi/tests/vault/gear/stress-test-rig.hpp"

Description

template<size_t maxFan = DEFAULT_FAN>
class vault::gear::test::StressTestRig< maxFan >

Configurable template framework for running Scheduler Stress tests Use to build a custom setup class, which is then injected to perform a specific measurement tool. Several tools and detailed customisations are available in namespace bench

Definition at line 174 of file stress-test-rig.hpp.

Public Types

using TestLoad = TestChainLoad< maxFan >
 
using TestSetup = typename TestLoad::ScheduleCtx
 

Static Public Member Functions

template<class CONF >
static auto with ()
 Entrance Point: build a stress test measurement setup using a dedicated TOOL class, takes the configuration CONF as template parameter and which is assumed to inherit (indirectly) from StressRig. More...
 

Static Public Attributes

static uint constexpr REPETITIONS {20}
 

Public Attributes

BlockFlowAlloc bFlow {}
 
uint CONCURRENCY = work::Config::getDefaultComputationCapacity()
 
double EPSILON = 0.01
 error bound to abort binary search
 
double FAIL_LIMIT = 2.0
 delta-limit when to count a run as failure
 
bool INSTRUMENTATION = true
 
Scheduler scheduler {bFlow, watch}
 
bool showRef = true
 calculate single threaded reference time
 
bool showRes = true
 print result data
 
bool showRuns = false
 print a line for each individual run
 
bool showStep = true
 print a line for each binary search step
 
double TRIGGER_DELTA = 2*FAIL_LIMIT
 in ms : criterion-3 average delta above this limit
 
double TRIGGER_FAIL = 0.55
 %-fact: criterion-1 failures above this rate
 
double TRIGGER_SDEV = FAIL_LIMIT
 in ms : criterion-2 standard derivation
 
double UPPER_STRESS = 1.7
 starting point for the upper limit, likely to fail
 
EngineObserver watch {}
 

Classes

struct  Launcher
 

Protected Member Functions

auto testLoad (size_t nodes=64)
 Extension point: build the computation topology for this test.
 
auto testSetup (TestLoad &testLoad)
 (optional) extension point: base configuration of the test ScheduleCtx More...
 

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Member Function Documentation

◆ with()

static auto with ( )
inlinestatic

Entrance Point: build a stress test measurement setup using a dedicated TOOL class, takes the configuration CONF as template parameter and which is assumed to inherit (indirectly) from StressRig.

Template Parameters
CONFspecialised subclass of StressRig with customisation
Returns
a builder to configure and then launch the actual test

Definition at line 191 of file stress-test-rig.hpp.

References Config::getDefaultComputationCapacity().

+ Here is the call graph for this function:

◆ testSetup()

auto testSetup ( TestLoad testLoad)
inlineprotected

(optional) extension point: base configuration of the test ScheduleCtx

Warning
the actual setup CONF is layered, beware of shadowing.

Definition at line 231 of file stress-test-rig.hpp.

References TestChainLoad< maxFan >::setupSchedule().

Referenced by SchedulerStress_test::investigateWorkProcessing(), BreakingPoint< CONF >::maybeAdaptScaleEmpirically(), and SchedulerStress_test::search_breaking_point().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:
+ Inheritance diagram for StressTestRig< maxFan >:
+ Collaboration diagram for StressTestRig< maxFan >:

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