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:
Fischlurch 2024-02-19 15:24:12 +01:00
parent f8a6b7d875
commit ff39aed7ea
2 changed files with 62 additions and 3 deletions

View file

@ -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;

View file

@ -111473,8 +111473,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1708268487001" ID="ID_1962998809" MODIFIED="1708268499603" TEXT="wird erst w&#xe4;hrend der Messung entdeckt"/>
<node CREATED="1708268571343" ID="ID_1673801414" MODIFIED="1708268584520" TEXT="verschiebt dann das Koordinatensystem der Proze&#xdf;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 &#xbb;adaptedSchedule&#xab; wendet die concurrency als Faktor an"/>
<node CREATED="1708268615552" ID="ID_632780223" MODIFIED="1708271692425" TEXT="das lie&#xdf;e sich durchaus auf einen double-Factor erweitern"/>
<node CREATED="1708268931885" ID="ID_1552422918" MODIFIED="1708268969085" TEXT="StressTestRig: wird in configureTest() gesetzt &#x27f9; einmal pro Such-Iteration &#x27f9; machbar"/>
@ -111578,6 +111578,63 @@ Date:&#160;&#160;&#160;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&#xfc;cksichtigt">
<icon BUILTIN="broken-line"/>
<node CREATED="1708295779333" ID="ID_34626875" MODIFIED="1708295812603" TEXT="Zeit und Summen werden ja nicht zur&#xfc;ckgesetzt"/>
<node COLOR="#338800" CREATED="1708295813468" ID="ID_1507563885" MODIFIED="1708295836517" TEXT="&#x27f9; mu&#xdf; deshalb Zahlen pro Einzel-Node f&#xfc;r den Form-Faktor verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1708295687648" ID="ID_682775948" MODIFIED="1708349379180" TEXT="Test &#xbb;bleibt stehen&#xab;">
<icon BUILTIN="broken-line"/>
<node CREATED="1708295702858" ID="ID_258930052" MODIFIED="1708295742659" TEXT="es gibt einen Mitkopplungs-Effekt &#x27f9; Formfaktor w&#xe4;chst &#x27f9; jeder Lauf langsamer"/>
<node CREATED="1708295743401" ID="ID_230451568" MODIFIED="1708295757171" TEXT="irgendwann &#xfc;berfahren wir die Job-Deadline, und dann bleibt der Test h&#xe4;ngen"/>
<node CREATED="1708295846603" ID="ID_1947551102" MODIFIED="1708295857565" TEXT="DUMP-Meldungen">
<icon BUILTIN="forward"/>
<node CREATED="1708295964651" ID="ID_241554636" MODIFIED="1708295983421" TEXT="&#x2205; effektive Node-Zeit w&#xe4;chst nur langsam"/>
<node CREATED="1708295984033" ID="ID_1010216128" MODIFIED="1708296000786" TEXT="aber die &#x2205; concurrency f&#xe4;llt dramatisch ab"/>
</node>
<node BACKGROUND_COLOR="#e6c9a4" COLOR="#435e98" CREATED="1708296014717" ID="ID_749085907" MODIFIED="1708349373890" TEXT="HA! in der &#x2205; 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&#xf6;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&#xfc;ssen wir nur den Beitrag zu den Gewichten im Nenner korrigieren"/>
<node CREATED="1708345329636" ID="ID_1055831436" MODIFIED="1708345344174" TEXT="l&#xe4;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&#xf6;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 &#xbb;expected time&#xab; wird vom letztlich erreichten Schedule abgenommen"/>
<node CREATED="1708352037917" ID="ID_119857446" MODIFIED="1708352058342" TEXT="&#x27f9; es ergibt sich meist ein negatives Delta"/>
<node CREATED="1708352251527" ID="ID_1936092160" MODIFIED="1708352280508" TEXT="Triggerschwelle nicht erreicht (obwohl bereits in S&#xe4;ttigung)">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1708352281897" ID="ID_613936812" MODIFIED="1708352294651" TEXT="au&#xdf;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&#xfc;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>