Scheduler-test: stable-state run > 1sec

This test completes the stress-testing effort
and summarises the findings
 * Scheduler performs within relevant parameter range without significant overhead
 * Scheduler can operate with full load in stable state, with 100% correct result
This commit is contained in:
Fischlurch 2024-04-18 01:38:36 +02:00
parent 177e241060
commit a46449d5ac
2 changed files with 150 additions and 67 deletions

View file

@ -515,6 +515,48 @@ cout << "time="<<runTime/1000
SHOW_EXPR(stress)
SHOW_EXPR(delta)
SHOW_EXPR(time)
/* ========== verify extended stable operation ============== */
// Use the same pattern, but extended to 4 times the length;
// moreover, this time planning and execution will be interviened.
TestChainLoad<8> testLoad{1024};
testLoad.seedingRule(testLoad.rule().probability(0.6).maxVal(2))
.pruningRule(testLoad.rule().probability(0.44))
.weightRule(testLoad.value(1))
.setSeed(60)
.buildTopology()
// .printTopologyDOT()
// .printTopologyStatistics()
;
size_t expectedHash = testLoad.getHash();
TRANSIENTLY(work::Config::COMPUTATION_CAPACITY) = 4;
BlockFlowAlloc bFlow;
EngineObserver watch;
Scheduler scheduler{bFlow, watch};
auto testSetup =
testLoad.setupSchedule(scheduler)
.withLoadTimeBase(5ms)
.withJobDeadline(50ms) // ◁───────────────────── deadline is way shorter than overall run time
.withChunkSize(32) // ◁───────────────────── planning of the next 32 nodes interleaved with performance
.withInstrumentation()
.withAdaptedSchedule (1.0, 4); // ◁───────────────────── stress factor 1.0 and 4 workers
double runTime = testSetup.launch_and_wait();
auto stat = testSetup.getInvocationStatistic();
SHOW_EXPR(runTime)
SHOW_EXPR(stat.activeTime);
SHOW_EXPR(stat.coveredTime);
SHOW_EXPR(stat.activationCnt);
SHOW_EXPR(stat.avgConcurrency);
SHOW_EXPR(expectedHash)
SHOW_EXPR(testLoad.getHash());
CHECK (stat.activationCnt == 1024);
CHECK (expectedHash == testLoad.getHash());
CHECK (3.2 < stat.avgConcurrency);
CHECK (stat.coveredTime < 5 * time*1000);
}
};

View file

@ -96143,10 +96143,10 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1688337200875" ID="ID_1251284763" MODIFIED="1697735887738" TEXT="Nonfunktionale Anforderungen">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697473158929" ID="ID_555722340" MODIFIED="1697493162215" TEXT="Aufgaben">
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1697473158929" ID="ID_555722340" MODIFIED="1713396227433" TEXT="Aufgaben">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733005253" ID="ID_284566035" MODIFIED="1697735902191" TEXT="Leerlauf-Stresstest">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#5b280f" CREATED="1697733005253" ID="ID_284566035" MODIFIED="1713396251815" TEXT="Leerlauf-Stresstest">
<icon BUILTIN="button_cancel"/>
<node CREATED="1697733279313" ID="ID_1511632308" MODIFIED="1697734150888" TEXT="Ziel: Feststellen des Implementierungs-Overhead">
<richcontent TYPE="NOTE"><html>
<head/>
@ -96203,9 +96203,33 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node COLOR="#5b280f" CREATED="1713396243570" ID="ID_1225850212" MODIFIED="1713396266285">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
Fazit: ist direkt <b>nicht m&#246;glich</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
<node CREATED="1713396268468" ID="ID_1180690858" MODIFIED="1713396289347" TEXT="im leer laufende Scheduler tritt massive Contention auf"/>
<node CREATED="1713396290001" ID="ID_1399024004" MODIFIED="1713396304675" TEXT="deshalb reguliert dieser sofort die Work-Load herunter"/>
<node CREATED="1713396308295" ID="ID_817984974" MODIFIED="1713396320382" TEXT="man kann einen Scheduling-Overhead nur indirekt messen">
<node CREATED="1713396322917" ID="ID_381455857" MODIFIED="1713396332136" TEXT="und zwar durch lineare Regression"/>
<node CREATED="1713396333100" ID="ID_1578509446" MODIFIED="1713396339430" TEXT="sowie durch Einzel-Instrumentierung"/>
<node CREATED="1713396340803" ID="ID_8366028" MODIFIED="1713396389818" TEXT="Ergebnisse">
<icon BUILTIN="forward"/>
<node CREATED="1713396344594" ID="ID_959505542" MODIFIED="1713396358148" TEXT="Debug-Build: 100&#xb5;s / Job Admin-Overhead"/>
<node CREATED="1713396359704" ID="ID_778877296" MODIFIED="1713396551365" TEXT="Lastspitze: Sockel-Latenz 5ms">
<arrowlink COLOR="#366e86" DESTINATION="ID_1180966664" ENDARROW="Default" ENDINCLINATION="2713;-145;" ID="Arrow_ID_36903408" STARTARROW="None" STARTINCLINATION="769;75;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733137628" ID="ID_1249232397" MODIFIED="1697733148339" TEXT="Dependency-Notification-Stresstest">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1697733137628" ID="ID_1249232397" MODIFIED="1713396220589" TEXT="Dependency-Notification-Stresstest">
<icon BUILTIN="button_ok"/>
<node CREATED="1697733314115" ID="ID_537940927" MODIFIED="1697736103683" TEXT="Ziel: Overhead exzessiv vernetzter Activities">
<richcontent TYPE="NOTE"><html>
<head/>
@ -96217,20 +96241,23 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733236455" ID="ID_698621499" MODIFIED="1713110634092" TEXT="Realistic Full-Load Test">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1697733438012" ID="ID_18653531" MODIFIED="1697733448582" TEXT="Ziel: Vollast unter Zeitbeschr&#xe4;nkung"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1704765993176" ID="ID_549174207" MODIFIED="1713110710552" TEXT="Zwischenziel: hohe Auslastung im Test erreichen">
<node COLOR="#338800" CREATED="1697733236455" ID="ID_698621499" MODIFIED="1713396215222" TEXT="Realistic Full-Load Test">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1697733438012" ID="ID_18653531" MODIFIED="1713396679603" TEXT="Ziel: Vollast unter Zeitbeschr&#xe4;nkung">
<arrowlink COLOR="#2b4ed5" DESTINATION="ID_180484606" ENDARROW="Default" ENDINCLINATION="-1521;-88;" ID="Arrow_ID_994676785" STARTARROW="None" STARTINCLINATION="1715;133;"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#435e98" CREATED="1704765993176" ID="ID_549174207" MODIFIED="1713396212604" TEXT="Zwischenziel: hohe Auslastung im Test erreichen">
<arrowlink COLOR="#3832ae" DESTINATION="ID_161148852" ENDARROW="Default" ENDINCLINATION="-712;-56;" ID="Arrow_ID_1703930922" STARTARROW="None" STARTINCLINATION="333;19;"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1704765993176" ID="ID_1479474389" MODIFIED="1713110700090" TEXT="Ziel: Auslastung kontrolliert aufrechterhalten">
<node COLOR="#435e98" CREATED="1704765993176" ID="ID_1479474389" MODIFIED="1713396212604" TEXT="Ziel: Auslastung kontrolliert aufrechterhalten">
<arrowlink COLOR="#3832ae" DESTINATION="ID_1350821310" ENDARROW="Default" ENDINCLINATION="-712;-56;" ID="Arrow_ID_320251207" STARTARROW="None" STARTINCLINATION="289;17;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697736109528" ID="ID_1697493338" MODIFIED="1697736119264" TEXT="Correctness under Load">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1697736109528" ID="ID_1697493338" MODIFIED="1713396224580" TEXT="Correctness under Load">
<icon BUILTIN="button_ok"/>
<node CREATED="1697736121279" ID="ID_1940006605" MODIFIED="1697736240729" TEXT="Ziel: Fehler in der Ausf&#xfc;hrungslogik ausschlie&#xdf;en">
<richcontent TYPE="NOTE"><html>
<head/>
@ -111045,9 +111072,22 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1704288869866" ID="ID_1475817699" MODIFIED="1704288911093" TEXT="Aufgabe: Belegen der grunds&#xe4;tzlichen Tauglichkeit"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1704288897590" ID="ID_1251840457" MODIFIED="1704288911094" TEXT="Parameter + Grenzen f&#xfc;r eine Standard-Last herausfinden"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1704766027439" ID="ID_161148852" MODIFIED="1704919268932" TEXT="Untersuchung-1: hohe Auslastung">
<node COLOR="#338800" CREATED="1713396014111" ID="ID_1019016849" MODIFIED="1713396034218" TEXT="Untersuchung-1 : breaking point">
<icon BUILTIN="button_ok"/>
<node CREATED="1713396038322" ID="ID_1450935505" MODIFIED="1713396053775" TEXT="habe ich praktisch schon mit dem Aufbau der Me&#xdf;anordnung abgeschlossen"/>
<node COLOR="#435e98" CREATED="1713396054528" ID="ID_333816634" MODIFIED="1713396142477" TEXT="Fazit">
<icon BUILTIN="forward"/>
<node CREATED="1713396084356" ID="ID_325066175" MODIFIED="1713396094117" TEXT="nach Kompensation keine erkennbare Ineffizienz"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1713396094947" ID="ID_1375967262" MODIFIED="1713396114104" TEXT="Einschr&#xe4;nkung: Ausreichend lange Job-Zeiten">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1713396115686" ID="ID_1422695537" MODIFIED="1713396118692" TEXT="sonst Contention"/>
<node CREATED="1713396119136" ID="ID_1758311668" MODIFIED="1713396137569" TEXT="bei Contention degradiert des Verhalten"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1704766027439" ID="ID_161148852" MODIFIED="1713396148543" TEXT="Untersuchung-2: hohe Auslastung">
<linktarget COLOR="#3832ae" DESTINATION="ID_161148852" ENDARROW="Default" ENDINCLINATION="-712;-56;" ID="Arrow_ID_1703930922" SOURCE="ID_549174207" STARTARROW="None" STARTINCLINATION="333;19;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1704766160781" ID="ID_1879705815" MODIFIED="1704766424803" TEXT="bisher ging es um Dependency-Management &#x2014; nun geht es um &#xbb;Last&#xab;">
<richcontent TYPE="NOTE"><html>
<head/>
@ -111058,7 +111098,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</body>
</html></richcontent>
</node>
<node CREATED="1704766425859" ID="ID_819162648" MODIFIED="1704766437260" TEXT="geeignetes Last-Pattern aufbauen">
<node COLOR="#338800" CREATED="1704766425859" ID="ID_819162648" MODIFIED="1713395967646" TEXT="geeignetes Last-Pattern aufbauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1704766438235" FOLDED="true" ID="ID_49179977" MODIFIED="1713111210424" TEXT="Idee: repetitive Pattern + Breiten-Limitierung">
<linktarget COLOR="#4c5ab8" DESTINATION="ID_49179977" ENDARROW="Default" ENDINCLINATION="-515;1146;" ID="Arrow_ID_640223049" SOURCE="ID_1751068516" STARTARROW="None" STARTINCLINATION="-64;-3;"/>
<linktarget COLOR="#4c5ab8" DESTINATION="ID_49179977" ENDARROW="Default" ENDINCLINATION="-549;1037;" ID="Arrow_ID_1912342428" SOURCE="ID_128782461" STARTARROW="None" STARTINCLINATION="-322;0;"/>
@ -111207,8 +111248,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1707665539100" ID="ID_1559912536" MODIFIED="1707665551400" TEXT="Erkennen gravierender Defekte"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1707695734022" ID="ID_726373855" MODIFIED="1707695741504" TEXT="praktische Aufgaben">
<icon BUILTIN="flag-yellow"/>
</node>
<node COLOR="#338800" CREATED="1707695734022" ID="ID_726373855" MODIFIED="1713395974212" TEXT="praktische Aufgaben">
<icon BUILTIN="button_ok"/>
<node COLOR="#5b280f" CREATED="1707695742692" ID="ID_534550855" MODIFIED="1707753814309" TEXT="Instrumentierung in die ComputationalLoad">
<icon BUILTIN="button_cancel"/>
<node CREATED="1707695763705" ID="ID_173852025" MODIFIED="1707754003327" TEXT="Zweck: &#x2205; Abweichung unter Real-Bedingungen">
@ -111946,8 +111988,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1708651353088" ID="ID_9850721" MODIFIED="1708651367397" TEXT="erg&#xe4;nzende Me&#xdf;methode : lineare Regression">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1708651353088" ID="ID_9850721" MODIFIED="1713395976731" TEXT="erg&#xe4;nzende Me&#xdf;methode : lineare Regression">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1708651381229" ID="ID_34422716" MODIFIED="1712594284191" TEXT="Ansatz: Verhaltesmuster durch anderen Me&#xdf;-Ansatz best&#xe4;tigen">
<icon BUILTIN="idea"/>
<node CREATED="1708651455035" ID="ID_154910298" MODIFIED="1708651476794" TEXT="das Kriterium &#xbb;Schedule gebrochen&#xab; ist sehr spezifisch">
@ -115206,8 +115248,8 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
<node CREATED="1712241515362" ID="ID_326943240" MODIFIED="1712241527541" TEXT="kann durchaus auch regul&#xe4;res Schedule sein"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1708744078861" ID="ID_1023448351" MODIFIED="1708744085468" TEXT="Integration / Untersuchungen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1708744078861" ID="ID_1023448351" MODIFIED="1713395977994" TEXT="Integration / Untersuchungen">
<icon BUILTIN="button_ok"/>
<node CREATED="1708744086675" ID="ID_551606292" MODIFIED="1708744105373" TEXT="erster Me&#xdf;lauf">
<node CREATED="1708744106371" ID="ID_508772586" MODIFIED="1708744111228" TEXT="20 Punkte 2...64"/>
<node CREATED="1708744112098" ID="ID_179043543" MODIFIED="1708744119235" TEXT="Parameter: ist Anzahl Nodes"/>
@ -115240,8 +115282,8 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
<node CREATED="1709834544352" ID="ID_620498652" MODIFIED="1709834560018" TEXT="einen definierten R&#xfc;ckstau abarbeiten"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1709834048527" ID="ID_1151259698" MODIFIED="1709834057668" TEXT="Messung mit m&#xf6;glichst elastischem Schedule">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1709834048527" ID="ID_1151259698" MODIFIED="1713395917669" TEXT="Messung mit m&#xf6;glichst elastischem Schedule">
<icon BUILTIN="button_ok"/>
<node CREATED="1709834821867" ID="ID_1521098376" MODIFIED="1709834828031" TEXT="Eigenschaften des Schedule">
<node CREATED="1709834829355" ID="ID_736433278" MODIFIED="1709834836157" TEXT="keine Abh&#xe4;ngigkeiten"/>
<node CREATED="1709834836811" ID="ID_1468908878" MODIFIED="1709834863174" TEXT="Vollauslastung durch &#xdc;berschu&#xdf; von Jobs">
@ -115453,9 +115495,8 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1704915305240" ID="ID_466567694" MODIFIED="1704915313937" TEXT="Untersuchung im Stress-Test-Rig">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1704915305240" ID="ID_466567694" MODIFIED="1713396152943" TEXT="Untersuchung im Stress-Test-Rig">
<icon BUILTIN="button_ok"/>
<node CREATED="1712595168957" ID="ID_1322573597" MODIFIED="1712595178892" TEXT="Last-Pattern">
<icon BUILTIN="info"/>
<node CREATED="1712595181747" ID="ID_1751068516" MODIFIED="1712595247094" TEXT="spezielle &#xbb;kleine Graphen&#xab;">
@ -116247,20 +116288,21 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1704766027439" ID="ID_1350821310" MODIFIED="1713110695900" TEXT="Untersuchung-2: steady work state">
<node COLOR="#338800" CREATED="1704766027439" ID="ID_1350821310" MODIFIED="1713396206156" TEXT="Untersuchung-3: steady work state">
<linktarget COLOR="#3832ae" DESTINATION="ID_1350821310" ENDARROW="Default" ENDINCLINATION="-712;-56;" ID="Arrow_ID_320251207" SOURCE="ID_1479474389" STARTARROW="None" STARTINCLINATION="289;17;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1713110807801" ID="ID_11893474" MODIFIED="1713110819844" TEXT="Aufgabe weiterhin: geeignete Last aufbauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1713110807801" ID="ID_11893474" MODIFIED="1713396168404" TEXT="Aufgabe weiterhin: geeignete Last aufbauen">
<icon BUILTIN="yes"/>
<node CREATED="1712595181747" ID="ID_128782461" MODIFIED="1713110946545" TEXT="gehe wieder von den &#xbb;kleine Graphen&#xab; aus">
<arrowlink COLOR="#4c5ab8" DESTINATION="ID_49179977" ENDARROW="Default" ENDINCLINATION="-549;1037;" ID="Arrow_ID_1912342428" STARTARROW="None" STARTINCLINATION="-322;0;"/>
<node CREATED="1713111325229" ID="ID_1211516688" MODIFIED="1713111338663" TEXT="1. Ansatz: Breitenbeschr&#xe4;nkung nutzen">
</node>
<node CREATED="1713111325229" ID="ID_1211516688" MODIFIED="1713396177020" TEXT="Ansatz: Breitenbeschr&#xe4;nkung nutzen">
<node CREATED="1713111339939" ID="ID_908498578" MODIFIED="1713111348070" TEXT="verwende Graph-3: massiv-parallel"/>
<node CREATED="1713111348923" ID="ID_640317274" MODIFIED="1713111360772" TEXT="Chain-Load ist auf 8 Nodes beschr&#xe4;nkt"/>
<node CREATED="1713111370079" ID="ID_1165922148" MODIFIED="1713111383009" TEXT="es ergeben sich 7.53 Nodes / Level"/>
<node CREATED="1713111361384" ID="ID_1183485948" MODIFIED="1713111367309" TEXT="rechne mit 8 Kernen"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1713110964437" ID="ID_1985468535" MODIFIED="1713392925805" TEXT="Beobachtung wieder im Stress-Test-Rig">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#338800" CREATED="1713111196126" ID="ID_850536834" MODIFIED="1713392920805" TEXT="6.Test">
@ -116356,9 +116398,7 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
es ist und bleibt ein Kompromi&#223;....
@ -116367,8 +116407,7 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
Ich versuche hier, eine sehr spezifische Me&#223;methode halbwegs generisch nutzbar zu machen, stecke dabei aber bereits gef&#228;hrlich viel Vorannahmen &#252;ber den Scheduler in den Me&#223;proze&#223;
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
</node>
@ -116468,16 +116507,13 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
</node>
<node COLOR="#435e98" CREATED="1713132381066" FOLDED="true" ID="ID_651763651" MODIFIED="1713381635480" TEXT="Fehlzugriff aus dem Allocator (isValidPos (idx))">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
extent-family.hpp:356
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<linktarget COLOR="#648bb9" DESTINATION="ID_651763651" ENDARROW="Default" ENDINCLINATION="23;-13;" ID="Arrow_ID_1152882180" SOURCE="ID_966787442" STARTARROW="None" STARTINCLINATION="-98;8;"/>
<icon BUILTIN="broken-line"/>
<node CREATED="1713132457217" ID="ID_1257716735" LINK="#ID_917615827" MODIFIED="1713132548204" TEXT="die gleiche Assertion hat schon fr&#xfc;her angesprochen">
@ -116776,29 +116812,23 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
<node CREATED="1713388269784" ID="ID_1234121492" MODIFIED="1713388286244" TEXT="weil er nur maximal 4 Kerne parallel braucht"/>
<node CREATED="1713388287014" ID="ID_385515593" MODIFIED="1713388351726" TEXT="damit ist er eine bessere Grundlage f&#xfc;r einen generischen Test">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...ich mu&#223; auch daran denken, da&#223; nicht jede Maschine 8 Kerne hat. Insofern erscheint es sinnvoller, die Concurrency auf 4 zu beschr&#228;nken, und dann zu sehen, wo man landet
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1713388249411" ID="ID_1149253486" MODIFIED="1713388494914" TEXT="weil dieser Graph nur aus unverkn&#xfc;pften Ketten besteht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
der Graph-3 hat denn doch immer wieder mehrstufige Dependency-Tries &#8212; und ich kann daher nicht entscheiden, ob die beobachtete &#8709;concurrency = 5.4 auf dependency-wait zur&#252;ckzuf&#252;hren ist, oder tats&#228;chlich durch Abregeln der Kapazit&#228;t durch den Scheduler zustande kam. M&#246;glicherweise auch beides im Wechselspiel.
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1713389530936" ID="ID_687771347" MODIFIED="1713389605825" TEXT="&#x27f9; 66 Level &#x2014; &#x2205;3.88 Nodes/Level"/>
<node CREATED="1713389623499" ID="ID_841283321" MODIFIED="1713389680527" TEXT="25% seed, 25% exit, 50% inner nodes (sehr ausgewogen)"/>
@ -116811,16 +116841,13 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
<node CREATED="1713389882687" ID="ID_957430022" MODIFIED="1713389887665" TEXT="&#x2205;concurrency = 3.5">
<node CREATED="1713389918466" ID="ID_600533061" MODIFIED="1713392945570">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
das ist <b>ziemlich gut</b>
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1713389924761" ID="ID_1422814603" MODIFIED="1713389946729" TEXT="da wir &#x2205;3.88 Nodes/Level haben"/>
</node>
@ -116834,35 +116861,48 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
</node>
<node CREATED="1713390567444" ID="ID_764793271" MODIFIED="1713390691584" TEXT="&#x27f9; nur erkl&#xe4;rbar durch dependency-waits">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...da die tats&#228;chliche Last ehr bei 5.5ms liegt, k&#246;nnen diese Durchschnittswerte nur erkl&#228;rt werden, indem zeitweilig die zus&#228;tzlichen, freien Worker mithelfen; sie k&#246;nnen aber nicht permanent voll ausgelastet werden, da der Graph eigentlich nicht so viel Last hergibt. Trotzdem ergibt sich noch ein auf 60% verdichtetes Schedule
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1713390702828" ID="ID_1572610932" MODIFIED="1713390753270">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
Das deutet alles darauf hin, da&#223; das Scheduling weitgehend <b>effizient</b>&#160; ist
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#338800" CREATED="1713395737881" ID="ID_1206876411" MODIFIED="1713396197240">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
<u><font size="4">Abschlie&#223;ender Test</font></u>: <b>Laufzeit &gt; 1 sec</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1713395757359" ID="ID_222095587" MODIFIED="1713395769921" TEXT="verwende 4 mal die Graph-L&#xe4;nge"/>
<node CREATED="1713395770509" ID="ID_81076022" MODIFIED="1713395782640" TEXT="verwende Planung in 32-er-Chunks"/>
<node CREATED="1713395787298" ID="ID_180484606" MODIFIED="1713396679603" TEXT="verwende eine relativ knappe deadline">
<linktarget COLOR="#2b4ed5" DESTINATION="ID_180484606" ENDARROW="Default" ENDINCLINATION="-1521;-88;" ID="Arrow_ID_994676785" SOURCE="ID_18653531" STARTARROW="None" STARTINCLINATION="1715;133;"/>
</node>
<node CREATED="1713395812208" ID="ID_1758213482" MODIFIED="1713395827513" TEXT="pr&#xfc;fe den berechneten verketteten Hash"/>
<node CREATED="1713395830358" ID="ID_799220713" MODIFIED="1713395857293" TEXT="Laufzeit ist in etwa 4 mal die Zeit aus vorhergehender Messung"/>
<node CREATED="1713395858002" ID="ID_104435684" MODIFIED="1713395873157" TEXT="Concurrency steigt sogar bis auf 3.9"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1712878607523" ID="ID_61094750" MODIFIED="1712878636653" TEXT="Ergebnisse">
<icon BUILTIN="forward"/>
@ -117273,7 +117313,8 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
<node CREATED="1702309058200" ID="ID_1888511103" MODIFIED="1702309098838" TEXT="Abarbeiten der Kette eines &#x201e;praktisch leeren&#x201c; Jobs: 80&#xb5;s"/>
<node CREATED="1702309135573" ID="ID_85007648" MODIFIED="1702309146250" TEXT="Abarbeiten bis zum failed Gate-check: 25&#xb5;s"/>
</node>
<node CREATED="1712674132163" FOLDED="true" ID="ID_1180966664" MODIFIED="1712674427987" TEXT="empirscher Latenz-Overhead: +5ms">
<node CREATED="1712674132163" FOLDED="true" ID="ID_1180966664" MODIFIED="1713396545253" TEXT="empirscher Latenz-Overhead: +5ms">
<linktarget COLOR="#366e86" DESTINATION="ID_1180966664" ENDARROW="Default" ENDINCLINATION="2713;-145;" ID="Arrow_ID_36903408" SOURCE="ID_778877296" STARTARROW="None" STARTINCLINATION="769;75;"/>
<icon BUILTIN="forward"/>
<node CREATED="1712674156848" ID="ID_1121001776" LINK="#ID_29307844" MODIFIED="1712674424045" TEXT="beobachtet durch Me&#xdf;-Serien mit linearer Regression">
<richcontent TYPE="NOTE"><html>