Energy model-based tests, RFC v2#263
Conversation
2963ce0 to
7c24885
Compare
a4601c0 to
64e7ddf
Compare
|
Another example use: https://github.com/bjackman/lisa/blob/cie-test/tests/eas/load_tracking.py#L247 |
64e7ddf to
2f4417c
Compare
|
Today I ran the "generic" tests I've added here and compared the energy estimation from The only numerical analysis I did was to compare the estimated and measured energy for the entirety of each workload. There's a strong correlation (>95% coefficient) there. As for finer grained predictions (i.e. predicting& measuring the variation in energy consumption during the course of the workload), I plotted energy measurements over time (using ACME) and compared visually with plots of energy predictions over time. They look to match nicely but like I say this wasn't very scientific. Here's the notebook I used: https://github.com/bjackman/lisa/blob/energy-model-rfc-v2-evaluation/ipynb/Energy_Model_Eval.ipynb |
ionela-voinescu
left a comment
There was a problem hiding this comment.
Awesome job! This is my first set of comments (mostly nit-picky and about how to make the information more clear in the test notebook). I'm still giving some thought to the EnergyModel class and I'll follow up with that later).
tests/eas/acceptance.py
Outdated
There was a problem hiding this comment.
This class also has some references to bl.littles and bl.bigs in _assert_switch that were not replaced. I can't seem to be able to post a comment on those lines :-|.
tests/eas/acceptance.py
Outdated
| } | ||
|
|
||
| # Set to true to run a test only on heterogeneous systems | ||
| skip_on_smp = False |
There was a problem hiding this comment.
I see this set to false in the other classes also. If I haven't missed anything all tests will be run on SMP also and none of the tests will be skipped. I suppose the result of this should be that some of the tests are skipped on SMP as you won't see some of these behaviours that are expected there (behaviours characteristic to big.LITTLE). Therefore, shouldn't some of these have skip_on_smp set to True?
| cls.target.write_value( | ||
| "/proc/sys/kernel/sched_initial_task_util", 1024, verify=False) | ||
|
|
||
| def _do_test_first_cpu(self, experiment, tasks): |
There was a problem hiding this comment.
Shouldn't all task start on the big CPU only if the initial task utilisation was set to 1020 (that is if SET_INITIAL_TASK_UTIL)? Otherwise a failure of a task to start on the big CPU might not be a failure. As discussed it would be best if this test was removed or at least constrained.
There was a problem hiding this comment.
Yes. This function is just being moved from acceptance.py so I'll leave it here for now. None of the new tests should use it.
tests/eas/generic.py
Outdated
|
|
||
| Use the sched_switch trace event to find which CPU each task ran | ||
| on. Does not reflect idleness - tasks not running are shown as running | ||
| on the last CPU they woke ran on. |
There was a problem hiding this comment.
I suppose you meant: ".. are shown as running on the last CPU they ran on."
| cpu_utils[int(cpu)] += util | ||
| power = nrg_model.estimate_from_cpu_util(cpu_utils) | ||
| columns = power.keys() | ||
| return pd.Series([power[c] for c in columns], index=columns) |
There was a problem hiding this comment.
Can we have this in a meaningful (sorted) order as to be more clear? Also, as discussed, you could get rid of the power column or have it at the end for it to be more clear that it represents the total power.
There was a problem hiding this comment.
Yep. I think I'll remove the "power" column and sort the node columns by depth-first post-order.
tests/eas/generic.py
Outdated
|
|
||
| msg = 'Estimated {} bogo-Joules to run workload, expected {}'.format( | ||
| est_energy, exp_energy) | ||
| self.assertLess(est_energy, exp_energy * 1.2, msg=msg) |
There was a problem hiding this comment.
The 20% (1.2) value hard-coded here does not look good to me. Can we have it as a class variable as for negative_slack_allowed_pct?
tests/eas/generic.py
Outdated
| est_energy, exp_energy) | ||
| self.assertLess(est_energy, exp_energy * 1.2, msg=msg) | ||
|
|
||
| class OneSmallTask(EnergyModelTest): |
There was a problem hiding this comment.
I think these specific test cases should be in their own file and to keep generic.py hosting only the EnergyModelTest class.
There was a problem hiding this comment.
Why? In this case "generic" is supposed to mean "works on any platform".
There was a problem hiding this comment.
I thought generic meant more that it would hold the base EnergyModelTest class, which then can be extended in specific test classes. I find it more clear to have the EnergyModelTest class in its own file but it's just a preference.
ipynb/tests/Generic_EAS_Tests.ipynb
Outdated
| " /* TRAPPY_PUBLISH_REMOVE_STOP */\n", | ||
| " \n", | ||
| " req([\"require\", \"EventPlot\"], function() { /* TRAPPY_PUBLISH_REMOVE_LINE */\n", | ||
| " EventPlot.generate('fig_a283b792c9da4efe9e175518453bf49b', '/nbextensions/', {\"lanes\": [{\"id\": 0, \"label\": \"CPU :0\"}, {\"id\": 1, \"label\": \"CPU :1\"}, {\"id\": 2, \"label\": \"CPU :2\"}, {\"id\": 3, \"label\": \"CPU :3\"}, {\"id\": 4, \"label\": \"CPU :4\"}, {\"id\": 5, \"label\": \"CPU :5\"}], \"colorMap\": null, \"keys\": [\"task_wmig0-1981\", \"task_wmig1-1982\", \"rt-app-1980\", \"sshd-1986\", \"sshd-1985\", \"sshd-1983\", \"sshd-1989\", \"bash-1962\", \"bash-2000\", \"sh-1995\", \"sudo-1997\", \"sudo-1962\", \"sudo-1959\", \"bash-1988\", \"sudo-2000\", \"bash-1967\", \"sudo-1992\", \"kworker/u12:0-1963\", \"systemd-journal-192\", \"bash-1991\", \"sshd-1991\", \"bash-1959\", \"kworker/u12:2-1998\", \"sudo-1955\", \"sudo-1964\", \"sshd-1988\", \"sh-1965\", \"kworker/u12:2-1990\", \"kworker/u12:2-1993\", \"kworker/u12:2-1984\", \"bash-1992\", \"kworker/u12:2-2001\", \"bash-1980\", \"kworker/u12:2-1987\", \"bash-1997\", \"shutils-1966\", \"shutils-1969\", \"shutils-1976\", \"shutils-1996\", \"busybox-1968\", \"busybox-1974\", \"sudo-1999\", \"busybox-1978\", \"sudo-1961\", \"sudo-1994\", \"sudo-2002\", \"rt-app-1982\", \"shutils-1971\", \"shutils-1973\", \"shutils-1975\", \"busybox-1972\", \"modprobe-1960\", \"kworker/u12:0-1960\", \"shutils-1970\", \"shutils-1978\", \"busybox-1970\", \"shutils-1972\", \"shutils-1974\", \"sshd-245\", \"shutils-1979\", \"sh-1957\", \"shutils-1968\", \"modprobe-1963\", \"shutils-1977\", \"bash-1854\", \"rs:main Q:Reg-262\", \"jbd2/sda1-8-107\", \"shutils-1967\", \"sshd-1852\", \"kworker/0:2-175\", \"shutils-1995\", \"in:imuxsock-260\", \"kworker/2:1-42\", \"busybox-1979\", \"scp-1985\", \"sh-1964\", \"kworker/4:1-40\", \"sh-1994\", \"shutils-1965\", \"scp-1988\", \"scp-1991\", \"kworker/3:0-21\", \"kworker/5:0-1099\", \"sh-2003\", \"ksoftirqd/3-20\", \"ksoftirqd/0-3\", \"kworker/1:0-821\", \"busybox-1966\", \"usb-storage-101\", \"ksoftirqd/5-28\", \"kschedfreq:0-1659\", \"kworker/u12:2-91\", \"ksoftirqd/4-24\", \"rt-app-1981\", \"kworker/3:1H-109\", \"kworker/u12:0-1400\", \"kschedfreq:1-1678\", \"rcu_preempt-7\", \"kworker/0:1H-110\", \"rcu_sched-8\", \"ksoftirqd/2-16\", \"ksoftirqd/1-12\", \"modprobe-2001\", \"modprobe-1987\", \"modprobe-1998\", \"modprobe-1984\", \"kworker/5:1H-137\"], \"stride\": false, \"showSummary\": true, \"xDomain\": [2.7999998565064743e-05, 9.0314649999982066], \"data\": {\"sudo-1959\": {\"1\": [[0.41662099999848579, 0.41704699999900186], [0.41707099999985076, 0.41814699999849836], [0.41816999999900872, 0.42065999999977066], [0.42067499999939173, 0.42070999999850756], [0.42072299999927054, 0.42190999999911583], [0.42338399999971443, 0.42340499999954773], [0.42417499999828578, 0.42510999999831256]], \"2\": [[0.41094299999895156, 0.41363199999977951]]}, \"busybox-1978\": {\"5\": [[2.0367399999995541, 2.0377249999983178]]}, \"busybox-1979\": {\"2\": [[2.0388689999999769, 2.0390469999983907]]}, \"busybox-1974\": {\"3\": [[2.0300459999998566, 2.0310789999984991]]}, \"rcu_preempt-7\": {\"0\": [[6.8749159999988478, 6.874934999999823], [6.8789829999986978, 6.879001999999673], [6.8829739999982849, 6.8829939999995986], [6.8870289999995293, 6.887046999998347]], \"1\": [[0.41097699999954784, 0.41098799999963376], [1.130909999999858, 1.1309209999999439], [1.1350159999983589, 1.1350289999991219], [2.4470469999996567, 2.4470729999993637], [2.5309079999988171, 2.530918999998903], [2.534985999998753, 2.5349989999995159], [2.5390049999987241, 2.5390199999983452], [2.5429879999992409, 2.5430029999988619], [6.7629249999990861, 6.7629389999983687], [7.0909209999990708, 7.0909349999983533], [7.2029179999990447, 7.2029449999990902], [7.2069189999983791, 7.2069319999991421], [7.2109059999984311, 7.2109189999991941], [7.2151239999984682, 7.2151369999992312], [8.3269209999998566, 8.3269349999991391], [9.0229119999985414, 9.0229249999993044], [9.0269159999988915, 9.026929999999993]], \"2\": [[0.41494799999964016, 0.41497999999955937], [0.41905599999881815, 0.41909399999894958], [0.42291999999906693, 0.42292999999881431], [0.42691299999933108, 0.42692699999861361], [1.1189339999982622, 1.1189629999989847], [1.1229099999982282, 1.1229239999993297], [1.1269059999995079, 1.126920999999129], [2.4509169999982987, 2.4509289999987232], [2.4549859999988257, 2.4549989999995887], [2.4589869999999792, 2.4589989999985846], [2.4629749999985506, 2.4629889999996522], [2.4669839999987744, 2.4669959999991988], [2.4709759999987, 2.4709899999998015], [2.5469919999995909, 2.5470059999988734], [4.735049999999319, 4.7350689999984752], [4.738999999999578, 4.739012999998522], [4.7429899999988265, 4.7430029999995895], [4.7470819999998639, 4.7471109999987675], [4.7510479999982635, 4.7510759999986476], [6.7669859999987239, 6.7670009999983449], [6.7710689999985334, 6.7710819999992964], [6.7750939999987168, 6.7751069999994797], [6.7790059999988443, 6.7790199999999459], [6.783051999998861, 6.7830639999992854], [6.78700199999912, 6.7870159999984025], [6.7910509999983333, 6.7910629999987577], [6.7950039999996079, 6.795018999999229], [6.7990519999984826, 6.7990639999989071], [6.8030499999986205, 6.8030629999993835], [6.8070499999994354, 6.8070619999998598], [6.8510059999989608, 6.8510189999997237], [6.8550879999984318, 6.8551159999988158], [6.8590499999991152, 6.859082999999373], [6.8629879999989498, 6.8630029999985709], [6.8990119999998569, 6.8990319999993517], [6.9029119999995601, 6.9029239999999845], [6.9070929999998043, 6.9071059999987483], [6.9111229999998613, 6.9111359999988053], [7.0950159999993048, 7.0950319999992644], [7.0990619999993214, 7.0990759999986039], [7.1070569999992586, 7.1070729999992182], [7.1149839999998221, 7.1149979999991046], [7.1189859999994951, 7.1189979999999196], [7.1229759999987436, 7.1229899999998452], [7.1269909999991796, 7.1270049999984622], [7.1310649999995803, 7.1310939999984839], [7.1311209999985294, 7.1311459999997169], [7.1389899999994668, 7.1390029999984108], [7.1750449999999546, 7.1750669999983074], [7.1789259999986825, 7.1789389999994455], [8.3309859999990294, 8.3310050000000047], [8.3349149999994552, 8.3349269999998796], [8.3391319999991538, 8.3391469999987748], [8.3431539999983215, 8.3431649999984074], [8.3470749999996769, 8.3470879999986209], [8.3510799999985466, 8.3510929999993095], [8.355121999999028, 8.3551359999983106], [8.3590749999984837, 8.3590859999985696], [8.3630739999989601, 8.363086999999723], [8.3670639999982086, 8.3670759999986331], [9.0309269999997923, 9.0309419999994134]], \"3\": [[6.5311899999996967, 6.5312229999999545], [6.5349739999983285, 6.5350099999996019], [6.5391379999982746, 6.539175999998406], [6.5431319999988773, 6.5431709999993473], [6.547138999998424, 6.5471759999982169], [6.551127999999153, 6.5511659999992844], [6.5551409999989119, 6.5551779999987048], [6.5591289999993023, 6.5591639999984181], [6.7550419999988662, 6.7550669999982347], [6.7590679999993881, 6.7590869999985443], [7.0349969999988389, 7.0350169999983336], [7.0389859999995679, 7.0390039999983856], [7.0429749999984779, 7.0429949999997916], [7.0469839999987016, 7.0470029999996768], [7.0509739999997691, 7.0509929999989254], [7.0549469999987195, 7.0549709999995684], [7.0590529999990395, 7.059092999999848], [7.0630849999997736, 7.0631209999992279], [7.0669189999989612, 7.0669439999983297], [7.0711329999994632, 7.071154999999635], [7.0751109999982873, 7.0751329999984591], [7.4309319999993022, 7.4309529999991355]], \"4\": [[7.4349349999993137, 7.4349579999998241], [7.4392919999991136, 7.4393139999992854], [7.4431649999987712, 7.4431879999992816], [7.4471489999996265, 7.4471709999997984], [7.451136999998198, 7.4511579999998503], [7.4551489999994374, 7.4551699999992707], [7.4591299999992771, 7.4591499999987718], [8.319032999999763, 8.319060999998328], [8.3229679999985819, 8.3230019999991782]], \"5\": [[0.0029849999991711229, 0.0030119999992166413], [0.0069419999999809079, 0.0069799999982933514], [0.010914999998931307, 0.010930999998890911], [0.015142999998715823, 0.015159999999013962], [0.02298999999948137, 0.023010999999314663], [0.026993999999831431, 0.027014999999664724], [0.030987999998615123, 0.03100799999992887], [0.034987999999430031, 0.035006999998586252], [0.24697999999989406, 0.24699799999871175], [0.25111499999911757, 0.25113399999827379], [0.25504599999840138, 0.25506399999903806], [0.43108799999936309, 0.43111099999987346], [0.43516299999828334, 0.43518199999925855], [0.43917799999871932, 0.43919799999821407], [0.44312999999965541, 0.4431509999994887], [0.44715499999983876, 0.44717599999967206], [0.4511289999991277, 0.45115099999929953], [0.45505399999819929, 0.4550729999991745], [1.1110389999994368, 1.1110659999994823], [1.1150779999989027, 1.1151149999986956], [1.1391339999991033, 1.1391599999988102], [1.1430969999983063, 1.1431199999988166], [1.1471369999999297, 1.147157999999763], [1.1511199999986275, 1.1511419999987993], [1.1551249999993161, 1.1551469999994879], [1.1590819999983069, 1.1591009999992821], [2.0190009999987524, 2.0190259999999398], [2.0230159999991884, 2.023046999998769], [2.0269119999993563, 2.0269349999998667], [2.0309169999982259, 2.0309389999983978], [2.0349149999983638, 2.0349379999988741], [2.0389289999984612, 2.0389509999986331], [2.0430369999994582, 2.04305899999963], [2.0471239999988029, 2.0471449999986362], [2.0511769999993703, 2.0511989999995421], [2.0551749999995081, 2.0551959999993414], [2.0592079999987618, 2.0592479999995703], [2.0631609999982174, 2.0631829999983893], [2.0670559999998659, 2.0670749999990221], [6.8670339999989665, 6.867073999999775], [6.870997999998508, 6.871023999998215], [6.8909199999998236, 6.8909389999989799], [6.8949149999989459, 6.8949339999999211], [6.9149479999996402, 6.9149739999993471], [6.9190979999984847, 6.9191339999997581], [6.9230469999984052, 6.9230859999988752], [6.9269939999994676, 6.9270139999989624], [6.9310069999992265, 6.9310279999990598], [6.9350799999992887, 6.9350989999984449], [6.9390079999993759, 6.9390269999985321], [6.9430509999983769, 6.9430689999990136], [6.9470069999988482, 6.9470269999983429], [6.9510429999991175, 6.9510619999982737], [6.9550049999998009, 6.9550249999992957], [6.9590489999991405, 6.9590679999982967], [6.9630429999997432, 6.9630639999995765], [6.9670519999999669, 6.9670709999991232], [7.0109929999998712, 7.011012999999366], [7.0149839999994583, 7.0150029999986145], [7.0189709999995102, 7.018990999999005], [7.0229769999987184, 7.0229959999996936], [7.0269719999996596, 7.026996999999028], [7.0309259999994538, 7.0309409999990748], [7.0791429999990214, 7.0791629999985162], [7.0829249999987951, 7.0829429999994318], [7.0869909999983065, 7.0870099999992817], [7.1829859999998007, 7.1830079999999725], [7.1870819999985542, 7.187101999999868], [7.1910619999998744, 7.1910769999994955], [7.1949839999997494, 7.1950029999989056], [7.1990489999989222, 7.1990669999995589], [7.2191639999982726, 7.2191879999991215], [7.2231899999987945, 7.2232099999982893], [7.2271959999998217, 7.2272359999988112], [7.231101999999737, 7.2311219999992318], [7.2350969999988592, 7.2351179999986925], [7.2391009999992093, 7.2391199999983655], [7.4150689999987662, 7.4151049999982206], [7.4191299999984039, 7.4191469999987021], [7.4229079999986425, 7.4229289999984758], [7.4269599999988714, 7.4269959999983257]]}, \"busybox-1970\": {\"1\": [[2.0234699999982695, 2.0241809999988618]], \"5\": [[2.023219999999128, 2.0233579999985523]]}, \"sudo-1955\": {\"2\": [[0.00070599999889964238, 0.002840999999534688], [0.0033389999989594799, 0.0033609999991313089]]}, \"busybox-1972\": {\"2\": [[2.0267879999992147, 2.0275069999988773]]}, \"shutils-1995\": {\"5\": [[7.4329949999992095, 7.4330169999993814], [7.433045999998285, 7.4330629999985831], [7.4330939999999828, 7.4331099999999424], [7.4331399999991845, 7.4331579999998212], [7.4331869999987248, 7.4332029999986844], [7.433231999999407, 7.4332479999993666], [7.4333949999981996, 7.4341139999996813]]}, \"shutils-1996\": {\"3\": [[7.4316379999982018, 7.4321399999989808]], \"4\": [[7.4322309999988647, 7.4334219999982452]]}, \"kworker/1:0-821\": {\"1\": [[0.21511099999952421, 0.21512799999982235], [0.41092899999966903, 0.41097699999954784], [1.7191309999998339, 1.7191829999992478], [1.7197149999992689, 1.7197519999990618], [1.7203319999989617, 1.7203649999992194], [2.4469689999987168, 2.4470469999996567], [3.215065999998842, 3.2150899999996909], [4.2309439999989991, 4.2310489999999845], [6.2309579999982816, 6.2310879999986355], [8.3189849999998842, 8.3190569999987929]]}, \"bash-1959\": {\"1\": [[0.40864099999998871, 0.40899499999977706]], \"2\": [[0.40909599999940838, 0.41093099999852711]]}, \"sshd-1991\": {\"1\": [[7.2029449999990902, 7.2029539999984991], [7.2029599999987113, 7.2052689999982249]], \"2\": [[7.2015019999998913, 7.2022999999990134]], \"5\": [[7.2023869999993622, 7.2029199999997218]]}, \"busybox-1968\": {\"0\": [[2.0195889999995416, 2.0208689999999478]], \"1\": [[2.0191289999984292, 2.0194549999996525]]}, \"busybox-1966\": {\"0\": [[1.1287209999991319, 1.1287859999993088], [1.1288009999989299, 1.1288589999985561], [1.1288739999999962, 1.1289309999992838], [1.1289469999992434, 1.1290039999985311], [1.1290189999999711, 1.1290749999989202], [1.1290889999982028, 1.1292609999982233], [1.1292739999989863, 1.1292899999989459], [1.1293229999992036, 1.1293619999996736], [1.130048999999417, 1.1300669999982347]]}, \"sh-1994\": {\"2\": [[7.4341849999982514, 7.4343519999983982]]}, \"sh-1995\": {\"4\": [[7.4280169999983627, 7.4282739999998739]], \"5\": [[7.428314999999202, 7.4316119999984949]]}, \"bash-1967\": {\"1\": [[2.0153429999991204, 2.0160439999999653]], \"2\": [[2.0161959999986721, 2.0183059999999386]]}, \"ksoftirqd/2-16\": {\"2\": [[0.42292999999881431, 0.42294599999877391], [8.3431309999996301, 8.3431539999983215]]}, \"sshd-1852\": {\"0\": [[0.0035309999984747265, 0.0035570000000006985], [0.0036039999995409744, 0.0038829999994050013], [0.15552199999910954, 0.15565399999832152], [0.15606899999875168, 0.15618499999982305], [0.20564399999966554, 0.20574899999883201], [0.2061809999995603, 0.20630399999936344], [0.35757399999965855, 0.35768699999971432], [0.35823699999855307, 0.35829899999953341], [0.35832099999970524, 0.35833999999886146], [0.3583569999991596, 0.3583810000000085], [0.35839499999929103, 0.35841299999992771], [0.35842699999921024, 0.35862399999859917], [0.358645999998771, 0.3586669999986043], [0.35868399999890244, 0.35870599999907427], [0.35871599999882164, 0.35873499999979686], [0.35874899999907939, 0.3587969999989582], [0.35881199999857927, 0.35882899999887741], [0.35884199999964039, 0.35885999999845808], [0.3588739999995596, 0.35891999999876134], [0.35893499999838241, 0.35898699999961536], [0.35902999999962049, 0.35904899999877671], [0.35906299999987823, 0.35907999999835738], [0.35909299999912037, 0.35911099999975704], [0.35912499999903957, 0.35914199999933771], [0.35915499999828171, 0.35917199999857985], [0.35918599999968137, 0.35920199999964098], [0.35921599999892351, 0.35923399999956018], [0.35924799999884272, 0.35927599999922677], [0.35928899999998976, 0.3593109999983426], [0.35932399999910558, 0.35934099999940372], [0.35935499999868625, 0.35937199999898439], [0.35938499999974738, 0.35940199999822653], [0.35941499999898952, 0.35943199999928765], [0.35944499999823165, 0.35946199999852979], [0.35947599999963131, 0.359493999998449], [0.35950799999955052, 0.35955199999989418], [0.35958299999947485, 0.35961199999837845], [0.35962599999947997, 0.35964399999829766], [0.35965799999939918, 0.3596849999994447], [0.35971299999982875, 0.35983899999882851], [0.35984999999891443, 0.35987199999908626], [0.35988699999870732, 0.35990399999900546], [0.359917999998288, 0.35993499999858614], [0.35994899999968766, 0.3599659999999858], [0.36000199999944016, 0.36001999999825784], [0.36003299999902083, 0.36005899999872781], [0.36008699999911187, 0.36011799999869254], [0.36013299999831361, 0.36014999999861175], [0.36016299999937473, 0.36017999999967287], [0.36019099999975879, 0.36020799999823794], [0.36022199999933946, 0.36026099999980943], [0.36027499999909196, 0.36029299999972864], [0.36030699999901117, 0.36032299999897077], [0.3603369999982533, 0.36035399999855144], [0.36036699999931443, 0.36038499999995111], [0.36039899999923364, 0.36041599999953178], [0.36042999999881431, 0.36044899999978952], [0.36046299999907205, 0.36047999999937019], [0.36049299999831419, 0.36052199999903678], [0.36053599999831931, 0.36055099999975937], [0.36056399999870337, 0.36072199999944132], [0.4076809999987745, 0.40775199999916367], [0.40872899999885703, 0.40885199999866018], [1.0591189999995549, 1.0593349999999191], [1.0595899999989342, 1.0597849999994651], [1.0598169999993843, 1.0613609999982145], [1.0613939999984723, 1.062657999998919], [1.06267299999854, 1.0626879999999801], [1.0627319999985048, 1.0627489999988029], [1.0627619999995659, 1.0627759999988484], [1.0627879999992729, 1.0628019999985554], [1.0628129999986413, 1.0628269999997428], [1.0628409999990254, 1.0628549999983079], [1.0628669999987324, 1.0628809999998339], [1.0629229999995005, 1.0629549999994197], [1.0629679999983637, 1.0629899999985355], [1.0630029999992985, 1.0630209999999352], [1.0630339999988792, 1.0630519999995158], [1.0630639999999403, 1.0630769999988843], [1.0630899999996473, 1.0631029999985913], [1.0631139999986772, 1.0631279999997787], [1.0631389999998646, 1.0631529999991471], [1.0631649999995716, 1.0631789999988541], [1.0632189999996626, 1.0632329999989452], [1.0632459999997081, 1.0632589999986521], [1.0632709999990766, 1.0632859999986977], [1.0632989999994606, 1.0633119999984046], [1.0633249999991676, 1.0633379999999306], [1.0633499999985361, 1.0633639999996376], [1.0633759999982431, 1.0633899999993446], [1.0634039999986271, 1.0635489999986021], [1.1091899999992165, 1.1092599999992672], [1.1092939999998634, 1.1093239999991056], [1.1095189999996364, 1.1096119999983785], [1.1316319999987172, 1.1318339999997988], [1.7606659999983094, 1.7609469999988505], [1.761317999998937, 1.7614340000000084], [1.7614989999983663, 1.761782999999923], [1.8107739999995829, 1.8110349999988102], [1.8116689999988012, 1.8118089999989024], [1.8120459999990999, 1.8123859999996057], [1.9638409999988653, 1.9641669999982696], [1.9663219999983994, 1.9666419999994105], [2.0139449999987846, 2.0141419999999925], [2.0142639999994572, 2.0143839999982447], [2.0396209999998973, 2.0398229999991599], [2.1911599999984901, 2.1913979999990261], [2.1919169999982842, 2.1921229999989009], [2.2413139999989653, 2.2415489999984857], [2.2424119999996037, 2.2425369999982649], [2.2427669999997306, 2.2431279999982507], [2.3947659999994357, 2.3950359999998909], [2.3967149999989488, 2.3968629999999393], [2.4448929999998654, 2.4450959999994666], [2.4460979999985284, 2.4462359999997716], [6.6834199999993871, 6.6837459999987914], [6.7335379999985889, 6.7338609999987966], [6.7345969999987574, 6.7349039999990055], [7.3618479999986448, 7.3620299999984127], [7.3624919999983831, 7.3628419999986363], [7.3628769999995711, 7.3630619999985356], [7.3631009999990056, 7.3633759999993345], [7.3634929999989254, 7.3635679999988497], [7.3636129999995319, 7.3637169999983598], [7.3637380000000121, 7.3638129999999364], [7.3638339999997697, 7.3639659999989817], [7.3640089999989868, 7.3640849999992497], [7.3641049999987445, 7.3642069999987143], [7.3642279999985476, 7.3643019999999524], [7.3643219999994471, 7.3644559999993362], [7.3644969999986643, 7.3646119999993971], [7.412107999998625, 7.4122819999993226], [7.413219999998546, 7.4133469999997033], [7.4356389999993553, 7.4358399999982794], [8.063533999998981, 8.0638479999997799], [8.0642059999991034, 8.0644169999995938], [8.1136199999982637, 8.1138189999983297], [8.1143339999998716, 8.1144729999996343], [8.2659459999995306, 8.2662049999998999], [8.2663829999983136, 8.2666009999993548], [8.2671169999994163, 8.2672749999983353], [8.2675799999997253, 8.2677349999994476], [8.2680469999995694, 8.2681979999997566], [8.2684319999989384, 8.2684689999987313], [8.268540999999459, 8.268605999999636], [8.2687619999996969, 8.26884599999903], [8.2690119999988383, 8.2690959999999905], [8.2692209999986517, 8.2693019999987882], [8.2694289999999455, 8.2695139999996172], [8.2696839999989606, 8.2697709999993094], [8.2698959999997896, 8.2699769999999262], [8.2700749999985419, 8.2701819999983854], [8.270396999998411, 8.2704799999992247], [8.2705339999993157, 8.2706429999998363], [8.2708349999993516, 8.270965999998225], [8.2711879999988014, 8.271270999999615], [8.2714019999984885, 8.2714819999982865], [8.2715839999982563, 8.2716899999995803], [8.2719159999996918, 8.2719989999986865], [8.2721349999992526, 8.2722149999990506], [8.2723459999997431, 8.2724259999995411], [8.2725779999982478, 8.272687999999107], [8.2728699999988748, 8.2729529999996885], [8.2730889999984356, 8.2731689999982336], [8.2732739999992191, 8.2733819999994012], [8.2735349999984464, 8.2736459999996441], [8.2738289999997505, 8.2739129999990837], [8.2740999999987253, 8.2742179999986547], [8.2743549999995594, 8.2744359999996959], [8.2744939999993221, 8.2746009999991657], [8.2747589999999036, 8.2748689999989438], [8.2750779999987572, 8.2751819999994041], [8.2753199999988283, 8.2754009999989648], [8.2754599999989296, 8.2755669999987731], [8.2756949999984499, 8.2758149999990565], [8.3158219999986613, 8.3159939999986818], [8.316992999998547, 8.317150999999285], [8.33383799999865, 8.3340309999985038], [8.9672949999985576, 8.9674989999984973], [8.9677509999983158, 8.9681419999997161], [8.9683009999989736, 8.9683319999985542], [8.9683599999989383, 8.9683859999986453], [8.9684689999994589, 8.9684959999995044], [8.9685189999981958, 8.9685539999991306], [8.9685759999993024, 8.9686039999996865], [8.9686269999983779, 8.9686519999995653], [8.9686749999982567, 8.9687099999991915], [8.9687329999997019, 8.9687619999986055], [8.9687849999991158, 8.9688099999984843], [8.9688329999989946, 8.9688589999987016], [8.9688799999985349, 8.9689049999997223], [8.9689269999998942, 8.9689849999995204], [8.9690109999992274, 8.9690379999992729], [8.9690599999994447, 8.9690849999988131], [8.969106999998985, 8.969132999998692], [8.9691549999988638, 8.9691809999985708], [8.9692039999990811, 8.9692299999987881], [8.9692519999989599, 8.9692769999983284], [8.9692999999988388, 8.9693259999985457], [8.9693499999993946, 8.9693829999996524], [8.9694049999998242, 8.9694309999995312], [8.969452999999703, 8.9695099999989907], [8.9695339999998396, 8.9695649999994203], [8.9696289999992587, 8.9696529999982886], [8.9697119999982533, 8.9697379999997793], [8.9697609999984707, 8.9697869999999966], [8.9698109999990265, 8.969835999998395], [8.9698589999989053, 8.9698849999986123], [8.9699069999987842, 8.9699329999984911], [8.969954999998663, 8.96998099999837], [8.9700029999985418, 8.9700279999997292], [8.970049999999901, 8.970075999999608], [8.9700969999994413, 8.9701229999991483], [8.9701449999993201, 8.9701729999997042], [8.970194999999876, 8.9702299999989918], [8.9702519999991637, 8.9702779999988707], [8.9702999999990425, 8.9703579999986687], [8.9703819999995176, 8.9706559999995079], [9.017519999999422, 9.0176979999996547], [9.0177539999986038, 9.017796999998609], [9.0180089999994379, 9.0181409999986499]], \"3\": [[0.20608899999933783, 0.20615199999883771], [2.5300999999999476, 2.5302449999999226], [2.5304639999994833, 2.5306469999995898], [6.5307389999998122, 6.5311899999996967], [6.5316899999997986, 6.5318639999986772]], \"4\": [[6.6844249999994645, 6.6847399999987829]], \"5\": [[0.42547999999987951, 0.42565099999956146]]}, \"bash-1962\": {\"1\": [[1.1103279999988445, 1.1110729999982141]], \"2\": [[1.1112389999998413, 1.1160169999984646]]}, \"ksoftirqd/1-12\": {\"1\": [[6.9111629999988509, 6.9111739999989368], [7.2069319999991421, 7.2069529999989754]]}, \"kworker/u12:2-1993\": {\"2\": [[7.42131899999913, 7.4213489999983722]], \"4\": [[7.4214489999994839, 7.423345999999583]]}, \"kworker/u12:2-1990\": {\"2\": [[7.089005999998335, 7.0890399999989313]], \"4\": [[7.089137999999366, 7.0910489999987476]]}, \"sshd-1983\": {\"0\": [[6.8472189999993134, 6.847353999999541], [6.8503389999987121, 6.8630119999997987], [6.8678209999998217, 6.8684069999999338], [6.86842599999909, 6.8684549999998126], [6.8684749999993073, 6.8686609999986104], [6.8689319999994041, 6.8691989999988436], [6.8695169999991776, 6.8710259999988921], [6.8997409999992669, 6.900259999998525]], \"1\": [[6.7536799999998038, 6.7549569999991945], [6.7549739999994927, 6.7553849999985687], [6.7554159999999683, 6.7555869999996503], [6.7556159999985539, 6.7569259999982023], [6.7569659999990108, 6.7584589999987656], [6.7584719999995286, 6.7585039999994478], [6.7585129999988567, 6.7621419999995851], [6.7644809999983408, 6.774716999998418], [6.7764689999985421, 6.7764969999989262], [6.7765479999998206, 6.7995439999995142], [6.8078539999987697, 6.8078939999995782]], \"2\": [[6.753140999999232, 6.7535559999996622], [6.863203999999314, 6.8674989999999525], [6.899279999999635, 6.8994279999988066]], \"3\": [[6.9003579999989597, 6.9012019999991026]], \"5\": [[6.8711879999991652, 6.888915999999881], [6.890146999998251, 6.8902589999997872], [6.8902849999994942, 6.8903009999994538], [6.8903289999998378, 6.8904029999994236], [6.8905639999993582, 6.8907059999983176], [6.8909659999990254, 6.8917929999988701], [6.8920489999982237, 6.8921239999999671], [6.8966209999998682, 6.8967249999986961], [6.8971519999995508, 6.8972339999982069], [6.8972709999998187, 6.8980589999991935], [6.8986609999992652, 6.8987319999996544], [6.8988879999997152, 6.8990419999990991]]}, \"kworker/u12:2-1998\": {\"2\": [[8.3257189999985712, 8.3257489999996324]], \"4\": [[8.325857999998334, 8.3279889999994339]]}, \"kworker/3:1H-109\": {\"3\": [[0.0062359999992622761, 0.0062889999990147771], [0.0085439999984373571, 0.0085569999992003432], [6.2355489999990823, 6.235579999998663], [6.2384099999999307, 6.2384369999999763]]}, \"sshd-1988\": {\"1\": [[7.0546039999990171, 7.054932999999437], [7.0549499999997352, 7.0563729999994393]], \"2\": [[7.0535959999997431, 7.0544759999993403]]}, \"sshd-1989\": {\"0\": [[7.1713719999988825, 7.1716309999992518], [7.1743289999994886, 7.1750789999987319], [7.1871629999986908, 7.1873919999998179], [7.1881109999994806, 7.1883799999995972], [7.18873099999837, 7.1887749999987136], [7.2003609999992477, 7.2005129999997735], [7.2007809999995516, 7.2012929999982589]], \"1\": [[7.0826689999994414, 7.0887769999990269], [7.0911829999986367, 7.1012379999992845], [7.1027169999997568, 7.1027379999995901], [7.10280099999909, 7.1118179999994027], [7.1118249999999534, 7.1259029999982886], [7.187432999999146, 7.1878149999993184], [7.1888009999984206, 7.1901979999984178], [7.1902069999996456, 7.1902429999991], [7.1902529999988474, 7.2000069999994594], [7.2000239999997575, 7.2000389999993786], [7.2000559999996767, 7.2001039999995555]], \"2\": [[7.1333319999994274, 7.133429999999862], [7.1752519999990909, 7.1789259999986825], [7.1789389999994455, 7.1868159999994532]], \"4\": [[7.2013209999986429, 7.2016619999994873], [7.2018999999982043, 7.2019939999991038], [7.2069519999986369, 7.207059999998819], [7.2075019999992946, 7.2075939999995171], [7.2078139999994164, 7.2081249999991996], [7.2085709999992105, 7.2086509999990085], [7.2088749999984429, 7.209153999998307], [7.2093129999993835, 7.2106909999984055]]}, \"modprobe-1998\": {\"4\": [[8.3280339999982971, 8.3280489999997371]]}, \"kschedfreq:0-1659\": {\"0\": [[0.0018399999989924254, 0.0018899999995483086], [0.0031029999991005752, 0.0031359999993583187], [0.0034909999994852114, 0.0035309999984747265], [0.0035570000000006985, 0.0036039999995409744], [0.0049119999985123286, 0.0049509999989822973], [0.0062329999982466688, 0.0062689999995200196], [0.0086379999993368983, 0.0086629999987053452], [0.0087209999983315356, 0.0087429999985033646], [0.415698999999222, 0.41573999999855005], [0.41805299999941781, 0.41809799999828101], [0.41811499999857915, 0.41816699999981211], [0.41893499999969208, 0.41895999999906053], [0.41946299999835901, 0.41949799999929382], [0.4207269999988057, 0.4207589999987249], [0.42315399999824876, 0.42317699999875913], [0.42322199999944132, 0.42324399999961315], [0.4251139999996667, 0.42512499999975262], [0.47337999999945168, 0.4734439999992901], [0.47534699999960139, 0.47542599999906088], [0.47544399999969755, 0.47549499999877298], [0.62720899999840185, 0.62730199999896286], [0.62878699999964738, 0.62881099999867729], [0.62883699999838427, 0.62886099999923317], [1.11109899999974, 1.1111239999991085], [1.1121269999985088, 1.1121479999983421], [1.1145229999983712, 1.1145679999990534], [1.1145859999996901, 1.1146269999990182], [1.115007999998852, 1.1150329999982205], [1.1150489999999991, 1.1150719999986904], [1.1159279999992577, 1.1159499999994296], [1.119035999998232, 1.1190679999999702], [1.1225429999994958, 1.1226329999990412], [1.1237349999992148, 1.1237649999984569], [1.1240419999994629, 1.1240639999996347], [1.1240869999983261, 1.1241139999983716], [1.124761999999464, 1.1247759999987466], [1.1249759999991511, 1.124986999999237], [1.127424999998766, 1.1274389999998675], [1.1307449999985693, 1.1307659999984025], [1.1742309999990539, 1.1742759999997361], [1.1758749999989959, 1.1759479999982432], [1.1759659999988799, 1.1760149999990972], [1.3351559999991878, 1.3352449999983946], [1.33688599999914, 1.3369429999984277], [1.3369529999999941, 1.3369839999995747], [1.7606059999998251, 1.7606659999983094], [1.7623249999996915, 1.762403999999151], [1.7624229999983072, 1.7624739999992016], [1.7991559999991296, 1.7992449999983364], [1.8008809999992081, 1.8009379999984958], [1.8009489999985817, 1.8009789999996428], [1.8107449999988603, 1.8107739999995829], [1.851104999999734, 1.8511669999988953], [1.8527659999999742, 1.8528449999994336], [1.8528629999982513, 1.8529129999988072], [2.0031509999989794, 2.0032379999993282], [2.004875999999058, 2.0049329999983456], [2.004942999999912, 2.0049729999991541], [2.0139149999995425, 2.0139449999987846], [2.0192309999983991, 2.0192649999989953], [2.0210939999997208, 2.0211109999982], [2.0234789999994973, 2.0234959999997955], [2.024463999998261, 2.0244799999982206], [2.0248269999992772, 2.0248399999982212], [2.0258789999988949, 2.0258939999985159], [2.0261009999994712, 2.0261149999987538], [2.0277809999988676, 2.0277969999988272], [2.0281179999983578, 2.0281309999991208], [2.0292399999998452, 2.0292549999994662], [2.0294539999995322, 2.0294669999984762], [2.0348759999997128, 2.0348959999992076], [2.0349149999983638, 2.0349299999998038], [2.0357549999989715, 2.0357739999999467], [2.0359349999998813, 2.0359489999991638], [2.037849999998798, 2.0378659999987576], [2.0379329999996116, 2.0379449999982171], [2.0388739999998506, 2.0388889999994717], [2.0389269999996031, 2.0389389999982086], [2.0550839999996242, 2.0551259999992908], [2.0551389999982348, 2.0551519999989978], [2.0570469999984198, 2.0570909999987634], [2.0571079999990616, 2.0571539999982633], [2.0584519999993063, 2.0584999999991851], [2.0599899999997433, 2.0600139999987732], [2.0600379999996221, 2.0600599999997939], [2.5432339999988471, 2.5432959999998275], [2.5448619999988296, 2.5449249999983294], [2.5449429999989661, 2.5449909999988449], [2.7304629999998724, 2.7305519999990793], [2.7306359999984124, 2.7306559999997262], [2.73205599999892, 2.7320749999998952], [2.7321039999987988, 2.7321299999985058], [2.7334319999990839, 2.7334549999995943], [2.7349079999985406, 2.7349239999985002], [2.7349539999995613, 2.7349709999998595], [2.8310259999998379, 2.8310719999990397], [2.8325139999997191, 2.8325459999996383], [2.8325739999982034, 2.8326129999986733], [2.8349259999995411, 2.8349669999988691], [2.8363919999992504, 2.8364069999988715], [2.8364369999999326, 2.8364549999987503], [2.9303479999998672, 2.9303999999992811], [2.9309529999991355, 2.9309729999986303], [2.9318399999992835, 2.9318699999985256], [2.9318979999989097, 2.9319389999982377], [2.9332439999998314, 2.9332839999988209], [2.9347119999983988, 2.9347269999998389], [2.934756999999081, 2.9347749999997177], [3.0303379999986646, 3.0303909999984171], [3.0309619999989081, 3.0309829999987414], [3.0318299999998999, 3.0318609999994806], [3.0318889999998646, 3.0319299999991927], [3.0332329999982903, 3.0332739999994374], [3.0346999999983382, 3.0347149999997782], [3.0347449999990204, 3.0347649999985151], [3.0631639999992331, 3.06318999999894], [3.0850319999990461, 3.085107999999309], [3.0865259999991395, 3.0865559999983816], [3.0865859999994427, 3.08661999999822], [3.1303809999990335, 3.130405999998402], [3.1309389999987616, 3.1309549999987212], [3.1367239999999583, 3.1367769999997108], [3.1382059999996272, 3.1382229999999254], [3.1382529999991675, 3.1382729999986623], [3.2303389999997307, 3.2303909999991447], [3.2309509999995498, 3.2309709999990446], [3.2318299999988085, 3.2318609999983892], [3.2318889999987732, 3.2319279999992432], [3.2332329999990179, 3.2332729999998264], [3.2346989999987272, 3.2347149999986868], [3.2347439999994094, 3.2347619999982271], [3.3303399999986141, 3.3303949999990436], [3.3309669999998732, 3.330986999999368], [3.3318319999998494, 3.33186299999943], [3.3318899999994755, 3.3319309999988036], [3.3332349999982398, 3.3332759999993868], [3.3347019999982876, 3.3347169999997277], [3.3347469999989698, 3.3347649999996065], [3.4303399999989779, 3.4303919999983918], [3.430951999998797, 3.4309719999982917], [3.4318329999987327, 3.4318629999997938], [3.4318909999983589, 3.4319319999995059], [3.4332369999992807, 3.4332779999986087], [3.43470299999899, 3.434717999998611], [3.4347479999996722, 3.4347659999984899], [3.530347999998412, 3.5303979999989679], [3.5309519999991608, 3.5309729999989941], [3.5318379999989702, 3.5318689999985509], [3.5318969999989349, 3.5319389999986015], [3.5332429999998567, 3.5332839999991847], [3.534708999999566, 3.5347249999995256], [3.5347539999984292, 3.5347729999994044], [3.9673429999984364, 3.9673649999986083], [3.9695699999992939, 3.9695899999987887], [3.9721259999987524, 3.9721939999999449], [3.9722119999987626, 3.9722699999983888], [4.1992109999991953, 4.1993029999994178], [4.2009429999998247, 4.2009999999991123], [4.2010099999988597, 4.2010409999984404], [5.1111689999997907, 5.1112279999997554], [5.1128219999991416, 5.1128999999982625], [5.1129179999988992, 5.1129679999994551], [5.1310429999994085, 5.1311289999994187], [5.1325349999988248, 5.1325559999986581], [5.1325819999983651, 5.132605999999214], [5.2304069999991043, 5.2304689999982656], [5.2309399999994639, 5.2309639999984938], [5.2319819999993342, 5.2320239999990008], [5.232042999999976, 5.2320899999995163], [5.2333889999990788, 5.2334369999989576], [5.2349269999995158, 5.2349499999982072], [5.2349739999990561, 5.234997999999905], [5.3304059999991296, 5.3304689999986294], [5.3309439999993629, 5.3309679999983928], [5.331981999999698, 5.3320279999988998], [5.3320459999995364, 5.3320919999987382], [5.3333919999986392, 5.3334409999988566], [5.3349299999990762, 5.3349529999995866], [5.3349769999986165, 5.3349999999991269], [5.4304099999990285, 5.4304729999985284], [5.430940999998711, 5.43096499999956], [5.4319869999999355, 5.4320289999996021], [5.4320469999984198, 5.4320949999982986], [5.4333929999993416, 5.4334409999992204], [5.4349309999997786, 5.43495399999847], [5.4349779999993189, 5.4350009999998292], [5.5304069999983767, 5.5304679999990185], [5.5309399999987363, 5.5309639999995852], [5.5319829999989452, 5.5320249999986117], [5.5320429999992484, 5.5320899999987887], [5.5333899999986897, 5.5334379999985686], [5.5349269999987882, 5.5349499999992986], [5.534974999998667, 5.5349969999988389], [5.96744999999828, 5.9675029999998515], [5.9700449999982084, 5.9700879999982135], [5.9723319999993691, 5.9723999999987427], [5.9724179999993794, 5.9724759999990056], [6.5310539999991306, 6.5310929999996006], [6.534972999999809, 6.5350019999987126], [6.5391700000000128, 6.5391979999985779], [6.5431639999987965, 6.543190999998842], [6.5471679999991466, 6.5471969999998691], [6.5511659999992844, 6.5511959999985265], [6.5551659999982803, 6.5551939999986644], [6.5591639999984181, 6.5591919999988022], [6.7232139999996434, 6.7232489999987592], [6.7350639999986015, 6.7351369999996678], [6.7366769999989629, 6.7367009999998118], [6.7367249999988417, 6.7367499999982101], [6.7551019999991695, 6.7551179999991291], [6.7643629999984114, 6.7643849999985832], [6.7869279999995342, 6.7869429999991553], [6.8630649999995512, 6.8631029999996827], [6.864702999999281, 6.8647409999994125], [6.8647579999997106, 6.8647969999983616], [6.8669339999996737, 6.8669819999995525], [6.8684069999999338, 6.86842599999909], [6.8684549999998126, 6.8684749999993073], [6.89915899999869, 6.8991779999996652], [6.8997289999988425, 6.8997409999992669], [6.9149429999997665, 6.9149649999999383], [6.9185819999984233, 6.9186249999984284], [6.9189359999982116, 6.9189609999993991], [6.920442999999068, 6.9204859999990731], [6.9205039999997098, 6.9205499999989115], [6.921848999998474, 6.9218969999983528], [6.9235159999989264, 6.9235349999999016], [6.9235909999988507, 6.923611999998684], [7.0550749999983964, 7.0551069999983156], [7.0567299999984243, 7.0567549999996118], [7.0589359999994485, 7.0589839999993274], [7.0590039999988221, 7.0590599999995902], [7.0603549999996176, 7.0603909999990719], [7.0617429999983869, 7.0617909999982658], [7.0631219999995665, 7.0631589999993594], [7.0634699999991426, 7.063492999999653], [7.0635169999986829, 7.0635399999991932], [7.0651359999992565, 7.0651539999998931], [7.0711909999990894, 7.0712109999985842], [7.091099999999642, 7.0911189999987982], [7.1137169999983598, 7.1137329999983194], [7.1590649999998277, 7.159111999999368], [7.1606339999998454, 7.1606789999987086], [7.1606959999990067, 7.1607389999990119], [7.1713219999983266, 7.1713719999988825], [7.1727929999997286, 7.1728139999995619], [7.1728389999989304, 7.1728619999994407], [7.1751299999996263, 7.1751449999992474], [7.1871509999982663, 7.1871629999986908], [7.1874469999984285, 7.1874599999991915], [7.1880989999990561, 7.1881109999994806], [7.1888189999990573, 7.1888319999998203], [7.2003479999984847, 7.2003609999992477], [7.2109229999987292, 7.2109439999985625], [7.2231279999996332, 7.2231719999999768], [7.2249469999987923, 7.2249829999982467], [7.2250009999988833, 7.225044999999227], [7.2263399999992544, 7.2263859999984561], [7.2278929999993125, 7.2279159999998228], [7.2279409999991913, 7.2279639999997016], [7.4257699999998295, 7.425822999999582], [7.4270069999984116, 7.4270389999983308], [7.4274739999982557, 7.4275199999992765], [7.4275389999984327, 7.42758799999865], [7.4288849999993545, 7.428939999999784], [7.4304269999993267, 7.4304539999993722], [7.4304769999998825, 7.430501999999251], [7.43092599999909, 7.430940999998711], [7.4316319999998086, 7.4316459999990911], [7.4321829999989859, 7.4321959999997489], [7.4329929999985325, 7.433006999999634], [7.4347069999985251, 7.4347199999992881], [7.4807669999991049, 7.4808409999986907], [7.482427999999345, 7.4825049999999464], [7.4825229999987641, 7.48257299999932], [7.6391549999989365, 7.6392429999996239], [7.6408799999990151, 7.6409379999986413], [7.6409479999983887, 7.6409779999994498], [8.0634709999994811, 8.063533999998981], [8.0651289999987057, 8.06520399999863], [8.0652219999992667, 8.0652739999986807], [8.1031539999985398, 8.1032409999988886], [8.1048789999986184, 8.1049369999982446], [8.1049479999983305, 8.1049789999997301], [8.1135899999990215, 8.1136199999982637], [8.1551729999991949, 8.1552359999986948], [8.1568329999990965, 8.1569099999996979], [8.1569279999985156, 8.1569779999990715], [8.2669789999999921, 8.2670479999997042], [8.2670989999987796, 8.2671169999994163], [8.2684689999987313, 8.2684879999997065], [8.2685169999986101, 8.268540999999459], [8.3186599999989994, 8.3186899999982415], [8.3189409999995405, 8.3189509999992879], [8.318967999999586, 8.3189909999982774], [8.3213469999991503, 8.3213969999997062], [8.3214129999996658, 8.3215079999990849], [8.32155099999909, 8.3215729999992618], [8.3229229999997187, 8.3229609999998502], [8.3239779999985331, 8.3240149999983259], [8.3263649999989866, 8.3263889999998355], [8.3264119999985269, 8.3264369999997143], [8.3279819999988831, 8.3280009999998583], [8.3301529999989725, 8.3301669999982551], [8.3315499999989697, 8.3315809999985504], [8.3315919999986363, 8.3316029999987222], [8.3765559999992547, 8.376615999999558], [8.3782179999998334, 8.3782649999993737], [8.3782830000000104, 8.3783239999993384], [8.5352049999983137, 8.5352839999995922], [8.5368359999993118, 8.5368599999983417], [8.5368839999991906, 8.536908999998559], [8.9672699999991892, 8.9672949999985576], [8.9695649999994203, 8.9696049999984098], [8.9696529999982886, 8.9696889999995619], [9.0071549999993294, 9.0072419999996782], [9.008879999999408, 9.0089369999986957], [9.0089469999984431, 9.0089779999998427], [9.0174909999986994, 9.017519999999422], [9.0266649999994115, 9.0266879999999219], [9.0288059999984398, 9.0288299999992887], [9.0300189999998111, 9.0300369999986287], [9.0314469999993889, 9.0314649999982066]]}, \"kworker/u12:2-2001\": {\"1\": [[9.0247339999987162, 9.0247609999987617]], \"4\": [[9.0248579999988578, 9.0266709999996237]]}, \"ksoftirqd/0-3\": {\"0\": [[2.0389389999982086, 2.0389629999990575], [6.7351369999996678, 6.7351669999989099], [6.8869949999989331, 6.8870289999995293], [6.8909659999990254, 6.8909859999985201], [7.3630619999985356, 7.3630749999992986], [8.3273389999994833, 8.3274079999991955], [8.3328359999995882, 8.3328889999993407], [8.3389749999987544, 8.3390199999994365], [8.3430449999996199, 8.3434299999989889], [8.3460899999990943, 8.3461319999987609], [8.3461469999983819, 8.3461569999999483]]}, \"ksoftirqd/5-28\": {\"5\": [[0.43915699999888602, 0.43917799999871932], [1.13911299999927, 1.1391339999991033], [2.0511589999987336, 2.0511769999993703], [6.9190409999991971, 6.9190979999984847], [8.290406999998595, 8.2904499999986001], [8.2919069999989006, 8.2919479999982286], [8.2949599999992643, 8.2949959999987186], [8.2967799999987619, 8.2968329999985144], [8.2968469999996159, 8.2968609999988985], [8.3084399999988818, 8.3085389999996551], [8.3152309999986755, 8.3153139999994892]]}, \"kworker/5:1H-137\": {\"5\": [[8.2968329999985144, 8.2968469999996159]]}, \"ksoftirqd/3-20\": {\"3\": [[0.0061139999997976702, 0.0062359999992622761], [0.0062889999990147771, 0.0063279999994847458], [0.0084769999994023237, 0.0085439999984373571], [0.0085569999992003432, 0.0085699999999633292], [1.0156129999995755, 1.0156439999991562], [3.0637019999994664, 3.0637339999993856], [5.1115129999998317, 5.1115609999997105], [6.2353919999986829, 6.2355489999990823], [6.235579999998663, 6.2356139999992592], [6.2382649999999558, 6.2384099999999307], [6.2384369999999763, 6.238469999998415], [7.1593619999985094, 7.1594129999994038], [8.2867969999988418, 8.2868709999984276], [8.2886669999988953, 8.2887359999986074]]}, \"rs:main Q:Reg-262\": {\"3\": [[0.0017779999998310814, 0.0020019999992655357], [7.2104889999991428, 7.2106169999988197], [9.0288219999983994, 9.0289429999993445]], \"4\": [[0.42315599999892584, 0.42323799999940093], [0.42470799999864539, 0.42477599999983795], [6.9002299999992829, 6.900352999999086], [7.0524829999994836, 7.0526199999985693], [7.0661809999983234, 7.0663049999984651], [7.2011409999995522, 7.2012909999994008], [7.4258789999985311, 7.4261229999992793], [8.3303779999987455, 8.330510999998296], [8.3317219999989902, 8.3318099999996775]], \"5\": [[0.4212069999994128, 0.42138399999930698], [1.1219279999986611, 1.1221019999993587], [1.1238669999984268, 1.12400499999967], [1.130950999999186, 1.1310659999999189], [6.8900059999996301, 6.890146999998251], [7.4274779999996099, 7.4276189999982307], [7.4348799999988842, 7.435020999999324], [8.3331619999989925, 8.3332389999995939], [9.0300619999998162, 9.0301459999991494]]}, \"kworker/u12:0-1960\": {\"1\": [[0.41386299999976472, 0.41389299999900686]], \"4\": [[0.41398999999910302, 0.41494299999976647]]}, \"kworker/u12:0-1963\": {\"1\": [[1.1163699999997334, 1.1163979999982985]], \"5\": [[1.1165069999988191, 1.118955999998434]]}, \"kworker/u12:2-1984\": {\"2\": [[6.7623739999999088, 6.7624059999998281]], \"3\": [[6.7624939999986964, 6.764365999999427]]}, \"kworker/u12:2-1987\": {\"2\": [[6.9236179999988963, 6.923650999999154]], \"3\": [[6.9236719999989873, 6.9254779999992024]]}, \"modprobe-1984\": {\"3\": [[6.7644069999987551, 6.7644219999983761]]}, \"modprobe-1987\": {\"3\": [[6.9255189999985305, 6.9255349999984901]]}, \"sh-2003\": {\"4\": [[9.0311589999982971, 9.0313319999986561]], \"5\": [[9.0314259999995556, 9.0314649999982066]]}, \"kschedfreq:1-1678\": {\"1\": [[0.0029479999993782258, 0.002977999998620362], [0.0036989999989600619, 0.003733999999894877], [0.0059649999984685564, 0.0059759999985544709], [0.0061879999993834645, 0.0062029999990045326], [0.21509099999821046, 0.21511099999952421], [0.21680499999820313, 0.21685699999943608], [0.21693899999991118, 0.21696799999881478], [0.35904499999924155, 0.3591069999984029], [0.36075899999923422, 0.36078599999927974], [0.36094999999841093, 0.36096299999917392], [0.40902899999855435, 0.40903899999830173], [0.41092099999877973, 0.41092899999966903], [0.41106499999841617, 0.41107099999862839], [0.41391899999871384, 0.41394299999956274], [0.41496199999892269, 0.41498299999875599], [0.41557099999954517, 0.41561999999976251], [0.41570499999943422, 0.41573499999867636], [0.41704699999900186, 0.41707099999985076], [0.41814699999849836, 0.41816999999900872], [0.42065999999977066, 0.42067499999939173], [0.42070999999850756, 0.42072299999927054], [0.42225299999881827, 0.42226299999856565], [0.42324599999847123, 0.42325799999889568], [0.42690799999945739, 0.4269189999995433], [0.47091399999953865, 0.4709419999999227], [0.47265499999957683, 0.47271199999886448], [0.47273299999869778, 0.4727629999997589], [0.9671809999999823, 0.96720999999888591], [1.1102669999982027, 1.1103279999988445], [1.1111339999988559, 1.1111519999994925], [1.1119689999995899, 1.1119869999984076], [1.1121039999998175, 1.1121189999994385], [1.116359999999986, 1.1163699999997334], [1.1164219999991474, 1.1164299999982177], [1.1189339999982622, 1.1189439999998285], [1.1350059999986115, 1.1350159999983589], [1.1623119999985647, 1.1623469999994995], [1.1639679999989312, 1.1640089999982592], [1.164028999999573, 1.1640559999996185], [1.215143999999782, 1.2151699999994889], [1.7191059999986464, 1.7191309999998339], [1.9670639999985724, 1.9670909999986179], [2.0152799999996205, 2.0153429999991204], [2.0161099999986618, 2.0161309999984951], [2.0169329999989714, 2.0169429999987187], [2.0172249999995984, 2.0172399999992194], [2.0182609999992565, 2.0182679999998072], [2.0183929999984684, 2.0184009999993577], [2.0191189999986818, 2.0191289999984292], [2.0194789999986824, 2.0194879999999102], [2.0209319999994477, 2.0209409999988566], [2.0315919999993639, 2.0316019999991113], [2.0323499999994965, 2.0323579999985668], [2.0327959999995073, 2.0328049999989162], [2.0344529999983934, 2.0344599999989441], [2.0348189999986062, 2.0348299999986921], [2.0348759999997128, 2.034881999999925], [2.0673429999988002, 2.0673529999985476], [2.2151259999991453, 2.2151609999982611], [2.2169079999985115, 2.2169669999984762], [2.2175739999984216, 2.2176259999996546], [2.4460439999984374, 2.4461069999997562], [2.4468779999988328, 2.4469689999987168], [2.4477109999988897, 2.4477329999990616], [2.4479589999991731, 2.4479739999987942], [2.4980739999991783, 2.4980899999991379], [2.4989229999991949, 2.4989369999984774], [2.499653999999282, 2.4996779999983119], [2.4999669999997423, 2.4999909999987722], [2.5012969999988854, 2.5013299999991432], [2.5028629999997065, 2.5028709999987768], [2.5031579999995301, 2.503166999998939], [2.6302759999998671, 2.6303119999993214], [2.6309349999992264, 2.630948999998509], [2.6318909999990865, 2.6319159999984549], [2.6323069999998552, 2.6323329999995622], [2.6336379999993369, 2.6336699999992561], [2.6352249999999913, 2.6352329999990616], [2.6352779999997438, 2.6352869999991526], [3.9671949999992648, 3.9672219999993104], [3.9695019999999204, 3.9695259999989503], [3.9695529999989958, 3.9695759999995062], [3.9709309999998368, 3.9709449999991193], [3.972234999999273, 3.972247999998217], [3.9748159999999189, 3.9748259999996662], [3.9752119999993738, 3.9752209999987826], [4.1303269999989425, 4.1303570000000036], [4.1309209999999439, 4.1309289999990142], [4.1317269999999553, 4.1317419999995764], [4.1321279999992839, 4.132142999998905], [4.1334459999998217, 4.1334639999986393], [4.1350259999999253, 4.1350339999989956], [4.1350779999993392, 4.1350869999987481], [4.2151279999998224, 4.2151639999992767], [4.2168659999988449, 4.2169129999983852], [4.2170819999992091, 4.217105999998239], [4.2303119999996852, 4.2303349999983766], [4.2309329999989131, 4.2309439999989991], [4.2672079999993002, 4.2672419999998965], [4.268778999999995, 4.2687889999997424], [4.2689639999989595, 4.2689749999990454], [4.3303259999993315, 4.3303569999989122], [4.330921999999191, 4.3309319999989384], [4.3319089999986318, 4.3319269999992684], [4.3322149999985413, 4.3322339999995165], [4.3335369999986142, 4.3335599999991246], [4.3351009999987582, 4.3351089999996475], [4.3353989999995974, 4.3354069999986677], [4.4302749999988009, 4.4303119999985938], [4.4309429999993881, 4.4309569999986707], [4.4318709999988641, 4.4318969999985711], [4.4321860000000015, 4.4322119999997085], [4.4335169999994832, 4.433549999999741], [4.4350839999988239, 4.4350919999997132], [4.4353809999993246, 4.4353899999987334], [4.5303269999985787, 4.5303579999999783], [4.5309359999992012, 4.5309489999999641], [4.5319189999991067, 4.5319449999988137], [4.5322349999987637, 4.5322609999984707], [4.5335659999982454, 4.5335979999999836], [4.535132999999405, 4.5351409999984753], [4.5354309999984252, 4.5354399999996531], [4.630286999999953, 4.6303199999983917], [4.6309429999982967, 4.6309569999993982], [4.6318779999983235, 4.6319039999998495], [4.6321939999997994, 4.6322199999995064], [4.6335239999989426, 4.6335559999988618], [4.6350909999982832, 4.6350999999995111], [4.6353889999991225, 4.6353979999985313], [4.7430589999985386, 4.7430899999999383], [4.7447559999982332, 4.7447969999993802], [4.7448859999985871, 4.7449139999989711], [4.7471349999996164, 4.7471599999989849], [4.7511459999986982, 4.7511989999984507], [4.7512139999998908, 4.7512319999987085], [4.7528859999983979, 4.7529149999991205], [4.7530059999990044, 4.7530229999993026], [4.8032489999986865, 4.8032849999999598], [4.8049819999996544, 4.8050359999997454], [4.805116999999882, 4.8051479999994626], [4.9671979999984615, 4.967226999999184], [5.2152039999982662, 5.215238999999201], [5.9671779999989667, 5.9672139999984211], [5.96723799999927, 5.9672729999983858], [5.9697089999990567, 5.96972999999889], [5.9700119999997696, 5.9700339999999414], [5.9709309999998368, 5.9709419999999227], [5.9713399999982357, 5.9713539999993372], [5.9724399999995512, 5.972459999999046], [5.9740209999999934, 5.9740289999990637], [5.9744159999991098, 5.9744249999985186], [6.1303259999986039, 6.1303570000000036], [6.1309159999982512, 6.1309239999991405], [6.1317279999984748, 6.1317429999999149], [6.1321289999996225, 6.1321439999992435], [6.1334469999983412, 6.1334649999989779], [6.1350269999984448, 6.1350349999993341], [6.1350799999981973, 6.1350879999990866], [6.2151269999994838, 6.2151629999989382], [6.2168869999986782, 6.2169339999982185], [6.2171679999992193, 6.2171909999997297], [6.2303089999986696, 6.23033199999918], [6.2309469999981957, 6.2309579999982816], [6.267294999999649, 6.2673299999987648], [6.2688869999983581, 6.2688949999992474], [6.2692779999997583, 6.2692889999998442], [6.3303280000000086, 6.3303579999992508], [6.3309259999987262, 6.3309359999984736], [6.3319289999999455, 6.3319479999991017], [6.3323299999992742, 6.3323499999987689], [6.3336529999996856, 6.3336759999983769], [6.3352359999989858, 6.3352439999998751], [6.335626999998567, 6.3356369999983144], [6.4302819999993517, 6.430315999999948], [6.4309319999993022, 6.4309499999999389], [6.4318959999982326, 6.43192099999942], [6.432305999998789, 6.4323329999988346], [6.4336359999997512, 6.433669000000009], [6.4352229999985866, 6.4352309999994759], [6.4356139999999868, 6.4356229999993957], [6.5303289999992558, 6.5303599999988364], [6.5309689999994589, 6.5309849999994185], [6.5319979999985662, 6.5320349999983591], [6.5320769999998447, 6.5321069999990868], [6.5334059999986493, 6.5334419999999227], [6.534959999999046, 6.5349709999991319], [6.5350179999986722, 6.5350289999987581], [6.7536539999982779, 6.7536799999998038], [6.7549569999991945, 6.7549739999994927], [6.7553849999985687, 6.7554159999999683], [6.7555869999996503, 6.7556159999985539], [6.7569259999982023, 6.7569659999990108], [6.7584589999987656, 6.7584719999995286], [6.7585039999994478, 6.7585129999988567], [6.7624369999994087, 6.7624479999994946], [6.7629169999981968, 6.7629249999990861], [6.7751919999991514, 6.7752049999999144], [6.7764629999983299, 6.7764689999985421], [6.7995559999999386, 6.7995649999993475], [6.8078459999996994, 6.8078539999987697], [6.8086209999983112, 6.8086289999992005], [6.8510799999985466, 6.8511059999982535], [6.8526979999987816, 6.8527389999999286], [6.8527579999990849, 6.8527849999991304], [6.8551359999983106, 6.855160999999498], [6.8591469999992114, 6.8591979999982868], [6.8607439999996132, 6.8607609999999113], [6.8607899999988149, 6.8608009999989008], [6.863058999999339, 6.8630699999994249], [6.8633029999982682, 6.8633139999983541], [6.8916709999994055, 6.891684999998688], [6.8993519999985438, 6.8993679999985034], [6.9029079999982059, 6.9029149999987567], [6.911099999999351, 6.9111629999988509], [6.9128249999994296, 6.9128549999986717], [6.9128799999998591, 6.9129059999995661], [6.9149209999995946, 6.914956999999049], [6.9166409999997995, 6.9166499999992084], [6.9166839999998047, 6.916693999999552], [6.9236839999994118, 6.9236949999994977], [6.9255159999993339, 6.9255229999998846], [6.966919999998936, 6.9669359999988956], [6.9673059999986435, 6.9673279999988154], [6.969649999999092, 6.9696749999984604], [6.9697459999988496, 6.9697799999994459], [6.9699469999995927, 6.9699789999995119], [6.9712859999999637, 6.9713279999996303], [6.9730279999985214, 6.9730559999989055], [6.9731469999987894, 6.9731609999998909], [7.054573999999775, 7.0546039999990171], [7.054932999999437, 7.0549499999997352], [7.0563729999994393, 7.05640399999902], [7.0565759999990405, 7.0566099999996368], [7.0579209999996237, 7.0579429999997956], [7.0590329999995447, 7.0590569999985746], [7.061491999998907, 7.061506999998528], [7.0616989999998623, 7.0617149999998219], [7.089070999998512, 7.0890829999989364], [7.0909130000000005, 7.0909209999990708], [7.1118179999994027, 7.1118249999999534], [7.1271179999985179, 7.127145999998902], [7.1289159999996627, 7.1289569999989908], [7.1290449999996781, 7.1290729999982432], [7.1311389999991661, 7.1311669999995502], [7.1334329999990587, 7.1334889999998268], [7.1335029999991093, 7.1335199999994074], [7.1351799999993091, 7.1351979999999458], [7.1353299999991577, 7.1353419999995822], [7.1392589999995835, 7.1392769999984012], [7.1751179999992019, 7.1751319999984844], [7.1753509999998641, 7.1753609999996115], [7.1855259999992995, 7.185550999998668], [7.1870129999988421, 7.1870339999986754], [7.1873479999994743, 7.1873819999982516], [7.1874099999986356, 7.187432999999146], [7.188732999999047, 7.1887699999988399], [7.1901979999984178, 7.1902069999996456], [7.1902429999991, 7.1902529999988474], [7.2023279999993974, 7.2023379999991448], [7.2029539999984991, 7.2029599999987113], [7.205298999999286, 7.2053079999986949], [7.2077349999999569, 7.2077469999985624], [7.2151149999990594, 7.2151239999984682], [7.2404409999999189, 7.2404649999989488], [7.242086999998719, 7.242127999999866], [7.2422169999990729, 7.2422439999991184], [7.3629449999989447, 7.3629849999997532], [7.3646639999988111, 7.3646809999991092], [7.3649589999986347, 7.3649699999987206], [7.4134959999992134, 7.4135049999986222], [7.4150779999999941, 7.4150989999998274], [7.4 |
There was a problem hiding this comment.
It would be more clear if these would print a success message when the test is passed as there is no output from it otherwise. The same for test_task_placement.
There was a problem hiding this comment.
True, will add this.
ipynb/tests/Generic_EAS_Tests.ipynb
Outdated
| }, | ||
| "outputs": [], | ||
| "source": [ | ||
| "utils = t.get_task_utils_df(experiment)" |
There was a problem hiding this comment.
While I understand why you decided not to print the data frames for this call and the ones below, I for one would like to have more information in these test notebooks as it gives me more confidence in the test. If you have some calls to some functions that do not return anything it might make people think that something is wrong and maybe the test is not doing what it's suppose to be doing. I think an option would be to print the traces and plots first and maybe have a debug section after that where the data frames are printed and the process is explained in a few sentences.
There was a problem hiding this comment.
The functions do return something, it's just assigned to a variable, I wouldn't expect to see any output from running that code. But you're right that this is unclear.
How about if we print the docstring for the function before calling it, then you basically get a detailed description of what's going on.
There was a problem hiding this comment.
Sorry! I did not make myself clear. I did not mean to say that the calls don't return anything but that you can't see anything being printed as a result of them being run. I suppose printing the docstrings could work but what I meant to say is that it would be nice to have a section where you can see more details on the test being run. Details on the workload, the data frames obtained, something that could represent the basis of a debugging process.
There was a problem hiding this comment.
I don't intend for this to be for debugging the tests, after all they are absolutely flawless in every single way. Rather it's intended as a starting point for looking at what element of the kernel behaviour was judged to be faulty (since when you have a failure from a lisa-test run it's pretty much "computer says no").
Basically the only thing I mean for this to show is a plot of the workload task residency and a plot of the energy estimations, so you can see which part of the workload run was judged to be mis-scheduled. I don't imagine users diving python in order to do that, but rather just taking a look and seeing "oh yeah this 5% task ran on a big CPU at t=3.5" then going back to the kernel to figure out why that happened.
Nonetheless I'll add some more english to explain what is going on here.
| "collapsed": true | ||
| }, | ||
| "source": [ | ||
| "# Run Generic Automated EAS tests\n", |
There was a problem hiding this comment.
It would be good to have more information about what the tests report and how the evaluation is done. As you say below "These tests make estimation of the energy efficiency of task placements.. " + "by.. ". It would also be nice to make clear the distinction between the estimated observed power consumption (estimated based on the energy model provided and the observed task placement decisions made) and the expected power consumption (estimated based on the energy model provided and the expected optimal task placements). This can be done either here at the beginning or further in the notebook where the estimated and expected data frames are obtained.
There was a problem hiding this comment.
True. I will try to clarify in the notebook.
|
OK, thanks for the review. I've responded to the comments to remind myself what changes I need to make, and I'll come back once I have time to make the code changes. |
2f4417c to
8224f68
Compare
|
OK I've pushed a new version where I've tried to address your comments:
|
ionela-voinescu
left a comment
There was a problem hiding this comment.
Thank you very much for changes! The details in the notebook make a world of difference. They will be read!
ipynb/tests/Generic_EAS_Tests.ipynb
Outdated
| "name": "stdout", | ||
| "output_type": "stream", | ||
| "text": [ | ||
| "Maximum estimated system energy: 1725\n", |
There was a problem hiding this comment.
These are no longer printed (based on a commit merged a short while ago).
ipynb/tests/Generic_EAS_Tests.ipynb
Outdated
| "source": [ | ||
| "This plot shows how the power estimation for the observed scheduling pattern varies from the estimated power for an ideal schedule.\n", | ||
| "\n", | ||
| "Where the plot for the observed energy is higher than the observed energy, the system was wasting energy (e.g. a low-intensity task was unnecessarily placed on a high-power CPU). Where the observed plot is *lower* than the ideal plot, this means the system was *too* (e.g. a high-intensity task was placed on a low-power CPU that could not accomadate its compute requirements)." |
There was a problem hiding this comment.
.. is higher than the ideal energy plot..
Although a reword of it might work: "Where the values for the observed energy are higher than the ideal energy values..". The same for the following sentence. It's strange to say "where the plot is higher". Maybe a better wording would be "where the plot line is higher.. ".
There was a problem hiding this comment.
Good spot. Good point about "plot" vs "values" will reword this.
| " print \"test_task_placement failed:\"\n", | ||
| " print e\n", | ||
| "else:\n", | ||
| " print \"test_task_placement passed\"" |
ipynb/tests/Generic_EAS_Tests.ipynb
Outdated
| "import logging\n", | ||
| "from conf import LisaLogging\n", | ||
| "LisaLogging.setup()\n", | ||
| "logging.getLogger().setLevel(logging.WARNING)\n", |
There was a problem hiding this comment.
Isn't this the same as saying: LisaLogging.setup(level=logging.WARNING)?
|
|
||
| class EnergyModelWakeMigration(EnergyModelTest): | ||
| """ | ||
| Test EAS for tasks alternating beetween 10% and 50% |
There was a problem hiding this comment.
"Test EAS for tasks alternating beetween 10% and 50% over 4 seconds". It would be good to specify the duration of the entire workload as for the time axis of the plot to be better understood. The same for the other classes. Some of them include this information but some of them do not.
8224f68 to
c88784f
Compare
|
Updated |
6d03c7c to
869c3f8
Compare
869c3f8 to
d329e36
Compare
d329e36 to
f966f72
Compare
There was a problem hiding this comment.
This looks really nice :) I'm just using it now.
One comment as we just mentioned.
It would be pretty nice if when we get a fail like:
AssertionError: Estimated 984.663979795 bogo-Joules to run workload, expected 741.998222222
there was some indication what the 'best' task placement would have looked like - because an interested engineer is likely to load up the trace file and have a look to see what the placement was. It should be sufficient to just return the first one, as an example.
derkling
left a comment
There was a problem hiding this comment.
Ok, I can finally confirm that going thought the review of this code can brings great health benefits to everybody life! ❤️
Following are some comments on possible updates and small improvements, mostly on the documentation side, and few small little things on the code side.
Here is also a branch with some patches related to comments:
https://github.com/derkling/lisa/tree/energy-model-rfc-v2-review
Overall: great work! 👍 It's pretty ready for merge for me too! ;-)
libs/utils/env.py
Outdated
| platform = Platform(model='MT8173') | ||
| self.__modules = ['bl', 'cpufreq'] | ||
|
|
||
|
|
There was a problem hiding this comment.
nit-pick: we should add a comment for consistency
possible PATCH in the branch for that!
libs/utils/platforms/hikey_energy.py
Outdated
| (1200000, ActiveState(capacity=1024, power=670)) | ||
| ]) | ||
|
|
||
| cpu_idle_states = OrderedDict([('WFI', 15), ('cpu-sleep', 0), ('cluster-sleep', 0)]) |
There was a problem hiding this comment.
let's format one per line for consistency.
libs/utils/platforms/hikey_energy.py
Outdated
| from collections import OrderedDict | ||
|
|
||
| cluster_active_states = OrderedDict([ | ||
| (208000, ActiveState(capacity=178, power=16)), |
There was a problem hiding this comment.
Perhaps we can make a better usage of spaces to have more aligned data... will send a possible reformatting patch.
possible PATCH in the branch for this and other minor comments on EM formatting.
There was a problem hiding this comment.
Sure. I'm a little bit awkward about doing this because for some reason my PEP8 religion forbids it but TBH it is clearer so let's apply it here.
libs/utils/energy_model.py
Outdated
|
|
||
| - A CPU topology, representing the physical (cache/interconnect) topology of | ||
| the CPUs. Each node stores the energy usage of that node's hardware when | ||
| it is in each active or idle state. They also store a compute capacity eat |
libs/utils/energy_model.py
Outdated
| Just like EnergyModelNode except that ``active_states`` and ``idle_states`` | ||
| aren't required. | ||
| """ | ||
| def __init__(self, active_states=None, idle_states=None, *args, **kwargs): |
There was a problem hiding this comment.
Code it's already complex by its own... I would rather prefer to avoid args/kwargs when not really required.
Seems that here it's just to "write less code", but since this is just a subclass of EnergyModelNote, why not having:
def __init__(self, active_states=None, idle_states=None,
cpu=None, children=None, name=None):it requires one less jump when reading the code
There was a problem hiding this comment.
Sure, it seems clearer.
libs/utils/energy_model.py
Outdated
| single-phase periodic RT-App tasks is an example of a | ||
| suitable workload for this model. | ||
| :returns: List of ``util_distrib`` s representing distribution of work | ||
| under optimal task placments see |
There was a problem hiding this comment.
mm.. now I'm thinking about....
🎈 CI FOR SPELLING 🎈
| for task, cpu in placement.items(): | ||
| util[cpu] += capacities[task] | ||
| util = tuple(util) | ||
|
|
There was a problem hiding this comment.
Small optimisations but here we can easily do:
candidates = {}
excluded = []
for cpus in product(self.cpus, repeat=len(tasks)):
 ...
util = tuple(util)
if (any([u > 1024 for u in util]) or
util in excluded):
continue
if not candidates:
...
if not overutilized:
....
else:
excluded.append(util
libs/utils/energy_model.py
Outdated
| tasks = capacities.keys() | ||
|
|
||
| num_candidates = len(self.cpus) ** len(tasks) | ||
| self._log.info( |
There was a problem hiding this comment.
This clobbers the awesome test output... should we better use debug?
Same for the DONE log at the end...
| ('WFI', 5), | ||
| ('cpu-sleep-0', 5), | ||
| ('cluster-sleep-0', 1), | ||
| ]) |
There was a problem hiding this comment.
Thinking now, looking at the tests, could be useful to have a minimal sanity check on the proposed energy model data.
For example, energy in active states should always be monotonically decreasing... frequencies monotonically increasing... and than have some assert on top of these conditions.
There was a problem hiding this comment.
Sounds good.
I did also implement a method to print various observations about the energy model but didn't include it here. It's more for warnings: "this EM is technically valid but doesn't make sense" rather than "this is a totally invalid EM" though.
| [0, 1, 0, 0]]) | ||
|
|
||
| def test_single_big(self): | ||
| placements = em.get_optimal_placements({'task0': 350}) |
There was a problem hiding this comment.
As a really general comment, all the following tests are quite dependant on the hardcoded values of the EM described before, which is fine until someone does not want to slightly change the EM definition to add yet another test.
Would not be more robust to express the tests in terms of EM data?
Thus, for example this 350 should be replaced by the max capacity defined by cluster_big's active states?
But I don't really care if you want to keep the test as it is now... perhaps just add a bold warning in the comment at the beginning to info the malicious user that he can hurt himself by changing only the EM parameters without updating the following tests.
There was a problem hiding this comment.
Yeah, this was a deliberate decision at the beginning of writing it, because I thought if I expressed it in terms of the data I'd probably make the exact same mistakes as I'd made in the code under test. So I wanted to work them out by hand then check them with my model.
However I agree that as the code grew it started to look like less of a smart idea! I'm going to keep it as it is for now, but add a comment. Probably if we need to extend these tests it will be faster to add new ones in terms of the data rather than go back and re-factor the hard coded stuff. Anyway, the risk of breaking things isn't such a sword of Damocles, the beauty of unit tests is that you can tell straight away :D
This class provides a model of systems with: - CPU capacity at different frequencies. - Power usage at different frequency. - Power usage in different idle states. The model is aware of topologically shared resources (clusters), topological dependencies for idle states (power domains) and frequency domains. The intended use case for this model is for testing energy-aware scheduling in a platform-agnostic way. Also provided in this commit are: - Some very simple tests for EnergyModel - Examples of EnergyModel for Juno r0, HiKey and Pixel devices - Changes to TestEnv to allow the provided EnergyModels to be automatically loaded This new interface provides scope for a lot of refactoring (for example the `nrg_model` data could be removed), but that is left for a later date.
- Add a flag `skip_on_smp` that means that the test is not applicable on symmetric systems. Use the `is_heterogeneous` property of EnergyModel to determine this case. - Replace reference to `bl` devlib module with use of the `biggest_cpus` and `littlest_cpus` properties of EnergyModel
This is useful for analysing traces to diagnose failures
Only the "early starter" tasks can be expected to start on a big CPU.
These tests take an EnergyModel describing the platform, and a workload. The workload is examined to find estimated "optimal" task placements, and estimations of those task placements' energy efficiency. The workloads are run on the target, and a trace is collected. This trace is processed to find the task placement that was actually observed. Using the same metrics that were used to decide on "optimal" behaviour, the observed behaviour is evaluated for energy efficiency. If this energy efficiency is significantly worse than the estimated "optimal" value then a failure is raised. Excellent energy efficiency can be achieved by packing all tasks onto the least capable CPU at the lowest clock frequency, but that's not likely to be desirable. Energy efficiency is not the only criterion for good scheduler behaviour, so another test is provided using RT-App's "slack" measurement to assert that required throughput was provided to the workload. Overall, this aims to allow the same tests to be run on any platform once it has been described by an EnergyModel. By making assertions about the estimated *efficiency* of the behaviour, rather than the behaviour itself, the tests are made more flexible: a given workload may be serviceable by two entirely different scheduling strategies where one is only slightly more efficient than the other. In this case, the tests will automatically allow either strategy to pass. The downside to this approach is that when a test fails, it is not always obvious what scheduler behaviour was expected or how the observed behaviour differed from this. It may be possible to later add more user-visible representation of this information to aid failure diagnoses.
This notebook is pretty sparse, it just provides the bare minimum to run the test and do the most basic analysis.
f966f72 to
b9ff4ef
Compare
The new test_energy_model.py uses traces, which results in matplotlib being imported. So add it to the minimal set of pip requirements for Travis.
See the commit messages for the first and fourth commits for more detail on what this PR aims to introduce. In short, this aims to allow automatically running tests for any given synthetic workload and platform.
This looks like an enormous PR, and it is... but a lot of the added lines are
.ipynbnoise or boilerplate in the provided platform descriptions. I've also added pretty verbose docstrings which bumps up the line count a lot.I've siloed myself a bit on this so please highlight wherever I haven't made the high-level intention clear, It's important that someone can understand what this stuff is trying to do without reading 2k lines of inscrutable bjackman Python 😄 . Hopefully docstrings are a good starting point...