Scheduler-test: fix feedback adjustments for breaking point search
Various misconceptions identified in the feedback path of the test algorithm. - statistics are cumulative, which must be incorporated by norming on time base - average concurrency includes idle times, which is besides the point within this test setup, since additional wait-phases are injected when reducing stress
This commit is contained in:
parent
f8a6b7d875
commit
ff39aed7ea
2 changed files with 62 additions and 3 deletions
|
|
@ -1964,7 +1964,9 @@ namespace test {
|
|||
ENSURE (0.0 < stat.avgConcurrency);
|
||||
if (not concurrency)
|
||||
concurrency = defaultConcurrency();
|
||||
double formFac = concurrency / stat.avgConcurrency;
|
||||
double worktimeRatio = 1 - stat.timeAtConc(0) / stat.coveredTime;
|
||||
double workConcurrency = stat.avgConcurrency / worktimeRatio;
|
||||
double formFac = concurrency / workConcurrency;
|
||||
double expectedNodeTime = _uSec(compuLoad_->timeBase) * chainLoad_.getWeightSum() / chainLoad_.size();
|
||||
double realAvgNodeTime = stat.activeTime / stat.activationCnt;
|
||||
formFac *= realAvgNodeTime / expectedNodeTime;
|
||||
|
|
|
|||
|
|
@ -111473,8 +111473,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1708268487001" ID="ID_1962998809" MODIFIED="1708268499603" TEXT="wird erst während der Messung entdeckt"/>
|
||||
<node CREATED="1708268571343" ID="ID_1673801414" MODIFIED="1708268584520" TEXT="verschiebt dann das Koordinatensystem der Prozeßsteuerung"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1708268586535" ID="ID_551006374" MODIFIED="1708268594038" TEXT="trotzdem mal versuchen....">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1708268586535" ID="ID_551006374" MODIFIED="1708295680878" TEXT="trotzdem mal versuchen....">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1708268601529" ID="ID_202306919" MODIFIED="1708268614652" TEXT="das »adaptedSchedule« wendet die concurrency als Faktor an"/>
|
||||
<node CREATED="1708268615552" ID="ID_632780223" MODIFIED="1708271692425" TEXT="das ließe sich durchaus auf einen double-Factor erweitern"/>
|
||||
<node CREATED="1708268931885" ID="ID_1552422918" MODIFIED="1708268969085" TEXT="StressTestRig: wird in configureTest() gesetzt ⟹ einmal pro Such-Iteration ⟹ machbar"/>
|
||||
|
|
@ -111578,6 +111578,63 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1708275070790" ID="ID_989990379" MODIFIED="1708275106286" TEXT="Konsequenz: Anpassung des Schedule sollte graduell konvergieren"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1708295682057" ID="ID_1692984155" MODIFIED="1708295686540" TEXT="Verhalten im Test">
|
||||
<node COLOR="#435e98" CREATED="1708295760082" ID="ID_1240131502" MODIFIED="1708295777613" TEXT="kumulierte Statistik nicht berücksichtigt">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1708295779333" ID="ID_34626875" MODIFIED="1708295812603" TEXT="Zeit und Summen werden ja nicht zurückgesetzt"/>
|
||||
<node COLOR="#338800" CREATED="1708295813468" ID="ID_1507563885" MODIFIED="1708295836517" TEXT="⟹ muß deshalb Zahlen pro Einzel-Node für den Form-Faktor verwenden">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1708295687648" ID="ID_682775948" MODIFIED="1708349379180" TEXT="Test »bleibt stehen«">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1708295702858" ID="ID_258930052" MODIFIED="1708295742659" TEXT="es gibt einen Mitkopplungs-Effekt ⟹ Formfaktor wächst ⟹ jeder Lauf langsamer"/>
|
||||
<node CREATED="1708295743401" ID="ID_230451568" MODIFIED="1708295757171" TEXT="irgendwann überfahren wir die Job-Deadline, und dann bleibt der Test hängen"/>
|
||||
<node CREATED="1708295846603" ID="ID_1947551102" MODIFIED="1708295857565" TEXT="DUMP-Meldungen">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1708295964651" ID="ID_241554636" MODIFIED="1708295983421" TEXT="∅ effektive Node-Zeit wächst nur langsam"/>
|
||||
<node CREATED="1708295984033" ID="ID_1010216128" MODIFIED="1708296000786" TEXT="aber die ∅ concurrency fällt dramatisch ab"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e6c9a4" COLOR="#435e98" CREATED="1708296014717" ID="ID_749085907" MODIFIED="1708349373890" TEXT="HA! in der ∅ concurrency sind die Warte-Zeiten mit eingegangen">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1708345022705" ID="ID_1143491465" MODIFIED="1708345039650" TEXT="brauche Concurrency ohne Idle-Zeit">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1708345040691" ID="ID_243180673" MODIFIED="1708345050458" TEXT="avgConcurrency ist ein weighted mean">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1708345053649" ID="ID_845062714" MODIFIED="1708349203055" TEXT="Lösung: das Idle-Segment herausnehmen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1708345073510" ID="ID_284075777" MODIFIED="1708345088600" TEXT="das geht einfach, da die gewichtete contribution = 0 ist"/>
|
||||
<node CREATED="1708345165853" ID="ID_1106049863" MODIFIED="1708345181268" TEXT="deshalb müssen wir nur den Beitrag zu den Gewichten im Nenner korrigieren"/>
|
||||
<node CREATED="1708345329636" ID="ID_1055831436" MODIFIED="1708345344174" TEXT="läuft dafauf hinaus, den Nenner multiplikativ auszutauschen">
|
||||
<node CREATED="1708345367471" ID="ID_1498548070" MODIFIED="1708345379898" TEXT="volleZeit/reduzierteZeit"/>
|
||||
<node CREATED="1708345380620" ID="ID_672228264" MODIFIED="1708345417092" TEXT="= 1 / (1 - idle/volleZeit)"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1708349348629" ID="ID_1713239069" MODIFIED="1708349391340" STYLE="fork" TEXT="damit findet nun wirksame Regulierung statt">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1708349491714" ID="ID_761985075" MODIFIED="1708349513895" TEXT="Nachjustieren stört die Ablaufsteuerung">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1708349515240" ID="ID_310788329" MODIFIED="1708349569666" TEXT="Zeiten nehmen innerhalb der Testserie jeweils zu"/>
|
||||
<node CREATED="1708349570374" ID="ID_1868657338" MODIFIED="1708349595735" TEXT="die »expected time« wird vom letztlich erreichten Schedule abgenommen"/>
|
||||
<node CREATED="1708352037917" ID="ID_119857446" MODIFIED="1708352058342" TEXT="⟹ es ergibt sich meist ein negatives Delta"/>
|
||||
<node CREATED="1708352251527" ID="ID_1936092160" MODIFIED="1708352280508" TEXT="Triggerschwelle nicht erreicht (obwohl bereits in Sättigung)">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1708352281897" ID="ID_613936812" MODIFIED="1708352294651" TEXT="außerdem war ein Bug in der Ablaufsteuerung selber">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1708352301762" ID="ID_1952936030" MODIFIED="1708352316052" TEXT="die Vor-Phase hat nur einmal geprüft und nachjustiert"/>
|
||||
<node CREATED="1708352316775" ID="ID_507913615" MODIFIED="1708352327465" TEXT="damit war die Invariante schon zu Beginn verletzt"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1708352337965" ID="ID_872133168" MODIFIED="1708352355731" TEXT="Idee: den zuletzt verwendeten Form-Faktor als Startpunkt merken">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue