Scheduler-test: **first successful complete run**
Scheduling a wake-up job behind the end of the planned schedule did the trick. Sometimes there is ''strong contention'' immediately after full provision of the WorkForce, but this seems to be as expected, since the »Jobs« currently used have no actually relevant run time on their own. It is even more surprising that the Capacity-control logic is able to cope with this situation in a matter of just some milliseconds, bringing the average Lag at ~ 300µs
This commit is contained in:
parent
7eca3ffe42
commit
34d6423660
3 changed files with 109 additions and 11 deletions
|
|
@ -109,11 +109,13 @@ SHOW_EXPR(offset())
|
|||
Scheduler scheduler{bFlow, watch};
|
||||
|
||||
SHOW_EXPR(testLoad.getHash())
|
||||
CHECK (testLoad.getHash() == 0x5306191657DA4105);
|
||||
SHOW_EXPR(offset())
|
||||
testLoad.setupSchedule(scheduler)
|
||||
.launch_and_wait();
|
||||
SHOW_EXPR(offset())
|
||||
SHOW_EXPR(testLoad.getHash())
|
||||
CHECK (testLoad.getHash() == 0x5306191657DA4105);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@
|
|||
//#include "lib/hash-value.h"
|
||||
#include "vault/gear/job.h"
|
||||
#include "vault/gear/scheduler.hpp"
|
||||
#include "vault/gear/special-job-fun.hpp"
|
||||
//#include "vault/gear/nop-job-functor.hpp"
|
||||
#include "lib/uninitialised-storage.hpp"
|
||||
#include "lib/time/timevalue.hpp"
|
||||
|
|
@ -1284,7 +1285,9 @@ cout <<"--> reschedule to "<<nextChunkLevel<<endl;
|
|||
,manID_);
|
||||
}
|
||||
else
|
||||
signalDone_.set_value();
|
||||
scheduler_.continueMetaJob (calcStartTime (levelDone+1)
|
||||
,wakeUpJob()
|
||||
,manID_);
|
||||
}
|
||||
|
||||
std::future<void>
|
||||
|
|
@ -1357,6 +1360,19 @@ cout <<"+++ "<<markThread()<<": seed(num:"<<numNodes<<")"<<endl;
|
|||
};
|
||||
}
|
||||
|
||||
Job
|
||||
wakeUpJob ()
|
||||
{
|
||||
SpecialJobFun wakeUpFun{[this](JobParameter)
|
||||
{
|
||||
signalDone_.set_value();
|
||||
}};
|
||||
return Job{ wakeUpFun
|
||||
, InvocationInstanceID()
|
||||
, Time::ANYTIME
|
||||
};
|
||||
}
|
||||
|
||||
Time
|
||||
anchorStartTime()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -101282,6 +101282,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702012511964" ID="ID_788253401" MODIFIED="1702012564832" TEXT="Logik umprogrammieren auf vorgegebene Node-Zahl">
|
||||
<linktarget COLOR="#91464a" DESTINATION="ID_788253401" ENDARROW="Default" ENDINCLINATION="-2;380;" ID="Arrow_ID_1856813245" SOURCE="ID_1304679964" STARTARROW="None" STARTINCLINATION="-149;0;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1701493107387" ID="ID_1826192324" MODIFIED="1701814987380" TEXT="Aufruf-front-End">
|
||||
<icon BUILTIN="pencil"/>
|
||||
|
|
@ -101305,7 +101309,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1701913043245" ID="ID_445438847" MODIFIED="1701995114300" TEXT="bessere Steuerung des Completion-Callback">
|
||||
<linktarget COLOR="#c62f45" DESTINATION="ID_445438847" ENDARROW="Default" ENDINCLINATION="-1207;75;" ID="Arrow_ID_1132943593" SOURCE="ID_1739832819" STARTARROW="None" STARTINCLINATION="-73;-483;"/>
|
||||
<linktarget COLOR="#594b6a" DESTINATION="ID_445438847" ENDARROW="Default" ENDINCLINATION="-1207;75;" ID="Arrow_ID_1132943593" SOURCE="ID_1739832819" STARTARROW="None" STARTINCLINATION="-73;-483;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1701995129106" ID="ID_1885461201" MODIFIED="1701995147012">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
|
|
@ -101317,10 +101321,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1701995148607" ID="ID_1950736877" MODIFIED="1701995170924" TEXT="brauche dazu Hilfsmittel: λ-Job">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1702004101716" ID="ID_908134373" MODIFIED="1702004108016" TEXT="SpecialJobFun....">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1701995148607" ID="ID_1950736877" MODIFIED="1702009838708" TEXT="brauche dazu Hilfsmittel: λ-Job">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1702004101716" ID="ID_908134373" MODIFIED="1702009836209" TEXT="SpecialJobFun....">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1702004109424" ID="ID_1293442970" MODIFIED="1702004221556" TEXT="ist eine JobFunctor-Instanz">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
|
|
@ -101337,17 +101341,38 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1702004224915" ID="ID_1713843451" MODIFIED="1702004237147" TEXT="SpecialJobFun_test">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1702004224915" ID="ID_1713843451" MODIFIED="1702009839990" TEXT="SpecialJobFun_test">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1702004230770" ID="ID_1088072058" MODIFIED="1702004234360" TEXT="simpleUsage">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1702008468565" ID="ID_1701934123" MODIFIED="1702008471652" TEXT="verifyLifecycle">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1702009844714" ID="ID_721919455" MODIFIED="1702009852983" TEXT="is schon gut genug">
|
||||
<icon BUILTIN="stop-sign"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1702009861440" ID="ID_233239535" MODIFIED="1702012038929">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
so einen Job auf den Level <i>nach dem </i>letzten Level setzen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702012060672" ID="ID_1038613808" MODIFIED="1702012610866" TEXT="Level-Berechnung präziser machen">
|
||||
<arrowlink COLOR="#9e5576" DESTINATION="ID_53360642" ENDARROW="Default" ENDINCLINATION="396;-17;" ID="Arrow_ID_1980379788" STARTARROW="None" STARTINCLINATION="78;6;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1701814806243" ID="ID_1359675923" MODIFIED="1701823453699" TEXT="Job-Funktoren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -101398,6 +101423,17 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1701823497985" ID="ID_378847515" MODIFIED="1701823497985" TEXT="preRoll">
|
||||
<node CREATED="1701823682284" ID="ID_746474019" MODIFIED="1701823709396" TEXT="vorlauf zum Beginn des geplanten Schedule"/>
|
||||
<node CREATED="1701823711000" ID="ID_20712355" MODIFIED="1701823725194" TEXT="wird auch von wiederholungs-Chunks abgezogen"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702012085806" ID="ID_1944577455" MODIFIED="1702012105308" TEXT="genauere Schätzung, basierend auf der Zahl der Nodes/Chunk">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702012494224" ID="ID_1304679964" MODIFIED="1702012564832" TEXT="erfordert Umprogrammieren des Planungs-Funktors">
|
||||
<arrowlink COLOR="#91464a" DESTINATION="ID_788253401" ENDARROW="Default" ENDINCLINATION="-2;380;" ID="Arrow_ID_1856813245" STARTARROW="None" STARTINCLINATION="-149;0;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702012570378" ID="ID_53360642" MODIFIED="1702012601899" TEXT="damit aber auch bessere Zeit-Steuerung möglich">
|
||||
<linktarget COLOR="#9e5576" DESTINATION="ID_53360642" ENDARROW="Default" ENDINCLINATION="396;-17;" ID="Arrow_ID_1980379788" SOURCE="ID_1038613808" STARTARROW="None" STARTINCLINATION="78;6;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1701823497985" ID="ID_158048244" MODIFIED="1701823727929" TEXT="deadline">
|
||||
<node CREATED="1701823729483" ID="ID_334630071" MODIFIED="1701823749646" TEXT="Deadline-Fenster gegenüber der gegebenen Startzeit"/>
|
||||
|
|
@ -101638,13 +101674,57 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1701912974750" ID="ID_1155210741" MODIFIED="1701912984629" TEXT="Lauf endet zu früh">
|
||||
<node COLOR="#435e98" CREATED="1701912974750" ID="ID_1155210741" MODIFIED="1702012143743" TEXT="Lauf endet zu früh">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1701912990060" ID="ID_1739832819" MODIFIED="1701913150431" TEXT="Callback / wake-up passiert nach letztem Planungs-Chunk">
|
||||
<arrowlink COLOR="#c62f45" DESTINATION="ID_445438847" ENDARROW="Default" ENDINCLINATION="-1207;75;" ID="Arrow_ID_1132943593" STARTARROW="None" STARTINCLINATION="-73;-483;"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1701912990060" ID="ID_1739832819" MODIFIED="1702012446522" TEXT="Callback / wake-up passiert nach letztem Planungs-Chunk">
|
||||
<arrowlink COLOR="#594b6a" DESTINATION="ID_445438847" ENDARROW="Default" ENDINCLINATION="-1207;75;" ID="Arrow_ID_1132943593" STARTARROW="None" STARTINCLINATION="-73;-483;"/>
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
<node CREATED="1701913012497" ID="ID_926682409" MODIFIED="1701913026475" TEXT="die restlichen Jobs werden dann zusammen mit dem Scheduler abgewürgt"/>
|
||||
<node COLOR="#338800" CREATED="1702012122381" ID="ID_1859843889" MODIFIED="1702012149834" TEXT="mit einem gezielten wake-up-Funktor : läuft sauber durch">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1702012639172" ID="ID_196606390" MODIFIED="1702012650236" TEXT="Test nun erfolgreich">
|
||||
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1702012154333" ID="ID_914050434" MODIFIED="1702012172820" TEXT="bisweilen starke Contention">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1702012175699" ID="ID_247790637" MODIFIED="1702012199043" TEXT="im Besonderen wenn die ganze WorkForce kurz nach dem Tick geballt auftaucht"/>
|
||||
<node CREATED="1702012202351" ID="ID_622532522" MODIFIED="1702012248862" TEXT="hat in einem Fall 5ms gedauert, bis sich der Dispatch bis an den Schedule gearbeitet hat"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1702012419402" ID="ID_2703596" MODIFIED="1702012432142" TEXT="unklar: ist der Umgang mit der Contention effizient / ineffizient?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1702012250472" ID="ID_1150173173" MODIFIED="1702012269620">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
danach / sonst : läuft <i>verdächtig gut</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1702012369880" ID="ID_1425703387" MODIFIED="1702012382381" TEXT="Kapazität erscheint paßgenau">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702012386340" ID="ID_610604863" MODIFIED="1702012397485" TEXT="verstehe noch nicht wie das funktioniert">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1702012270758" ID="ID_874563850" MODIFIED="1702012280845" TEXT="wie kann das überhaupt so gut funktionieren?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1702012283990" ID="ID_1274845080" MODIFIED="1702012315323" TEXT="die Kapazität taucht stets ~300µs korrekt auf"/>
|
||||
<node CREATED="1702012316461" ID="ID_1917953828" MODIFIED="1702012336744" TEXT="kaum überschüssige und fast keine Contention"/>
|
||||
<node CREATED="1702012337405" ID="ID_1550638305" MODIFIED="1702012346427" TEXT="mit dem letzten Job geht alles nahtlos auf"/>
|
||||
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1702012347707" ID="ID_144677748" MODIFIED="1702012362287" TEXT="entwickelt der Scheduler Intelligenz?">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue