Scheduler-test: watch statistics with increasing stress

- repeated invocations of the same test setup for statistics
- the usual nasty 64-node graph with massive fork out
- limit concurrency to 4 cores
- tabulate data to look for clues regarding a trigger criteria

Hypothesis: The Scheduler slips off schedule when all of the
following three criteria are met:
- more than 55% glitches with Δ > 2ms
- σ > 2ms
- ∅Δ > 4ms
This commit is contained in:
Fischlurch 2024-01-02 18:44:20 +01:00
parent a56afbaf62
commit 29699991a0
5 changed files with 631 additions and 13 deletions

View file

@ -0,0 +1,548 @@
search_breaking_point
=====================
Search for the »breaking Point« where the computation slips off schedule.
- using a load graph with 64 nodes in a single chain
- this chain progresses for the first half with no or low concurrency
- after node-23 the graph forks out massively up to 16 nodes in parallel
- concurrency is set to 4 and the worker pool limited accordingly
Trigger criteria:
- more than 55% glitches with Δ > 2ms
- σ > 2ms
- ∅Δ > 4ms
Time in single threaded computation: 33.8ms
Scheduler run time at breaking point: ~38ms
Breaking point: for stressFactor ∈ [0.47 ... 0.5]
....·0 : t=82.5 + Δ= 0.3 ○
....·1 : t=82.4 - Δ= 0.2 ○
....·2 : t=82.4 - Δ= 0.3 ○
....·3 : t=82.4 - Δ= 0.2 ○
....·4 : t=82.5 + Δ= 0.3 ○
....·5 : t=82.5 + Δ= 0.3 ○
....·6 : t=82.5 + Δ= 0.3 ○
....·7 : t=82.5 + Δ= 0.3 ○
....·8 : t=82.4 - Δ= 0.3 ○
....·9 : t=82.5 + Δ= 0.3 ○
....·10: t=82.3 - Δ= 0.2 ○
....·11: t=82.4 - Δ= 0.2 ○
....·12: t=82.3 - Δ= 0.2 ○
....·13: t=82.4 - Δ= 0.2 ○
....·14: t=82.3 - Δ= 0.2 ○
....·15: t=82.5 + Δ= 0.3 ○
....·16: t=82.5 + Δ= 0.3 ○
....·17: t=82.4 - Δ= 0.3 ○
....·18: t=82.5 + Δ= 0.3 ○
....·19: t=82.5 + Δ= 0.3 ○
....·20: t=82.4 - Δ= 0.3 ○
....·21: t=82.5 + Δ= 0.4 ○
....·22: t=82.4 - Δ= 0.2 ○
....·23: t=82.5 + Δ= 0.3 ○
....·24: t=82.4 - Δ= 0.2 ○
....·25: t=82.4 - Δ= 0.2 ○
....·26: t=82.5 + Δ= 0.3 ○
....·27: t=82.4 - Δ= 0.2 ○
....·28: t=82.5 + Δ= 0.4 ○
....·29: t=82.5 + Δ= 0.3 ○
0.20| : ∅=82.4 ±0.06 ∅Δ= 0.3 %0.0 -- expect:82.2ms
....·0 : t=71.7 - Δ= 0.3 ○
....·1 : t=71.8 - Δ= 0.3 ○
....·2 : t=71.8 - Δ= 0.3 ○
....·3 : t=71.7 - Δ= 0.3 ○
....·4 : t=71.7 - Δ= 0.3 ○
....·5 : t=72.0 + Δ= 0.6 ○
....·6 : t=71.6 - Δ= 0.2 ○
....·7 : t=71.8 - Δ= 0.3 ○
....·8 : t=71.7 - Δ= 0.3 ○
....·9 : t=71.7 - Δ= 0.2 ○
....·10: t=72.0 + Δ= 0.5 ○
....·11: t=72.1 + Δ= 0.6 ○
....·12: t=72.0 + Δ= 0.5 ○
....·13: t=72.0 + Δ= 0.5 ○
....·14: t=72.0 + Δ= 0.5 ○
....·15: t=72.1 + Δ= 0.6 ○
....·16: t=71.7 - Δ= 0.3 ○
....·17: t=71.6 - Δ= 0.2 ○
....·18: t=71.7 - Δ= 0.3 ○
....·19: t=71.8 - Δ= 0.3 ○
....·20: t=72.0 + Δ= 0.6 ○
....·21: t=71.8 - Δ= 0.3 ○
....·22: t=71.7 - Δ= 0.3 ○
....·23: t=71.7 - Δ= 0.3 ○
....·24: t=71.8 - Δ= 0.3 ○
....·25: t=71.7 - Δ= 0.3 ○
....·26: t=71.7 - Δ= 0.3 ○
....·27: t=72.1 + Δ= 0.6 ○
....·28: t=71.6 - Δ= 0.2 ○
....·29: t=71.7 - Δ= 0.3 ○
0.23| : ∅=71.8 ±0.15 ∅Δ= 0.4 %0.0 -- expect:71.4ms
....·0 : t=63.4 - Δ= 0.2 ○
....·1 : t=63.5 - Δ= 0.3 ○
....·2 : t=63.5 - Δ= 0.3 ○
....·3 : t=63.5 - Δ= 0.3 ○
....·4 : t=63.5 - Δ= 0.3 ○
....·5 : t=63.5 - Δ= 0.3 ○
....·6 : t=63.5 - Δ= 0.3 ○
....·7 : t=63.4 - Δ= 0.2 ○
....·8 : t=63.4 - Δ= 0.2 ○
....·9 : t=64.2 + Δ= 1.0 ○
....·10: t=63.5 - Δ= 0.3 ○
....·11: t=63.4 - Δ= 0.2 ○
....·12: t=63.4 - Δ= 0.2 ○
....·13: t=63.5 - Δ= 0.3 ○
....·14: t=63.5 - Δ= 0.3 ○
....·15: t=63.5 - Δ= 0.3 ○
....·16: t=63.4 - Δ= 0.2 ○
....·17: t=63.5 - Δ= 0.3 ○
....·18: t=63.5 - Δ= 0.3 ○
....·19: t=63.5 - Δ= 0.3 ○
....·20: t=63.5 - Δ= 0.3 ○
....·21: t=63.5 - Δ= 0.3 ○
....·22: t=63.5 - Δ= 0.3 ○
....·23: t=63.4 - Δ= 0.2 ○
....·24: t=63.5 - Δ= 0.3 ○
....·25: t=63.5 - Δ= 0.3 ○
....·26: t=64.2 + Δ= 1.0 ○
....·27: t=63.5 - Δ= 0.3 ○
....·28: t=63.5 - Δ= 0.3 ○
....·29: t=64.2 + Δ= 1.0 ○
0.26| : ∅=63.5 ±0.22 ∅Δ= 0.3 %0.0 -- expect:63.2ms
....·0 : t=57.0 - Δ= 0.3 ○
....·1 : t=57.4 + Δ= 0.8 ○
....·2 : t=57.0 - Δ= 0.3 ○
....·3 : t=56.9 - Δ= 0.2 ○
....·4 : t=57.0 + Δ= 0.4 ○
....·5 : t=56.9 - Δ= 0.2 ○
....·6 : t=56.8 - Δ= 0.1 ○
....·7 : t=57.0 - Δ= 0.3 ○
....·8 : t=56.8 - Δ= 0.2 ○
....·9 : t=56.9 - Δ= 0.3 ○
....·10: t=57.0 - Δ= 0.3 ○
....·11: t=56.9 - Δ= 0.2 ○
....·12: t=56.9 - Δ= 0.2 ○
....·13: t=57.0 - Δ= 0.3 ○
....·14: t=56.9 - Δ= 0.3 ○
....·15: t=56.9 - Δ= 0.2 ○
....·16: t=57.0 - Δ= 0.3 ○
....·17: t=56.8 - Δ= 0.2 ○
....·18: t=56.8 - Δ= 0.2 ○
....·19: t=56.9 - Δ= 0.2 ○
....·20: t=56.9 - Δ= 0.2 ○
....·21: t=57.0 - Δ= 0.3 ○
....·22: t=56.9 - Δ= 0.3 ○
....·23: t=58.1 + Δ= 1.5 ○
....·24: t=57.0 - Δ= 0.3 ○
....·25: t=58.1 + Δ= 1.4 ○
....·26: t=56.8 - Δ= 0.1 ○
....·27: t=56.9 - Δ= 0.2 ○
....·28: t=57.0 - Δ= 0.3 ○
....·29: t=56.8 - Δ= 0.1 ○
0.29| : ∅=57.0 ±0.32 ∅Δ= 0.3 %0.0 -- expect:56.7ms
....·0 : t=51.6 - Δ= 0.3 ○
....·1 : t=51.5 - Δ= 0.2 ○
....·2 : t=51.7 - Δ= 0.3 ○
....·3 : t=51.6 - Δ= 0.2 ○
....·4 : t=51.6 - Δ= 0.3 ○
....·5 : t=53.1 + Δ= 1.7 ○
....·6 : t=52.5 + Δ= 1.1 ○
....·7 : t=53.5 + Δ= 2.1 ●
....·8 : t=51.7 - Δ= 0.3 ○
....·9 : t=51.5 - Δ= 0.2 ○
....·10: t=52.5 + Δ= 1.2 ○
....·11: t=51.6 - Δ= 0.2 ○
....·12: t=51.6 - Δ= 0.2 ○
....·13: t=51.5 - Δ= 0.2 ○
....·14: t=51.6 - Δ= 0.2 ○
....·15: t=51.6 - Δ= 0.3 ○
....·16: t=51.5 - Δ= 0.1 ○
....·17: t=51.6 - Δ= 0.3 ○
....·18: t=51.5 - Δ= 0.2 ○
....·19: t=51.5 - Δ= 0.2 ○
....·20: t=51.5 - Δ= 0.2 ○
....·21: t=53.2 + Δ= 1.8 ○
....·22: t=51.5 - Δ= 0.2 ○
....·23: t=51.6 - Δ= 0.3 ○
....·24: t=51.5 - Δ= 0.1 ○
....·25: t=53.5 + Δ= 2.2 ●
....·26: t=51.7 - Δ= 0.3 ○
....·27: t=51.6 - Δ= 0.3 ○
....·28: t=53.1 + Δ= 1.8 ○
....·29: t=51.6 - Δ= 0.3 ○
0.32| : ∅=51.9 ±0.65 ∅Δ= 0.6 %0.1 -- expect:51.4ms
....·0 : t=47.2 - Δ= 0.2 ○
....·1 : t=47.2 - Δ= 0.2 ○
....·2 : t=47.2 - Δ= 0.2 ○
....·3 : t=49.0 + Δ= 2.1 ●
....·4 : t=47.1 - Δ= 0.2 ○
....·5 : t=47.8 + Δ= 0.8 ○
....·6 : t=47.0 - Δ= 0.1 ○
....·7 : t=47.1 - Δ= 0.1 ○
....·8 : t=47.1 - Δ= 0.2 ○
....·9 : t=47.6 + Δ= 0.7 ○
....·10: t=47.4 - Δ= 0.4 ○
....·11: t=47.5 - Δ= 0.5 ○
....·12: t=47.3 - Δ= 0.3 ○
....·13: t=47.2 - Δ= 0.2 ○
....·14: t=47.2 - Δ= 0.3 ○
....·15: t=47.2 - Δ= 0.2 ○
....·16: t=49.1 + Δ= 2.1 ●
....·17: t=47.2 - Δ= 0.3 ○
....·18: t=47.3 - Δ= 0.3 ○
....·19: t=49.0 + Δ= 2.1 ●
....·20: t=47.4 - Δ= 0.4 ○
....·21: t=47.5 - Δ= 0.5 ○
....·22: t=47.1 - Δ= 0.2 ○
....·23: t=47.5 - Δ= 0.5 ○
....·24: t=51.1 + Δ= 4.1 ●
....·25: t=47.2 - Δ= 0.3 ○
....·26: t=47.3 - Δ= 0.3 ○
....·27: t=47.2 - Δ= 0.3 ○
....·28: t=47.2 - Δ= 0.3 ○
....·29: t=47.1 - Δ= 0.1 ○
0.35| : ∅=47.6 ±0.86 ∅Δ= 0.6 %0.1 -- expect:47.0ms
....·0 : t=44.0 - Δ= 0.7 ○
....·1 : t=44.0 - Δ= 0.8 ○
....·2 : t=43.5 - Δ= 0.3 ○
....·3 : t=45.5 + Δ= 2.2 ●
....·4 : t=45.5 + Δ= 2.3 ●
....·5 : t=43.4 - Δ= 0.2 ○
....·6 : t=46.5 + Δ= 3.3 ●
....·7 : t=44.1 - Δ= 0.9 ○
....·8 : t=43.4 - Δ= 0.2 ○
....·9 : t=46.9 + Δ= 3.7 ●
....·10: t=43.5 - Δ= 0.3 ○
....·11: t=43.4 - Δ= 0.2 ○
....·12: t=43.8 - Δ= 0.6 ○
....·13: t=43.5 - Δ= 0.3 ○
....·14: t=44.0 - Δ= 0.7 ○
....·15: t=43.5 - Δ= 0.3 ○
....·16: t=43.6 - Δ= 0.3 ○
....·17: t=43.9 - Δ= 0.7 ○
....·18: t=43.4 - Δ= 0.1 ○
....·19: t=43.6 - Δ= 0.3 ○
....·20: t=43.5 - Δ= 0.3 ○
....·21: t=45.6 + Δ= 2.4 ●
....·22: t=44.0 - Δ= 0.7 ○
....·23: t=43.8 - Δ= 0.5 ○
....·24: t=43.5 - Δ= 0.3 ○
....·25: t=43.8 - Δ= 0.6 ○
....·26: t=43.4 - Δ= 0.1 ○
....·27: t=46.0 + Δ= 2.7 ●
....·28: t=43.9 - Δ= 0.6 ○
....·29: t=43.5 - Δ= 0.3 ○
0.38| : ∅=44.1 ±0.99 ∅Δ= 0.9 %0.2 -- expect:43.2ms
....·0 : t=40.4 - Δ= 0.3 ○
....·1 : t=41.1 + Δ= 1.0 ○
....·2 : t=40.8 - Δ= 0.7 ○
....·3 : t=41.6 + Δ= 1.5 ○
....·4 : t=40.2 - Δ= 0.1 ○
....·5 : t=40.3 - Δ= 0.2 ○
....·6 : t=40.9 - Δ= 0.8 ○
....·7 : t=40.2 - Δ= 0.2 ○
....·8 : t=41.5 + Δ= 1.4 ○
....·9 : t=40.2 - Δ= 0.1 ○
....·10: t=43.0 + Δ= 2.9 ●
....·11: t=40.3 - Δ= 0.2 ○
....·12: t=41.0 + Δ= 0.9 ○
....·13: t=40.3 - Δ= 0.2 ○
....·14: t=40.4 - Δ= 0.3 ○
....·15: t=40.2 - Δ= 0.2 ○
....·16: t=41.0 - Δ= 0.9 ○
....·17: t=40.4 - Δ= 0.3 ○
....·18: t=40.3 - Δ= 0.2 ○
....·19: t=40.3 - Δ= 0.2 ○
....·20: t=40.3 - Δ= 0.2 ○
....·21: t=40.3 - Δ= 0.2 ○
....·22: t=40.2 - Δ= 0.1 ○
....·23: t=40.3 - Δ= 0.2 ○
....·24: t=41.0 + Δ= 0.9 ○
....·25: t=45.8 + Δ= 5.8 ●
....·26: t=42.6 + Δ= 2.5 ●
....·27: t=43.5 + Δ= 3.4 ●
....·28: t=40.3 - Δ= 0.2 ○
....·29: t=40.9 - Δ= 0.9 ○
0.41| : ∅=41.0 ±1.23 ∅Δ= 0.9 %0.1 -- expect:40.1ms
....·0 : t=40.8 + Δ= 3.5 ●
....·1 : t=38.5 - Δ= 1.1 ○
....·2 : t=37.7 - Δ= 0.3 ○
....·3 : t=41.6 + Δ= 4.2 ●
....·4 : t=41.6 + Δ= 4.3 ●
....·5 : t=41.5 + Δ= 4.1 ●
....·6 : t=38.5 - Δ= 1.2 ○
....·7 : t=39.1 - Δ= 1.8 ○
....·8 : t=37.8 - Δ= 0.4 ○
....·9 : t=37.7 - Δ= 0.4 ○
....·10: t=39.1 - Δ= 1.8 ○
....·11: t=45.8 + Δ= 8.5 ●
....·12: t=38.3 - Δ= 0.9 ○
....·13: t=40.9 + Δ= 3.6 ●
....·14: t=38.9 - Δ= 1.6 ○
....·15: t=39.1 - Δ= 1.8 ○
....·16: t=37.6 - Δ= 0.2 ○
....·17: t=37.6 - Δ= 0.2 ○
....·18: t=42.9 + Δ= 5.6 ●
....·19: t=40.3 - Δ= 3.0 ●
....·20: t=42.6 + Δ= 5.3 ●
....·21: t=37.6 - Δ= 0.3 ○
....·22: t=39.3 - Δ= 1.9 ○
....·23: t=40.0 - Δ= 2.6 ●
....·24: t=39.3 - Δ= 2.0 ○
....·25: t=39.8 - Δ= 2.5 ●
....·26: t=72.7 + Δ=35.4 ●
....·27: t=41.7 + Δ= 4.4 ●
....·28: t=37.4 - Δ= 0.1 ○
....·29: t=37.6 - Δ= 0.2 ○
0.44| : ∅=40.8 ±6.25 ∅Δ= 3.4 %0.4 -- expect:37.3ms
....·0 : t=44.1 + Δ= 9.1 ●
....·1 : t=40.7 + Δ= 5.7 ●
....·2 : t=37.0 - Δ= 2.1 ●
....·3 : t=36.4 - Δ= 1.4 ○
....·4 : t=35.2 - Δ= 0.2 ○
....·5 : t=36.2 - Δ= 1.3 ○
....·6 : t=37.5 - Δ= 2.6 ●
....·7 : t=35.5 - Δ= 0.5 ○
....·8 : t=36.7 - Δ= 1.7 ○
....·9 : t=39.6 + Δ= 4.6 ●
....·10: t=35.5 - Δ= 0.5 ○
....·11: t=35.1 - Δ= 0.2 ○
....·12: t=36.3 - Δ= 1.3 ○
....·13: t=44.0 + Δ= 9.1 ●
....·14: t=36.3 - Δ= 1.3 ○
....·15: t=36.1 - Δ= 1.1 ○
....·16: t=35.6 - Δ= 0.7 ○
....·17: t=35.5 - Δ= 0.6 ○
....·18: t=43.7 + Δ= 8.7 ●
....·19: t=44.5 + Δ= 9.6 ●
....·20: t=35.2 - Δ= 0.2 ○
....·21: t=39.4 + Δ= 4.4 ●
....·22: t=35.2 - Δ= 0.2 ○
....·23: t=35.6 - Δ= 0.6 ○
....·24: t=35.1 - Δ= 0.1 ○
....·25: t=38.4 - Δ= 3.4 ●
....·26: t=36.4 - Δ= 1.5 ○
....·27: t=36.4 - Δ= 1.5 ○
....·28: t=38.6 + Δ= 3.6 ●
....·29: t=64.0 + Δ=29.0 ●
0.47| : ∅=38.5 ±5.54 ∅Δ= 3.6 %0.4 -- expect:35.0ms
....·0 : t=36.0 - Δ= 3.1 ●
....·1 : t=54.4 + Δ=21.5 ●
....·2 : t=37.5 - Δ= 4.6 ●
....·3 : t=39.7 - Δ= 6.8 ●
....·4 : t=37.8 - Δ= 4.9 ●
....·5 : t=33.6 - Δ= 0.7 ○
....·6 : t=40.0 + Δ= 7.2 ●
....·7 : t=41.4 + Δ= 8.5 ●
....·8 : t=36.9 - Δ= 4.1 ●
....·9 : t=59.6 + Δ=26.7 ●
....·10: t=35.0 - Δ= 2.1 ●
....·11: t=37.3 - Δ= 4.4 ●
....·12: t=34.3 - Δ= 1.4 ○
....·13: t=33.9 - Δ= 1.0 ○
....·14: t=36.1 - Δ= 3.2 ●
....·15: t=40.3 + Δ= 7.4 ●
....·16: t=43.4 + Δ=10.5 ●
....·17: t=36.2 - Δ= 3.3 ●
....·18: t=36.5 - Δ= 3.6 ●
....·19: t=39.2 - Δ= 6.3 ●
....·20: t=58.3 + Δ=25.4 ●
....·21: t=43.0 + Δ=10.2 ●
....·22: t=35.1 - Δ= 2.2 ●
....·23: t=43.6 + Δ=10.7 ●
....·24: t=33.0 - Δ= 0.2 ○
....·25: t=33.8 - Δ= 0.9 ○
....·26: t=36.9 - Δ= 4.1 ●
....·27: t=52.1 + Δ=19.2 ●
....·28: t=33.2 - Δ= 0.3 ○
....·29: t=34.3 - Δ= 1.4 ○
0.50| : ∅=39.7 ±7.14 ∅Δ= 6.9 %0.8 -- expect:32.9ms
....·0 : t=38.9 - Δ= 7.9 ●
....·1 : t=32.7 - Δ= 1.7 ○
....·2 : t=32.7 - Δ= 1.7 ○
....·3 : t=52.7 + Δ=21.7 ●
....·4 : t=32.7 - Δ= 1.7 ○
....·5 : t=42.1 + Δ=11.1 ●
....·6 : t=46.9 + Δ=15.9 ●
....·7 : t=44.2 + Δ=13.2 ●
....·8 : t=50.9 + Δ=19.8 ●
....·9 : t=34.4 - Δ= 3.4 ●
....·10: t=31.6 - Δ= 0.6 ○
....·11: t=40.4 + Δ= 9.4 ●
....·12: t=31.4 - Δ= 0.4 ○
....·13: t=31.5 - Δ= 0.5 ○
....·14: t=38.9 - Δ= 7.9 ●
....·15: t=62.1 + Δ=31.1 ●
....·16: t=36.1 - Δ= 5.1 ●
....·17: t=35.0 - Δ= 4.0 ●
....·18: t=31.8 - Δ= 0.8 ○
....·19: t=40.7 + Δ= 9.7 ●
....·20: t=39.0 - Δ= 8.0 ●
....·21: t=32.7 - Δ= 1.7 ○
....·22: t=50.2 + Δ=19.2 ●
....·23: t=34.7 - Δ= 3.7 ●
....·24: t=47.6 + Δ=16.6 ●
....·25: t=35.4 - Δ= 4.4 ●
....·26: t=38.4 - Δ= 7.4 ●
....·27: t=31.7 - Δ= 0.7 ○
....·28: t=39.2 - Δ= 8.2 ●
....·29: t=61.7 + Δ=30.7 ●
0.53| : ∅=39.9 ±8.51 ∅Δ= 8.9 %0.7 -- expect:31.0ms
....·0 : t=38.2 - Δ= 8.8 ●
....·1 : t=36.6 - Δ= 7.2 ●
....·2 : t=31.1 - Δ= 1.8 ○
....·3 : t=39.9 - Δ=10.6 ●
....·4 : t=30.4 - Δ= 1.0 ○
....·5 : t=36.7 - Δ= 7.3 ●
....·6 : t=56.9 + Δ=27.6 ●
....·7 : t=42.9 + Δ=13.5 ●
....·8 : t=43.3 + Δ=13.9 ●
....·9 : t=32.3 - Δ= 3.0 ●
....·10: t=33.1 - Δ= 3.8 ●
....·11: t=52.9 + Δ=23.6 ●
....·12: t=31.6 - Δ= 2.2 ●
....·13: t=40.6 - Δ=11.2 ●
....·14: t=31.5 - Δ= 2.1 ●
....·15: t=32.6 - Δ= 3.2 ●
....·16: t=58.2 + Δ=28.8 ●
....·17: t=40.1 - Δ=10.7 ●
....·18: t=56.1 + Δ=26.7 ●
....·19: t=34.8 - Δ= 5.4 ●
....·20: t=33.4 - Δ= 4.1 ●
....·21: t=41.4 + Δ=12.0 ●
....·22: t=36.6 - Δ= 7.2 ●
....·23: t=39.2 - Δ= 9.9 ●
....·24: t=53.9 + Δ=24.6 ●
....·25: t=39.8 - Δ=10.5 ●
....·26: t=43.5 + Δ=14.1 ●
....·27: t=53.1 + Δ=23.8 ●
....·28: t=34.7 - Δ= 5.3 ●
....·29: t=50.0 + Δ=20.6 ●
0.56| : ∅=40.8 ±8.43 ∅Δ=11.5 %0.9 -- expect:29.3ms
....·0 : t=38.4 - Δ=10.6 ●
....·1 : t=31.1 - Δ= 3.3 ●
....·2 : t=46.3 + Δ=18.4 ●
....·3 : t=31.3 - Δ= 3.5 ●
....·4 : t=31.6 - Δ= 3.7 ●
....·5 : t=32.5 - Δ= 4.6 ●
....·6 : t=30.1 - Δ= 2.2 ●
....·7 : t=63.4 + Δ=35.6 ●
....·8 : t=32.3 - Δ= 4.5 ●
....·9 : t=51.4 + Δ=23.5 ●
....·10: t=40.7 - Δ=12.9 ●
....·11: t=48.5 + Δ=20.7 ●
....·12: t=31.5 - Δ= 3.7 ●
....·13: t=50.2 + Δ=22.3 ●
....·14: t=36.3 - Δ= 8.5 ●
....·15: t=33.2 - Δ= 5.4 ●
....·16: t=46.0 + Δ=18.2 ●
....·17: t=39.8 - Δ=11.9 ●
....·18: t=63.4 + Δ=35.5 ●
....·19: t=41.1 - Δ=13.2 ●
....·20: t=32.2 - Δ= 4.4 ●
....·21: t=41.5 + Δ=13.6 ●
....·22: t=36.3 - Δ= 8.5 ●
....·23: t=56.7 + Δ=28.8 ●
....·24: t=43.9 + Δ=16.1 ●
....·25: t=28.8 - Δ= 1.0 ○
....·26: t=36.2 - Δ= 8.3 ●
....·27: t=45.3 + Δ=17.4 ●
....·28: t=42.0 + Δ=14.2 ●
....·29: t=57.1 + Δ=29.3 ●
0.59| : ∅=41.3 ±9.72 ∅Δ=13.5 %1.0 -- expect:27.9ms
....·0 : t=46.6 + Δ=20.1 ●
....·1 : t=33.2 - Δ= 6.7 ●
....·2 : t=28.6 - Δ= 2.1 ●
....·3 : t=50.9 + Δ=24.4 ●
....·4 : t=33.2 - Δ= 6.7 ●
....·5 : t=32.7 - Δ= 6.2 ●
....·6 : t=44.5 + Δ=18.0 ●
....·7 : t=47.8 + Δ=21.3 ●
....·8 : t=35.8 - Δ= 9.3 ●
....·9 : t=52.6 + Δ=26.1 ●
....·10: t=38.2 - Δ=11.7 ●
....·11: t=31.8 - Δ= 5.3 ●
....·12: t=33.1 - Δ= 6.6 ●
....·13: t=34.7 - Δ= 8.2 ●
....·14: t=58.2 + Δ=31.7 ●
....·15: t=30.7 - Δ= 4.2 ●
....·16: t=38.0 - Δ=11.5 ●
....·17: t=50.3 + Δ=23.8 ●
....·18: t=35.3 - Δ= 8.8 ●
....·19: t=37.3 - Δ=10.8 ●
....·20: t=56.3 + Δ=29.8 ●
....·21: t=35.1 - Δ= 8.6 ●
....·22: t=36.7 - Δ=10.2 ●
....·23: t=33.2 - Δ= 6.7 ●
....·24: t=48.0 + Δ=21.5 ●
....·25: t=34.7 - Δ= 8.2 ●
....·26: t=34.3 - Δ= 7.8 ●
....·27: t=34.5 - Δ= 8.0 ●
....·28: t=30.9 - Δ= 4.4 ●
....·29: t=47.0 + Δ=20.5 ●
0.62| : ∅=39.5 ±8.21 ∅Δ=13.0 %1.0 -- expect:26.5ms
....·0 : t=34.0 - Δ= 8.8 ●
....·1 : t=49.9 + Δ=24.6 ●
....·2 : t=35.1 - Δ= 9.8 ●
....·3 : t=36.3 - Δ=11.0 ●
....·4 : t=35.9 - Δ=10.6 ●
....·5 : t=33.9 - Δ= 8.6 ●
....·6 : t=53.6 + Δ=28.4 ●
....·7 : t=33.9 - Δ= 8.6 ●
....·8 : t=36.1 - Δ=10.8 ●
....·9 : t=29.9 - Δ= 4.6 ●
....·10: t=55.6 + Δ=30.3 ●
....·11: t=46.6 + Δ=21.4 ●
....·12: t=32.1 - Δ= 6.8 ●
....·13: t=30.2 - Δ= 4.9 ●
....·14: t=37.5 - Δ=12.2 ●
....·15: t=31.8 - Δ= 6.5 ●
....·16: t=55.7 + Δ=30.4 ●
....·17: t=31.4 - Δ= 6.1 ●
....·18: t=32.1 - Δ= 6.9 ●
....·19: t=36.5 - Δ=11.3 ●
....·20: t=69.1 + Δ=43.8 ●
....·21: t=30.1 - Δ= 4.8 ●
....·22: t=47.8 + Δ=22.5 ●
....·23: t=33.9 - Δ= 8.6 ●
....·24: t=55.6 + Δ=30.3 ●
....·25: t=34.5 - Δ= 9.2 ●
....·26: t=30.3 - Δ= 5.0 ●
....·27: t=36.5 - Δ=11.2 ●
....·28: t=52.8 + Δ=27.5 ●
....·29: t=47.0 + Δ=21.7 ●
0.65| : ∅=40.2 ±10.18 ∅Δ=14.9 %1.0 -- expect:25.3ms
....·0 : t=34.0 - Δ= 9.8 ●
....·1 : t=35.2 - Δ=11.1 ●
....·2 : t=40.2 + Δ=16.0 ●
....·3 : t=33.3 - Δ= 9.2 ●
....·4 : t=40.1 + Δ=15.9 ●
....·5 : t=25.5 - Δ= 1.4 ○
....·6 : t=47.6 + Δ=23.4 ●
....·7 : t=30.6 - Δ= 6.5 ●
....·8 : t=27.7 - Δ= 3.5 ●
....·9 : t=51.7 + Δ=27.5 ●
....·10: t=31.6 - Δ= 7.5 ●
....·11: t=59.8 + Δ=35.6 ●
....·12: t=41.4 + Δ=17.2 ●
....·13: t=28.9 - Δ= 4.7 ●
....·14: t=63.3 + Δ=39.1 ●
....·15: t=29.7 - Δ= 5.5 ●
....·16: t=50.8 + Δ=26.6 ●
....·17: t=26.9 - Δ= 2.8 ●
....·18: t=27.6 - Δ= 3.4 ●
....·19: t=62.1 + Δ=37.9 ●
....·20: t=28.8 - Δ= 4.7 ●
....·21: t=35.5 - Δ=11.3 ●
....·22: t=33.0 - Δ= 8.9 ●
....·23: t=32.4 - Δ= 8.2 ●
....·24: t=41.1 + Δ=17.0 ●
....·25: t=33.7 - Δ= 9.5 ●
....·26: t=31.1 - Δ= 7.0 ●
....·27: t=47.0 + Δ=22.8 ●
....·28: t=31.3 - Δ= 7.1 ●
....·29: t=30.4 - Δ= 6.3 ●
0.68| : ∅=37.7 ±10.56 ∅Δ=13.6 %1.0 -- expect:24.2ms

View file

@ -104,3 +104,24 @@ Dump-06::
- refTime(singleThr): 31.8014ms
- runTime(Scheduler): 42.0706ms
Time-01::
Search for the »breaking Point« where the computation slips off schedule.
+
- using a load graph with 64 nodes in a single chain
- this chain progresses for the first half with no or low concurrency
- after node-23 the graph forks out massively up to 16 nodes in parallel
- concurrency is set to 4 and the worker pool limited accordingly
+
The overall density of the schedule (»stress factor«) is increased in small steps,
repeating each series 30 times and computing averages. The Scheduler is able to
follow initially, with very low standard derivation and low average delta to
the scheduled overall time. When approaching stress factor = 0.5, the number
of _glitches_ (with Δ > 2ms) increases, while the average delta and the
standard derivation exhibit a steep rise. This leads to the following
trigger criteria
+
- more than 55% glitches with Δ > 2ms
- σ > 2ms
- ∅Δ > 4ms

View file

@ -38,6 +38,8 @@
//#include "lib/util.hpp"
//#include <utility>
//#include <vector>
#include <array>
using test::Test;
//using std::move;
@ -52,6 +54,8 @@ namespace test {
// using lib::time::Offset;
// using lib::time::Time;
using util::_Fmt;
// using std::vector;
using std::array;
namespace { // Test definitions and setup...
@ -296,7 +300,6 @@ SHOW_EXPR(micros);
// Adapted Schedule----------
TRANSIENTLY(work::Config::COMPUTATION_CAPACITY) = 4;
auto LOAD_BASE = 500us;
double stressFac = 0.5;
uint concurrency = 4;
// Build-Performance-test-setup--------
@ -307,19 +310,40 @@ SHOW_EXPR(micros);
auto testSetup =
testLoad.setupSchedule(scheduler)
.withLoadTimeBase(LOAD_BASE)
.withLoadMem()
.withJobDeadline(50ms)
.withUpfrontPlanning()
.withAdaptedSchedule(stressFac, concurrency);
.withUpfrontPlanning();
auto sqr = [](auto n){ return n*n; };
_Fmt pointFmt{"....·%-2d: t=%4.1f %s Δ=%4.1f %s"};
_Fmt rowFmt {"%4.2f| : ∅=%4.1f ±%4.2f ∅Δ=%4.1f %%%3.1f -- expect:%4.1fms"};
double refTime = testLoad.calcRuntimeReference(LOAD_BASE);
SHOW_EXPR(refTime);
double runTime = testSetup.launch_and_wait();
SHOW_EXPR(runTime);
double expTime = testSetup.getExpectedEndTime();
SHOW_EXPR(expTime);
SHOW_EXPR(runTime-expTime)
const uint REPETITIONS{30};
for (double stress=0.2; stress < 0.7; stress+=0.03)
{
testSetup.withAdaptedSchedule(stress, concurrency);
array<double, REPETITIONS> runTime;
array<double, REPETITIONS> delta;
for (uint i=0; i<REPETITIONS; ++i)
{
runTime[i] = testSetup.launch_and_wait();
}
double expTime = testSetup.getExpectedEndTime();
double avg = lib::explore(runTime).resultSum() / REPETITIONS;
double avgd = fabs (avg-expTime);
double sdev{0};
uint misses{0};
for (uint i=0; i<REPETITIONS; ++i)
{
sdev += sqr (runTime[i] - avg);
delta[i] = fabs (runTime[i] - expTime);
if (delta[i] > 2000)
++misses;
cout << pointFmt % i % (runTime[i]/1000) % (runTime[i]>avg?"+":"-") % (delta[i]/1000) % (delta[i] > 2000? "":"") <<endl;
}
sdev = sqrt (sdev/REPETITIONS);
cout << rowFmt % stress % (avg/1000) % (sdev/1000) % (avgd/1000) % (double(misses)/REPETITIONS) % (expTime/1000) <<endl;
}
}

View file

@ -1946,8 +1946,9 @@ namespace test {
fillDefaultSchedule();
size_t numPoints = chainLoad_.topLevel()+2;
ENSURE (startTimes_.size() == numPoints);
Offset base{startTimes_.front(), anchor};
for (size_t level=0; level<numPoints; ++level)
startTimes_[level] += anchor;
startTimes_[level] += base;
return anchor;
}

View file

@ -107762,8 +107762,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1702946185508" ID="ID_857882482" MODIFIED="1704130713012" TEXT="darauf aufbauend: Stre&#xdf;test-Mechanismus entwicklen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1702946185508" ID="ID_857882482" MODIFIED="1704216915880" TEXT="darauf aufbauend: Stre&#xdf;test-Mechanismus entwicklen">
<icon BUILTIN="pencil"/>
<node CREATED="1702946236869" ID="ID_1475819731" MODIFIED="1704130799415">
<richcontent TYPE="NODE"><html>
<head/>
@ -107793,6 +107793,30 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="help"/>
<node CREATED="1704206510327" ID="ID_40492887" MODIFIED="1704206560860" TEXT="erster Eindruck: bei steigendem Druck geht Zeit asymptotisch gegen einen Sockelwert"/>
<node CREATED="1704206563512" ID="ID_366217988" MODIFIED="1704206579674" TEXT="Problem dabei: starke zuf&#xe4;llige Schwankungen"/>
<node CREATED="1704213495794" ID="ID_13093420" MODIFIED="1704213595391" TEXT="&#x27f9; Statistik &#xd83d;&#xdc80;&#xd83d;&#xddf1;&#x2622;"/>
<node CREATED="1704213601579" ID="ID_1669745150" MODIFIED="1704215362689" TEXT="mehrere Kriterien sprechen zugleich an">
<icon BUILTIN="forward"/>
<node CREATED="1704213628183" ID="ID_4871192" MODIFIED="1704215332007" TEXT="bei ~ stress = 0.5"/>
<node CREATED="1704213650125" ID="ID_1392777284" MODIFIED="1704215323229" TEXT="mehr als 55% &#xbb;Ausrutscher&#xab;"/>
<node CREATED="1704213691871" ID="ID_1890141551" MODIFIED="1704213722983" TEXT="&#x3c3; &gt; 2ms"/>
<node CREATED="1704213705701" ID="ID_773871282" MODIFIED="1704213741764" TEXT="&#x2205;&#x394; &gt; 4ms"/>
</node>
<node CREATED="1704214422581" ID="ID_1633300286" MODIFIED="1704214486089" TEXT="nahe am Kipp-Punkt erreicht die &#x2205;Laufzeit ein flaches Minimum">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist aber nicht klar genug ausgepr&#228;gt, um daraus ein Kriterium zu machen
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1704215339258" ID="ID_1504282419" MODIFIED="1704215358766" TEXT="diese Kriterien bew&#xe4;hren sich auch bei gr&#xf6;&#xdf;erer Statistik">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>