Scheduler-test: investigate behaviour of a load for stress testing
The goal is to devise a load more akin to the expected real-world processing patterns, and then to increase the density to establish a breaking point. Preliminary investigations focus on establishing the properties of this load and to ensure the actual computation load behaves as expected. Using the third Graph pattern prepared thus far, which produces short chains of length=2, yet immediately spread out to maximum concurrency. This leads to 5.8 Nodes / Level on average.
This commit is contained in:
parent
6a08c97543
commit
0aa1edf07c
3 changed files with 22 additions and 20 deletions
|
|
@ -334,24 +334,24 @@ namespace test {
|
|||
.pruningRule(testLoad.rule().probability(0.44))
|
||||
.setSeed(55)
|
||||
.buildTopology()
|
||||
.printTopologyDOT()
|
||||
.printTopologyStatistics()
|
||||
// .printTopologyDOT()
|
||||
// .printTopologyStatistics()
|
||||
;
|
||||
// ////////////////////////////////////////////////////////WIP : Run test directly for investigation of SEGFAULT....
|
||||
// BlockFlowAlloc bFlow;
|
||||
// EngineObserver watch;
|
||||
// Scheduler scheduler{bFlow, watch};
|
||||
// auto LOAD_BASE = 500us;
|
||||
auto LOAD_BASE = 500us;
|
||||
// auto stressFac = 1.0;
|
||||
// auto concurrency = 8;
|
||||
//
|
||||
// ComputationalLoad cpuLoad;
|
||||
// cpuLoad.timeBase = LOAD_BASE;
|
||||
// cpuLoad.calibrate();
|
||||
ComputationalLoad cpuLoad;
|
||||
cpuLoad.timeBase = LOAD_BASE;
|
||||
cpuLoad.calibrate();
|
||||
//
|
||||
// double loadMicros = cpuLoad.invoke();
|
||||
double loadMicros = cpuLoad.invoke();
|
||||
// double refTime = testLoad.calcRuntimeReference(LOAD_BASE);
|
||||
//SHOW_EXPR(loadMicros)
|
||||
SHOW_EXPR(loadMicros)
|
||||
//
|
||||
// auto testSetup =
|
||||
// testLoad.setupSchedule(scheduler)
|
||||
|
|
@ -368,6 +368,8 @@ namespace test {
|
|||
struct Setup : StressRig
|
||||
{
|
||||
usec LOAD_BASE = 500us;
|
||||
usec BASE_EXPENSE = 200us;
|
||||
double UPPER_STRESS = 8;
|
||||
// uint CONCURRENCY = 4;
|
||||
// bool SCHED_DEPENDS = true;
|
||||
bool showRuns = true;
|
||||
|
|
|
|||
|
|
@ -2057,7 +2057,7 @@ namespace test {
|
|||
return chainLoad_.allExitNodes()
|
||||
.transform([&](Node& n){ return chainLoad_.nodeID(n); })
|
||||
.filter([=](size_t idx){ return idx >= lastChunkStartIDX; });
|
||||
} // index of all Exit-Nodes within last planning-chunk...
|
||||
} // index of all Exit-Nodes within last planning-chunk...
|
||||
|
||||
Time
|
||||
calcPlanScheduleTime (size_t lastNodeIDX)
|
||||
|
|
|
|||
|
|
@ -110784,13 +110784,12 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
die ganzen Test zur Integration und zum Aufbau der Testanordnung haben die »chained load bursts« verwendet, ein hochgradig unregelmäßiges und abschnittsweise stark verknüpftes Pattern. Damit konnte ich in etwa die erwartete Parallelisierung beobachten, aber die Computational Load ist typischerweise doppelt so lang gelaufen wie kalibriert, während gleichzeitig permanent Koordinations-Aufwand zu leisten war. Deshalb wähle ich nun einen anderen Blickwinkel: Wie gut können wir die theoretisch vorhandene »Rechenkapazität« zum Einsatz bringen? Dafür braucht es ein möglichst einfaches Pattern, das aber hinreichend breit sein muß, um alle Kerne auszulasten. Ziel ist es, einen gleichmäßigen »Flow« von länger laufenden Rechen-Jobs zu generieren
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1704766425859" ID="ID_819162648" MODIFIED="1704766437260" TEXT="geeignetes Last-Pattern aufbauen">
|
||||
<node COLOR="#435e98" CREATED="1704766438235" FOLDED="true" ID="ID_49179977" MODIFIED="1704915284991" TEXT="Idee: übersättigte Seeds + Breiten-Limitierung">
|
||||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1704849761430" ID="ID_973472982" MODIFIED="1704849788023" TEXT="massiv-vernetzt">
|
||||
<node CREATED="1704849761430" ID="ID_973472982" MODIFIED="1705011573250" TEXT="Graph-1: massiv-vernetzt">
|
||||
<node CREATED="1704849789603" ID="ID_1248796850" MODIFIED="1704850126462" STYLE="bubble">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -110814,14 +110813,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<font size="2">                  ; </font>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</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="∅pL = 5.8"/>
|
||||
</node>
|
||||
<node CREATED="1704849928488" ID="ID_1928191255" MODIFIED="1704850743844" TEXT="4-parallel-interleaved">
|
||||
<node CREATED="1704849928488" ID="ID_1928191255" MODIFIED="1705011540615" TEXT="Graph-2: 4-parallel-interleaved">
|
||||
<node CREATED="1704850003870" ID="ID_703412136" MODIFIED="1704850140684" STYLE="bubble">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -110845,14 +110843,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<font size="2">                  ; </font>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1704850040097" ID="ID_980343562" MODIFIED="1704850051875" TEXT="unverknüpfte Ketten der Lä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="⟹ ∅pL = 4"/>
|
||||
</node>
|
||||
<node CREATED="1704850522511" ID="ID_1699065000" MODIFIED="1704850544528" TEXT="massiv-parallel">
|
||||
<node CREATED="1704850522511" ID="ID_1699065000" MODIFIED="1705011547410" TEXT="Graph-3: massiv-parallel">
|
||||
<node CREATED="1704850545733" ID="ID_1888388122" MODIFIED="1704850628464" STYLE="bubble">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
|
|
@ -110876,8 +110873,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<font size="2">                  ; </font>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1704850637464" ID="ID_1080884397" MODIFIED="1704850648934" TEXT="kurze Ketten der Länge 2"/>
|
||||
<node CREATED="1704850649695" ID="ID_204505064" MODIFIED="1704850663456" TEXT="sofort bis zum Anschlag parallel"/>
|
||||
|
|
@ -110897,6 +110893,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1704915326966" ID="ID_117301056" MODIFIED="1704915346470" TEXT="8 Kerne gleichmäßige Last 500µs">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1705011582353" ID="ID_166772872" MODIFIED="1705011589953" TEXT="verwende erst mal Graph-3"/>
|
||||
<node COLOR="#435e98" CREATED="1704940787856" FOLDED="true" ID="ID_548135052" MODIFIED="1705010869404" TEXT="SEGFAULT">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1704990398092" ID="ID_80295046" MODIFIED="1704990404404" TEXT="Beobachtungen">
|
||||
|
|
@ -110998,6 +110995,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#3a84b6" DESTINATION="ID_1350365350" ENDARROW="Default" ENDINCLINATION="-192;14;" ID="Arrow_ID_980960219" SOURCE="ID_909211409" STARTARROW="None" STARTINCLINATION="118;-27;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1705011154754" ID="ID_791359995" MODIFIED="1705011274983" TEXT="ohne Last : ∅Δ= 1.5±0.84ms">
|
||||
<node CREATED="1705011415631" ID="ID_1195549031" MODIFIED="1705179740014" TEXT="das wären ∅ ≈ 200µs /Node/Core"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue