Scheduler-test: run breaking-point search with gradual adaptation
Integrating the changed logic into the StressTest-rig, with bugfixes
This commit is contained in:
parent
96df8b20f9
commit
f8a6b7d875
3 changed files with 7 additions and 6 deletions
|
|
@ -81,8 +81,8 @@ namespace test {
|
|||
{
|
||||
//smokeTest();
|
||||
// setup_systematicSchedule();
|
||||
// search_breaking_point();
|
||||
verify_instrumentation();
|
||||
search_breaking_point();
|
||||
// verify_instrumentation();
|
||||
// investigateWorkProcessing();
|
||||
walkingDeadline();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ namespace test {
|
|||
.withBaseExpense (CONF::BASE_EXPENSE)
|
||||
.withSchedNotify (CONF::SCHED_NOTIFY)
|
||||
.withSchedDepends(CONF::SCHED_DEPENDS)
|
||||
.withInstrumentation(CONF::INSTRUMENTATION) // side-effect: clear existing statistics
|
||||
.withInstrumentation(CONF::INSTRUMENTATION) // side-effect: clear existing statistics
|
||||
.withAdaptedSchedule(stressFac, CONF::CONCURRENCY);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ namespace test {
|
|||
const size_t DEFAULT_SIZ = 256; ///< default node count for the complete load graph
|
||||
|
||||
const auto SAFETY_TIMEOUT = 5s; ///< maximum time limit for test run, abort if exceeded
|
||||
const auto STANDARD_DEADLINE = 10ms; ///< deadline to use for each individual computation job
|
||||
const auto STANDARD_DEADLINE = 30ms; ///< deadline to use for each individual computation job
|
||||
const size_t DEFAULT_CHUNKSIZE = 64; ///< number of computation jobs to prepare in each planning round
|
||||
const double UPFRONT_PLANNING_BOOST = 2.6; ///< factor to increase the computed pre-roll to ensure up-front planning
|
||||
const size_t GRAPH_BENCHMARK_RUNS = 5; ///< repetition count for reference calculation of a complete node graph
|
||||
|
|
@ -1965,8 +1965,9 @@ namespace test {
|
|||
if (not concurrency)
|
||||
concurrency = defaultConcurrency();
|
||||
double formFac = concurrency / stat.avgConcurrency;
|
||||
double expectedCumulatedTime = _uSec(compuLoad_->timeBase) * chainLoad_.getWeightSum();
|
||||
formFac *= stat.activeTime / expectedCumulatedTime;
|
||||
double expectedNodeTime = _uSec(compuLoad_->timeBase) * chainLoad_.getWeightSum() / chainLoad_.size();
|
||||
double realAvgNodeTime = stat.activeTime / stat.activationCnt;
|
||||
formFac *= realAvgNodeTime / expectedNodeTime;
|
||||
return withAdaptedSchedule (stressFac, concurrency, formFac);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue