Skip to content

Commit 4f4a4a0

Browse files
committed
factorizing dataframe access
1 parent dc1561e commit 4f4a4a0

File tree

1 file changed

+168
-162
lines changed

1 file changed

+168
-162
lines changed

‎analysis/.ipynb_checkpoints/pandas_analysis-checkpoint.ipynb

Lines changed: 168 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "code",
5-
"execution_count": 2,
5+
"execution_count": 7,
66
"metadata": {
77
"scrolled": true
88
},
@@ -15,191 +15,197 @@
1515
},
1616
{
1717
"cell_type": "code",
18-
"execution_count": 17,
18+
"execution_count": 8,
1919
"metadata": {
2020
"scrolled": true
2121
},
22-
"outputs": [
23-
{
24-
"name": "stdout",
25-
"output_type": "stream",
26-
"text": [
27-
"Int64Index([36200, 36600, 37000, 37400, 37800, 38200, 38600, 39000, 39400,\n",
28-
" 40200, 40600, 41000, 41400, 41800, 42600, 43000, 43400, 43800,\n",
29-
" 44200, 44600, 45000, 45400, 45800, 46200, 46600, 47000, 47400,\n",
30-
" 47800, 48200, 48600, 49000, 49400, 49800, 50200, 50600, 51000,\n",
31-
" 51400, 51800, 52200, 52600, 53000, 53400, 53800, 54200, 54600,\n",
32-
" 55000, 55400, 55800, 56200, 56600, 57000, 57400, 57800, 58200,\n",
33-
" 58600, 59000, 59400, 59800, 60200, 60600, 61000],\n",
34-
" dtype='int64', name='origin_config')\n"
35-
]
36-
}
37-
],
22+
"outputs": [],
3823
"source": [
3924
"# Results of 100 different .config compilations using kernel_generator.py\n",
25+
"def get_df_tuxml(exp):\n",
26+
" \n",
27+
" df=pd.read_pickle(\"../Exp{}/DF{}_kernel_gen\".format(exp, exp))\n",
28+
" #df=pd.read_pickle('../analysis/results_latest_2')\n",
4029
"\n",
41-
"#df=pd.read_pickle('results')\n",
42-
"df=pd.read_pickle('../Exp2/DF2_kernel_gen')\n",
43-
"#df=pd.read_pickle('results2')\n",
30+
" df=df.sort_values(by=['compiled_kernel_size'])\n",
31+
" df2=df.groupby(['origin_config']).agg({'compilation_time':['mean', 'std'], 'compiled_kernel_size':'first'})\n",
32+
" #print(df2.to_string())\n",
33+
" #print(df2)\n",
4434
"\n",
45-
"df=df.sort_values(by=['compiled_kernel_size'])\n",
46-
"df2=df.groupby(['origin_config']).agg({'compilation_time':['mean', 'std'], 'compiled_kernel_size':'first'})\n",
47-
"#print(df2.to_string())\n",
48-
"#print(df2)\n",
35+
" df3=pd.DataFrame({'origin_config': df2.index,\n",
36+
" 'Time': df2[('compilation_time', 'mean')],\n",
37+
" 'Size': df2[('compiled_kernel_size', 'first')]})\n",
38+
" df3=df3.set_index('origin_config')\n",
39+
" \n",
40+
" return df3"
41+
]
42+
},
43+
{
44+
"cell_type": "code",
45+
"execution_count": 9,
46+
"metadata": {},
47+
"outputs": [],
48+
"source": [
49+
"# Results of the same 100 .config compilations with the \"native\" method this time\n",
50+
"def get_df_native(exp):\n",
51+
" \n",
52+
" with open(\"../Exp{}/sample{}_native.txt\".format(exp, exp), \"r\") as f:\n",
53+
" res=list()\n",
54+
" #Parsing\n",
55+
" for line in f:\n",
56+
" time=float(line.split(\"ELAPSEDTIME \")[1].split(\" vmlinux size :\")[0])\n",
57+
" if(line.split(\" vmlinux size :\")[1]!='\\n'):\n",
58+
" size=int(line.split(\" vmlinux size :\")[1].strip('\\n').strip(' '))\n",
59+
" else:\n",
60+
" size=None\n",
61+
" original=int(line.split(\".config\")[0][-5:])\n",
62+
" res.append([original, time, size])\n",
4963
"\n",
50-
"df3=pd.DataFrame({'origin_config': df2.index,\n",
51-
" 'mean time': df2[('compilation_time', 'mean')],\n",
52-
" 'size': df2[('compiled_kernel_size', 'first')]})\n",
53-
"df3=df3.set_index('origin_config')\n",
54-
"print(df3.index)\n",
64+
" #Dataframe creation\n",
65+
" df1=pd.DataFrame(res, columns = ['origin_config', 'Time', 'Size'])\n",
66+
" #df1.to_pickle('DF2_native')\n",
5567
"\n",
56-
"#print(df5.to_string())\n",
57-
"#df5.plot(x='mean time', y='size')\n"
68+
" df2=df1.groupby(['origin_config']).agg({'Time':['mean', 'std'], 'Size':'mean'})\n",
69+
" df3=pd.DataFrame({'origin_config': df2.index,\n",
70+
" 'Time': df2[('Time', 'mean')],\n",
71+
" 'Size': df2[('Size', 'mean')]})\n",
72+
" df3=df3.set_index('origin_config')\n",
73+
" #print(df3.to_string())\n",
74+
" return df3"
5875
]
5976
},
6077
{
6178
"cell_type": "code",
62-
"execution_count": 20,
79+
"execution_count": 13,
6380
"metadata": {},
6481
"outputs": [
6582
{
6683
"name": "stdout",
6784
"output_type": "stream",
6885
"text": [
69-
" mean time size\n",
70-
"origin_config \n",
71-
"30200 433.2264 106632848.0\n",
72-
"30600 261.6258 231147244.8\n",
73-
"31000 179.5396 28113552.0\n",
74-
"31400 328.9364 53153472.0\n",
75-
"31800 387.8592 152092144.0\n",
76-
"32200 256.8882 28356144.0\n",
77-
"32600 181.9954 37490392.0\n",
78-
"33000 421.4666 71890464.0\n",
79-
"33400 574.8874 35048016.0\n",
80-
"33800 445.9130 77511720.0\n",
81-
"34200 538.4574 462156899.2\n",
82-
"34600 493.0494 40126030.4\n",
83-
"35000 397.1588 88116408.0\n",
84-
"35400 272.0082 43481264.0\n",
85-
"35800 964.6366 135643588.8\n",
86-
"36200 666.6348 169541668.8\n",
87-
"36600 303.7820 52101632.0\n",
88-
"37000 371.6974 88673011.2\n",
89-
"37400 300.6670 82337992.0\n",
90-
"37800 427.4954 39694424.0\n",
91-
"38200 645.1098 114969547.2\n",
92-
"38600 345.0022 42888968.0\n",
93-
"39000 390.6540 119714476.8\n",
94-
"39400 425.8820 33205560.0\n",
95-
"40200 346.3672 154356288.0\n",
96-
"40600 537.4268 42456448.0\n",
97-
"41000 331.4610 44387448.0\n",
98-
"41400 339.8234 70184944.0\n",
99-
"41800 545.0756 227206008.0\n",
100-
"42600 436.9284 108257854.4\n",
101-
"43000 380.8074 58229480.0\n",
102-
"43400 265.7370 34998552.0\n",
103-
"43800 335.1986 126191257.6\n",
104-
"44200 777.5630 79777323.2\n",
105-
"44600 425.9974 63239384.0\n",
106-
"45000 516.9736 94348694.4\n",
107-
"45400 248.0862 99450928.0\n",
108-
"45800 544.6956 109625688.0\n",
109-
"46200 581.5290 49772648.0\n",
110-
"46600 396.2276 71657224.0\n",
111-
"47000 428.8886 31389544.0\n",
112-
"47400 423.2276 65356916.8\n",
113-
"47800 704.9782 57452688.0\n",
114-
"48200 154.0146 25083304.0\n",
115-
"48600 346.3058 50025960.0\n",
116-
"49000 277.1510 29537480.0\n",
117-
"49400 831.3318 38424992.0\n",
118-
"49800 607.8328 47412056.0\n",
119-
"50200 348.5304 59910456.0\n",
120-
"50600 237.5070 35325164.8\n",
121-
"51000 314.0428 61437568.0\n",
122-
"51400 736.7562 198437648.0\n",
123-
"51800 318.1968 42758000.0\n",
124-
"52200 265.9928 51361096.0\n",
125-
"52600 481.1386 407618208.0\n",
126-
"53000 485.0926 59770760.0\n",
127-
"53400 607.0432 85564972.8\n",
128-
"53800 985.0180 95446012.8\n",
129-
"54200 245.8214 43639088.0\n",
130-
"54600 292.2936 128728688.0\n",
131-
"55000 337.6216 44601448.0\n",
132-
"55400 515.2436 50000496.0\n",
133-
"55800 295.4148 74131912.0\n",
134-
"56200 464.4414 38885728.0\n",
135-
"56600 871.9904 277700979.2\n",
136-
"57000 217.6982 30275840.0\n",
137-
"57400 298.3656 51292136.0\n",
138-
"57800 255.1862 211731414.4\n",
139-
"58200 333.5228 51881688.0\n",
140-
"58600 523.1972 66703536.0\n",
141-
"59000 353.9808 94471552.0\n",
142-
"59400 338.5098 133308064.0\n",
143-
"59800 335.8498 99093009.6\n",
144-
"60200 348.8580 31468072.0\n",
145-
"60600 333.6412 38703616.0\n",
146-
"61000 577.9040 56857392.0\n",
147-
"61400 374.2556 358280672.0\n",
148-
"61800 313.8556 60979584.0\n",
149-
"62200 672.9236 52487512.0\n",
150-
"62600 350.7826 50653472.0\n",
151-
"63000 551.1378 142754680.0\n",
152-
"63400 226.0440 33596424.0\n",
153-
"63800 378.5166 92448312.0\n",
154-
"64200 243.6008 44454892.8\n",
155-
"64600 702.9072 429465600.0\n",
156-
"65000 779.3068 38693736.0\n",
157-
"65400 221.5916 47218296.0\n",
158-
"65800 319.5710 39441624.0\n",
159-
"66200 237.1180 34626576.0\n",
160-
"66600 687.2924 41429380.8\n",
161-
"67000 646.7738 30760624.0\n",
162-
"67400 254.7066 59247856.0\n",
163-
"67800 388.0206 66395507.2\n",
164-
"68200 334.2172 112695584.0\n",
165-
"68600 643.9154 123727576.0\n",
166-
"69000 696.9428 39656464.0\n",
167-
"69400 399.8734 161034416.0\n",
168-
"69800 430.2208 84615868.8\n",
169-
"70200 384.6864 78014720.0\n",
170-
"70600 298.6894 59655616.0\n",
171-
"71000 1035.0100 73250832.0\n",
172-
"71400 544.6564 102965112.0\n",
173-
"71800 314.0600 57441224.0\n"
86+
" Time Size\n",
87+
"origin_config \n",
88+
"30000 311.7458 46271960.0\n",
89+
"30400 605.2034 28925824.0\n",
90+
"30800 508.6970 99332603.2\n",
91+
"31200 546.2142 34301440.0\n",
92+
"31600 848.8710 47860944.0\n",
93+
"32000 291.8302 21648808.0\n",
94+
"32400 658.3678 51112968.0\n",
95+
"32800 415.1456 75296792.0\n",
96+
"33200 395.2614 143218864.0\n",
97+
"33600 543.5856 453572944.0\n",
98+
"34000 183.9154 32325552.0\n",
99+
"34400 377.0220 95648024.0\n",
100+
"34800 478.4378 164779448.0\n",
101+
"35200 405.4016 76928256.0\n",
102+
"35600 482.1846 69983536.0\n",
103+
"36000 205.9464 165070820.8\n",
104+
"36400 879.8382 124613648.0\n",
105+
"36800 615.9098 18406392.0\n",
106+
"37200 426.5924 258087540.8\n",
107+
"37600 216.6574 38024816.0\n",
108+
"38000 223.7722 30693249.6\n",
109+
"38400 314.1286 251817496.0\n",
110+
"38800 447.5220 35100440.0\n",
111+
"39200 268.1912 28502160.0\n",
112+
"39600 181.3206 53031504.0\n",
113+
"40000 623.7566 60761792.0\n",
114+
"40400 540.0660 42547152.0\n",
115+
"40800 482.8874 91397112.0\n",
116+
"41200 366.6320 32769448.0\n",
117+
"41600 343.0296 118685360.0\n",
118+
"42000 305.3772 23018328.0\n",
119+
"42800 608.7798 115161968.0\n",
120+
"43200 295.7252 43983616.0\n",
121+
"43600 363.9634 132119304.0\n",
122+
"44000 341.3238 108973545.6\n",
123+
"44400 433.9260 41946424.0\n",
124+
"44800 429.2990 225218724.8\n",
125+
"45200 401.4292 51954928.0\n",
126+
"45600 639.8894 97825680.0\n",
127+
"46000 292.1588 55270680.0\n",
128+
"46400 285.4406 57947328.0\n",
129+
"46800 326.4726 48839856.0\n",
130+
"47200 325.8208 49083264.0\n",
131+
"47600 503.8336 87720640.0\n",
132+
"48000 868.3910 43361408.0\n",
133+
"48400 208.8922 36062283.2\n",
134+
"48800 318.7248 90543152.0\n",
135+
"49200 776.3824 39626784.0\n",
136+
"49600 374.4640 167006275.2\n",
137+
"50000 694.5652 111862288.0\n",
138+
"50400 410.1716 59391896.0\n",
139+
"50800 254.9570 35144176.0\n",
140+
"51200 950.3438 223516928.0\n",
141+
"51600 434.0324 49850592.0\n",
142+
"52000 365.9456 90600368.0\n",
143+
"52400 448.3018 30831552.0\n",
144+
"52800 355.5408 88510240.0\n",
145+
"53200 409.3662 117469648.0\n",
146+
"53600 405.4774 195047027.2\n",
147+
"54000 737.5940 89947360.0\n",
148+
"54400 352.8896 107337664.0\n",
149+
"54800 417.0938 57918544.0\n",
150+
"55200 600.9958 142005438.4\n",
151+
"55600 384.7560 126465160.0\n",
152+
"56000 365.8692 73732712.0\n",
153+
"56400 729.5454 44064480.0\n",
154+
"56800 323.6140 43368400.0\n",
155+
"57200 910.9798 42062792.0\n",
156+
"57600 461.5628 170456384.0\n",
157+
"58000 398.1502 353693728.0\n",
158+
"58400 738.0966 34103888.0\n",
159+
"58800 430.0798 70243688.0\n",
160+
"59200 284.3646 37942248.0\n",
161+
"59600 453.5318 78271112.0\n",
162+
"60000 246.6834 55540576.0\n",
163+
"60400 249.7000 33288408.0\n",
164+
"60800 435.2276 81967584.0\n",
165+
"61200 317.1596 562785940.8\n",
166+
"61600 305.2320 67658792.0\n",
167+
"62000 238.3072 34593096.0\n",
168+
"62400 603.8788 72339233.6\n",
169+
"62800 309.0088 62942368.0\n",
170+
"63200 274.1922 36322792.0\n",
171+
"63600 494.6082 123229835.2\n",
172+
"64000 542.5606 143383364.8\n",
173+
"64400 344.8828 153394272.0\n",
174+
"64800 430.7334 74657668.8\n",
175+
"65200 486.8282 90116296.0\n",
176+
"65600 488.5370 64467856.0\n",
177+
"66000 361.5918 24863640.0\n",
178+
"66400 437.4496 858239977.6\n",
179+
"66800 292.2982 42631368.0\n",
180+
"67600 222.6266 51973264.0\n",
181+
"68000 370.3648 54902680.0\n",
182+
"68400 462.7976 83876120.0\n",
183+
"68800 704.4608 137197776.0\n",
184+
"69200 322.9432 28148104.0\n",
185+
"69600 367.3140 160797766.4\n",
186+
"70000 230.4564 32294336.0\n",
187+
"70400 279.8438 93732408.0\n",
188+
"70800 528.2392 38951561.6\n",
189+
"71200 434.9416 68455904.0\n",
190+
"71600 516.5298 82398448.0\n",
191+
"72000 304.3370 53850528.0\n",
192+
"72400 338.2722 166838110.4\n",
193+
"72800 301.1228 51332577.6\n"
174194
]
175195
}
176196
],
177197
"source": [
178-
"# Results of the same 100 .config compilations with the \"native\" method this time\n",
179-
"\n",
180-
"#with open(\"../Exp2/sample2_native.txt\", \"r\") as f:\n",
181-
"with open(\"../Exp2/sample2_native.txt\", \"r\") as f:\n",
182-
" res=list()\n",
183-
" #Parsing\n",
184-
" for line in f:\n",
185-
" time=float(line.split(\"ELAPSEDTIME \")[1].split(\" vmlinux size :\")[0])\n",
186-
" if(line.split(\" vmlinux size :\")[1]!='\\n'):\n",
187-
" size=int(line.split(\" vmlinux size :\")[1].strip('\\n').strip(' '))\n",
188-
" else:\n",
189-
" size=None\n",
190-
" original=int(line.split(\".config\")[0][-5:])\n",
191-
" res.append([original, time, size])\n",
192-
" \n",
193-
" #Dataframe creation\n",
194-
" df1=pd.DataFrame(res, columns = ['origin_config', 'Time', 'Size'])\n",
195-
" #df1.to_pickle('DF2_native')\n",
198+
"def get_df(exp, nature):\n",
199+
" #get_df(1, tuxml) for 1st exp with tuxml\n",
200+
" #get_df(2, native) for 2nd exp with native\n",
201+
" if(nature==\"tuxml\"):\n",
202+
" df=get_df_tuxml(exp)\n",
203+
" elif(nature==\"native\"):\n",
204+
" df=get_df_native(exp)\n",
205+
" return df\n",
196206
"\n",
197-
" df2=df1.groupby(['origin_config']).agg({'Time':['mean', 'std'], 'Size':'mean'})\n",
198-
" df3=pd.DataFrame({'origin_config': df2.index,\n",
199-
" 'mean time': df2[('Time', 'mean')],\n",
200-
" 'size': df2[('Size', 'mean')]})\n",
201-
" df3=df3.set_index('origin_config')\n",
202-
" print(df3.to_string())"
207+
"df=get_df(1, \"native\")\n",
208+
"print(df.to_string())"
203209
]
204210
},
205211
{

0 commit comments

Comments
 (0)