Scheduler-test: next goal -- massively parallel work jobs

Search processing pattern for massive parallel test.
The goal is to get all cores into active processing most of the time,
thus we need a graph with low dependency management overhead, which is
also consistently wide horizontally to have several jobs in working state
all of the time. The investigation aims at finding out about systematic
overheads in such a setup.
This commit is contained in:
Fischlurch 2024-01-09 23:34:05 +01:00
parent 3fb4baefd5
commit 3674d82bdf
2 changed files with 139 additions and 3 deletions

View file

@ -328,7 +328,14 @@ namespace test {
void
generalFuckup()
{
UNIMPLEMENTED("tbd");
TestChainLoad<8> testLoad{64};
testLoad.seedingRule(testLoad.rule().probability(0.6).maxVal(2))
.pruningRule(testLoad.rule().probability(0.44))
.setSeed(60)
.buildTopology()
.printTopologyDOT()
.printTopologyStatistics()
;
}

View file

@ -95887,8 +95887,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697755558855" ID="ID_278365674" MODIFIED="1697741858009" TEXT="SchedulerStress_test">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697755558855" ID="ID_278365674" MODIFIED="1704764280752" TEXT="SchedulerStress_test">
<icon BUILTIN="pencil"/>
<node CREATED="1688337200875" ID="ID_1251284763" MODIFIED="1697735887738" TEXT="Nonfunktionale Anforderungen">
<icon BUILTIN="info"/>
</node>
@ -95969,6 +95969,10 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697733236455" ID="ID_698621499" MODIFIED="1697733269203" TEXT="Realtime 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="1704766137597" 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="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"/>
@ -95982,6 +95986,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1704764438687" ID="ID_1298660922" MODIFIED="1704764476781" TEXT="....jajaja... das hat so einige K&#xe4;ferlein ent-deckt...">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1695555555555" ID="ID_1032000470" MODIFIED="1697744929394" TEXT="#1344 Implement performance Tests for Scheduler">
@ -110766,6 +110773,128 @@ 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="#eee5c3" COLOR="#990000" CREATED="1704766027439" ID="ID_161148852" MODIFIED="1704766137597" TEXT="Untersuchung-1: hohe Auslastung">
<linktarget COLOR="#3832ae" DESTINATION="ID_161148852" ENDARROW="Default" ENDINCLINATION="-712;-56;" ID="Arrow_ID_1703930922" SOURCE="ID_549174207" STARTARROW="None" STARTINCLINATION="289;17;"/>
<icon BUILTIN="flag-yellow"/>
<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>
</head>
<body>
<p>
die ganzen Test zur Integration und zum Aufbau der Testanordnung haben die &#187;chained load bursts&#171; verwendet, ein hochgradig unregelm&#228;&#223;iges und abschnittsweise stark verkn&#252;pftes Pattern. Damit konnte ich in etwa die erwartete Parallelisierung beobachten, aber die Computational Load ist typischerweise doppelt so lang gelaufen wie kalibriert, w&#228;hrend gleichzeitig permanent Koordinations-Aufwand zu leisten war. Deshalb w&#228;hle ich nun einen anderen Blickwinkel: Wie gut k&#246;nnen wir die theoretisch vorhandene &#187;Rechenkapazit&#228;t&#171; zum Einsatz bringen? Daf&#252;r braucht es ein m&#246;glichst einfaches Pattern, das aber hinreichend breit sein mu&#223;, um alle Kerne auszulasten. Ziel ist es, einen gleichm&#228;&#223;igen &#187;Flow&#171; von l&#228;nger laufenden Rechen-Jobs zu generieren
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1704766425859" ID="ID_819162648" MODIFIED="1704766437260" TEXT="geeignetes Last-Pattern aufbauen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1704766438235" ID="ID_49179977" MODIFIED="1704766505960" TEXT="Idee: &#xfc;bers&#xe4;ttigte Seeds + Breiten-Limitierung">
<icon BUILTIN="idea"/>
<node CREATED="1704849761430" ID="ID_973472982" MODIFIED="1704849788023" TEXT="massiv-vernetzt">
<node CREATED="1704849789603" ID="ID_1248796850" MODIFIED="1704850126462" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TestChainLoad&lt;8&gt; testLoad{64}; </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; testLoad.seedingRule(testLoad.rule().probability(0.6).maxVal(2)) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.pruningRule(testLoad.rule().probability(0.44)) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.setSeed(</font><font size="2" color="#cf0707"><b>62</b></font><font size="2">) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.buildTopology() </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;; </font>
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1704849847892" ID="ID_477248717" MODIFIED="1704849856158" TEXT="3 Zusammenhangskomponenten"/>
<node CREATED="1704849857735" ID="ID_1587579504" MODIFIED="1704849867765" TEXT="jeweils eine Join-Kette bis zum Exit"/>
<node CREATED="1704849868616" ID="ID_1515141001" MODIFIED="1704849883546" TEXT="&#x2205;pL = 5.8"/>
</node>
<node CREATED="1704849928488" ID="ID_1928191255" MODIFIED="1704850743844" TEXT="4-parallel-interleaved">
<node CREATED="1704850003870" ID="ID_703412136" MODIFIED="1704850140684" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TestChainLoad&lt;8&gt; testLoad{64}; </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; testLoad.seedingRule(testLoad.rule().probability(0.6).maxVal(2)) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.pruningRule(testLoad.rule().probability(0.44)) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.setSeed(</font><font size="2" color="#c10404"><b>60</b></font><font size="2">) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.buildTopology() </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;; </font>
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1704850040097" ID="ID_980343562" MODIFIED="1704850051875" TEXT="unverkn&#xfc;pfte Ketten der L&#xe4;nge 4"/>
<node CREATED="1704850052463" ID="ID_75067439" MODIFIED="1704850064145" TEXT="auf jedem Level ein Seed und ein Exit"/>
<node CREATED="1704850066089" ID="ID_422217163" MODIFIED="1704850092368" TEXT="&#x27f9; &#x2205;pL = 4"/>
</node>
<node CREATED="1704850522511" ID="ID_1699065000" MODIFIED="1704850544528" TEXT="massiv-parallel">
<node CREATED="1704850545733" ID="ID_1888388122" MODIFIED="1704850628464" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;TestChainLoad&lt;8&gt; testLoad{64}; </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;testLoad.seedingRule(testLoad.rule().probability(0.6).</font><font color="#a602bc" size="2">minVal</font><font size="2">(2)) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.pruningRule(testLoad.rule().probability(0.44)) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.setSeed(</font><font color="#d40202" size="2"><b>55</b></font><font size="2">) </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.buildTopology() </font>
</p>
<p>
<font size="2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;; </font>
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1704850637464" ID="ID_1080884397" MODIFIED="1704850648934" TEXT="kurze Ketten der L&#xe4;nge 2"/>
<node CREATED="1704850649695" ID="ID_204505064" MODIFIED="1704850663456" TEXT="sofort bis zum Anschlag parallel"/>
<node CREATED="1704850664900" ID="ID_1637288846" MODIFIED="1704850693948" TEXT="jeweils 4 Einzelketten, dann eine Zusammenhangskette mit 2 gestuften Joins"/>
<node CREATED="1704849868616" ID="ID_1616250866" MODIFIED="1704849883546" TEXT="&#x2205;pL = 5.8"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1702954431054" ID="ID_669378388" MODIFIED="1702954436305" TEXT="offen/aufzukl&#xe4;ren">
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1702954476683" ID="ID_1030796415" MODIFIED="1702954846789" TEXT="Verhalten von Workern unter concurrency">