PLRsearch: Use stat trackers to shorten Integrator 15/19515/1
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:28:16 +0000 (16:28 +0200)
commit0917531dd5b62f1ba6322e8019ee74ab9b25109a
treeeaaf7f2ac68f502c4c62dafe8de402c95c3126ef
parent0284fbd3eb5244de881f06a601deb201d772b5ff
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