In [1]:
%pylab inline
import numpy as np
import pandas as pd
import cPickle as pickle
import seaborn as sns
import tabulate


Populating the interactive namespace from numpy and matplotlib
/Users/jonas/anaconda/envs/test-environment/lib/python2.7/site-packages/IPython/html.py:14: ShimWarning: The `IPython.html` package has been deprecated. You should import from `notebook` instead. `IPython.html.widgets` has moved to `ipywidgets`.
  "`IPython.html.widgets` has moved to `ipywidgets`.", ShimWarning)

In [2]:
benchdf = pickle.load(open("benchmark.pickle", 'r'))

In [3]:
benchdf['numba chirpz2d'] = benchdf['fft2'] / benchdf['numba chirpz2d']
benchdf['c++ chirpz2d32'] = benchdf['fft2'] / benchdf['c++ chirpz2d32'] 
benchdf['c++ chirpz2d64'] = benchdf['fft2'] / benchdf['c++ chirpz2d64']

In [4]:
a = benchdf.groupby(['fft N', 'N', 'M'], as_index=False).mean()
a


Out[4]:
fft N N M c++ chirpz2d32 c++ chirpz2d64 df fft2 iter numba chirpz2d
0 512 64 32 15.193505 11.635531 0.012272 0.005465 10 0.833513
1 512 64 64 13.074166 10.110759 0.012272 0.005076 10 0.548155
2 512 64 128 3.577827 2.779840 0.012272 0.005511 10 0.328286
3 512 64 256 0.947658 0.565651 0.012272 0.006219 10 0.159684
4 512 128 32 3.913503 3.135731 0.012272 0.005909 10 0.421470
5 512 128 64 4.226866 3.448156 0.012272 0.006751 10 0.378387
6 512 128 128 3.154104 2.288698 0.012272 0.006805 10 0.260806
7 512 128 256 1.077656 0.610211 0.012272 0.006914 10 0.129814
8 512 256 32 1.266526 0.809883 0.012272 0.008723 10 0.226133
9 512 256 64 1.255633 0.771272 0.012272 0.008471 10 0.187333
10 512 256 128 1.224227 0.736975 0.012272 0.008526 10 0.148053
11 512 256 256 1.023808 0.653267 0.012272 0.008211 10 0.094235
12 512 512 32 0.259629 0.148630 0.012272 0.009029 10 0.073815
13 512 512 64 0.242140 0.141864 0.012272 0.008950 10 0.065980
14 512 512 128 0.244705 0.136869 0.012272 0.008764 10 0.055810
15 512 512 256 0.248659 0.146317 0.012272 0.008931 10 0.044410
16 1024 64 32 86.594138 65.588156 0.006136 0.031867 10 4.949149
17 1024 64 64 82.594530 61.492185 0.006136 0.032186 10 3.509616
18 1024 64 128 19.308037 14.620121 0.006136 0.032268 10 1.895342
19 1024 64 256 5.071509 2.872931 0.006136 0.031599 10 0.828232
20 1024 128 32 20.860874 17.725022 0.006136 0.033214 10 2.384087
21 1024 128 64 20.974795 16.363212 0.006136 0.032444 10 1.822458
22 1024 128 128 16.226368 8.631235 0.006136 0.042163 10 1.626353
23 1024 128 256 4.864475 2.699239 0.006136 0.036822 10 0.688489
24 1024 256 32 5.123609 3.601590 0.006136 0.036686 10 0.949257
25 1024 256 64 5.036561 3.293109 0.006136 0.036779 10 0.833956
26 1024 256 128 5.366974 3.032852 0.006136 0.040741 10 0.718272
27 1024 256 256 4.604822 2.788522 0.006136 0.041122 10 0.477032
28 1024 512 32 1.320583 0.747407 0.006136 0.045402 10 0.372130
29 1024 512 64 1.264102 0.740300 0.006136 0.044213 10 0.330538
... ... ... ... ... ... ... ... ... ...
34 2048 64 128 87.902741 69.701678 0.003068 0.145167 10 8.805855
35 2048 64 256 21.855601 12.480026 0.003068 0.141047 10 3.511399
36 2048 128 32 85.031767 72.241178 0.003068 0.145659 10 10.798625
37 2048 128 64 93.471315 74.177038 0.003068 0.153442 10 8.884636
38 2048 128 128 58.315635 21.558904 0.003068 0.173686 10 6.826441
39 2048 128 256 19.676420 10.252969 0.003068 0.163156 10 3.037973
40 2048 256 32 21.302917 12.445150 0.003068 0.159785 10 4.166000
41 2048 256 64 21.524195 12.115340 0.003068 0.156448 10 3.564289
42 2048 256 128 19.382089 9.712524 0.003068 0.185458 10 3.307936
43 2048 256 256 18.674566 9.821901 0.003068 0.195973 10 2.267869
44 2048 512 32 4.891196 2.676273 0.003068 0.168675 10 1.361701
45 2048 512 64 5.012199 2.736137 0.003068 0.166416 10 1.281275
46 2048 512 128 4.883491 2.591215 0.003068 0.192292 10 1.230599
47 2048 512 256 4.947498 2.598585 0.003068 0.186185 10 0.917417
48 4096 64 32 1904.186371 1279.959831 0.001534 0.742005 10 118.954155
49 4096 64 64 1793.884198 1203.365448 0.001534 0.739749 10 84.617936
50 4096 64 128 400.477225 349.249692 0.001534 0.736989 10 45.672791
51 4096 64 256 108.521955 68.314813 0.001534 0.747676 10 19.398434
52 4096 128 32 411.752530 377.839048 0.001534 0.748104 10 55.126083
53 4096 128 64 386.807378 367.162919 0.001534 0.746345 10 43.496354
54 4096 128 128 312.881338 223.717149 0.001534 0.747540 10 30.170698
55 4096 128 256 100.310729 59.121671 0.001534 0.750712 10 14.776692
56 4096 256 32 123.762641 70.464546 0.001534 0.779545 10 20.807241
57 4096 256 64 121.017521 70.493081 0.001534 0.765138 10 17.581689
58 4096 256 128 98.783443 55.803259 0.001534 0.768882 10 13.734073
59 4096 256 256 87.897700 53.594176 0.001534 0.774691 10 9.197360
60 4096 512 32 23.831520 13.105872 0.001534 0.833398 10 6.542430
61 4096 512 64 23.375811 12.748098 0.001534 0.805470 10 5.904791
62 4096 512 128 20.402147 11.592097 0.001534 0.817892 10 5.223441
63 4096 512 256 21.958498 11.950134 0.001534 0.809149 10 3.998038

64 rows × 9 columns


In [5]:
b = a[a.N == a.M]
b = b
del b['df']
del b['fft2']
del b['iter']
#c = b[['FFT points', , '']
c = b.rename(columns={"fft N" : "eq FFT points"})
c = c[['eq FFT points', 'N', 'M', 'numba chirpz2d', 'c++ chirpz2d32', 'c++ chirpz2d64']]

In [6]:
c


Out[6]:
eq FFT points N M numba chirpz2d c++ chirpz2d32 c++ chirpz2d64
1 512 64 64 0.548155 13.074166 10.110759
6 512 128 128 0.260806 3.154104 2.288698
11 512 256 256 0.094235 1.023808 0.653267
17 1024 64 64 3.509616 82.594530 61.492185
22 1024 128 128 1.626353 16.226368 8.631235
27 1024 256 256 0.477032 4.604822 2.788522
33 2048 64 64 15.754395 345.907622 255.567485
38 2048 128 128 6.826441 58.315635 21.558904
43 2048 256 256 2.267869 18.674566 9.821901
49 4096 64 64 84.617936 1793.884198 1203.365448
54 4096 128 128 30.170698 312.881338 223.717149
59 4096 256 256 9.197360 87.897700 53.594176

In [9]:
print tabulate.tabulate(c, headers='keys', showindex=False,tablefmt="pipe")


|   eq FFT points |   N |   M |   numba chirpz2d |   c++ chirpz2d32 |   c++ chirpz2d64 |
|----------------:|----:|----:|-----------------:|-----------------:|-----------------:|
|             512 |  64 |  64 |        0.548155  |         13.0742  |        10.1108   |
|             512 | 128 | 128 |        0.260806  |          3.1541  |         2.2887   |
|             512 | 256 | 256 |        0.0942346 |          1.02381 |         0.653267 |
|            1024 |  64 |  64 |        3.50962   |         82.5945  |        61.4922   |
|            1024 | 128 | 128 |        1.62635   |         16.2264  |         8.63124  |
|            1024 | 256 | 256 |        0.477032  |          4.60482 |         2.78852  |
|            2048 |  64 |  64 |       15.7544    |        345.908   |       255.567    |
|            2048 | 128 | 128 |        6.82644   |         58.3156  |        21.5589   |
|            2048 | 256 | 256 |        2.26787   |         18.6746  |         9.8219   |
|            4096 |  64 |  64 |       84.6179    |       1793.88    |      1203.37     |
|            4096 | 128 | 128 |       30.1707    |        312.881   |       223.717    |
|            4096 | 256 | 256 |        9.19736   |         87.8977  |        53.5942   |