PLRsearch: Use stat trackers to shorten Integrator 67/16667/64
authorVratko Polak <vrpolak@cisco.com>
Wed, 2 Jan 2019 13:18:50 +0000 (14:18 +0100)
committerVratko Polak <vrpolak@cisco.com>
Fri, 10 May 2019 14:26:34 +0000 (14:26 +0000)
commit752a4c3304581fa375f520fdb15a9f87604e11be
tree74ecbfcbe5ad68ee428f9e49e34a030bd6ebae74
parent217c3803fc75fd0388b2326593447038647f28bd
PLRsearch: Use stat trackers to shorten Integrator

+ Extract several tracker classes and use them in Integrator.
+ Apply next_rate workarounds to focus more on critical region.
+ Rewrite stretch function, as the previous implementation was wrong.
+ Rework logging:
++ Use injected trace() function in Integrator.
++ Inject function that skips trace logging on default initialization.
++ Use the same multiprocessing-safe passing, but separate queue.
+ Set duration to 120m in Robot, but keep at 30m in Python.
+ Apply minor changes to make computations more reproducible:
++ Attempt to log everything needed by reproducibility in one line.
++ Log samples used, and make it settable as upper limit.
++ Use repr output in TRex scripts, to avoid rounding when copypasting.
+- Numpy seems to be sharing PRNG between processes.
+-- An edit to disable one thread is needed for full reproducibility.
+-- Such an edit is prepared, but will not be merged anytime soon.

Change-Id: Icf56429b34ab6de2d18a12e6c676e2d242b3ba4c
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
resources/libraries/python/PLRsearch/Integrator.py
resources/libraries/python/PLRsearch/PLRsearch.py
resources/libraries/python/PLRsearch/stat_trackers.py [new file with mode: 0644]
resources/libraries/python/TrafficGenerator.py
resources/libraries/robot/performance/performance_utils.robot
resources/tools/trex/trex_stateless_profile.py