{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Explore the data-files in the repository and familiarize with pandas" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a map that assigns the total number of memory operations per element to a given algorithm" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "memops = {'scal':2, 'axpby':3, 'pointwiseDot':6, 'dot':2, 'dx':3, 'dy':3,'dz':3,\n", " 'arakawa':34, 'cg':51, 'ds':83}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's read in one of the csv files (actually they are \"whitespace seperated values\") and compute the bandwidth from the time measurements, vector size and the memory operations" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nNxNyNzsizescalaxpbypointwiseDotdotdxdydzarakawacgds
033434161.331712565.098871815.663472994.85060918.589593486.771832459.585042565.270776586.360973235.847749316.798019
133434322.663424912.8161191292.299033675.54443331.128767701.571854630.998586846.392151694.594862376.351386324.455509
233434645.3268481267.241109702.697863734.29707744.476202626.926478576.321979637.147209726.479659481.203567345.178187
33343412810.653696708.840533758.232401775.60113758.219145719.576914662.569380721.584904808.996295611.891793346.698020
436868165.3268481328.508634700.747380730.52579698.461174637.154830566.768360645.989142723.435624465.815601395.980783
................................................
3154136136128303.038464812.203658845.869714815.569563587.642580811.094609641.785895490.845936849.575165707.081431NaN
316427227216151.519232804.942901842.836421818.300412528.102582815.363290646.935659502.502461848.898992711.141864NaN
317427227232303.038464812.433382847.889305817.590251586.051547811.478320646.693597491.257054850.451732706.570674NaN
318427227264606.076928815.403147846.834918813.728145610.509225802.417886654.138677490.859187850.715055NaNNaN
31942722721281212.153856813.018623844.247626813.565209622.292310786.717832663.653274489.922111NaNNaNNaN
\n", "

320 rows × 15 columns

\n", "
" ], "text/plain": [ " n Nx Ny Nz size scal axpby pointwiseDot \\\n", "0 3 34 34 16 1.331712 565.098871 815.663472 994.850609 \n", "1 3 34 34 32 2.663424 912.816119 1292.299033 675.544433 \n", "2 3 34 34 64 5.326848 1267.241109 702.697863 734.297077 \n", "3 3 34 34 128 10.653696 708.840533 758.232401 775.601137 \n", "4 3 68 68 16 5.326848 1328.508634 700.747380 730.525796 \n", ".. .. ... ... ... ... ... ... ... \n", "315 4 136 136 128 303.038464 812.203658 845.869714 815.569563 \n", "316 4 272 272 16 151.519232 804.942901 842.836421 818.300412 \n", "317 4 272 272 32 303.038464 812.433382 847.889305 817.590251 \n", "318 4 272 272 64 606.076928 815.403147 846.834918 813.728145 \n", "319 4 272 272 128 1212.153856 813.018623 844.247626 813.565209 \n", "\n", " dot dx dy dz arakawa cg \\\n", "0 18.589593 486.771832 459.585042 565.270776 586.360973 235.847749 \n", "1 31.128767 701.571854 630.998586 846.392151 694.594862 376.351386 \n", "2 44.476202 626.926478 576.321979 637.147209 726.479659 481.203567 \n", "3 58.219145 719.576914 662.569380 721.584904 808.996295 611.891793 \n", "4 98.461174 637.154830 566.768360 645.989142 723.435624 465.815601 \n", ".. ... ... ... ... ... ... \n", "315 587.642580 811.094609 641.785895 490.845936 849.575165 707.081431 \n", "316 528.102582 815.363290 646.935659 502.502461 848.898992 711.141864 \n", "317 586.051547 811.478320 646.693597 491.257054 850.451732 706.570674 \n", "318 610.509225 802.417886 654.138677 490.859187 850.715055 NaN \n", "319 622.292310 786.717832 663.653274 489.922111 NaN NaN \n", "\n", " ds \n", "0 316.798019 \n", "1 324.455509 \n", "2 345.178187 \n", "3 346.698020 \n", "4 395.980783 \n", ".. ... \n", "315 NaN \n", "316 NaN \n", "317 NaN \n", "318 NaN \n", "319 NaN \n", "\n", "[320 rows x 15 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#read in csv file\n", "df1 = pd.read_csv('benchmark_v100nv_mpi1.csv', delimiter=' ')\n", "#add size and get rid of non-relevant columns\n", "df1.insert(0,'size', 8*df1['n']*df1['n']*df1['Nx']*df1['Ny']*df1['Nz']/1e6)\n", "for name, mem in memops.items():\n", " df1[name] = df1['size']/1000*mem/df1[name]\n", "dfr = df1[['n','Nx','Ny','Nz','size']+list(memops.keys())]\n", "dfr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to aggregate the results with the same input parameters n, Nx, Ny, Nz" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#compute mean and standard derivation of 'same' groups \n", "dfr=dfr.groupby(['n', 'Nx','Ny','Nz','size']).agg(['mean', 'std'])\n", "dfr=dfr.reset_index(level=['n','Nx','Ny','Nz','size'])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
meanstd
0822.28827526.684597
11306.3517489.930807
2701.6777574.150210
3760.0731961.276385
4704.4371643.597779
5761.2843391.384245
6801.4679791.081480
7824.6589050.864958
8801.9733671.128040
9823.8109000.598200
10836.3671340.906975
11843.6442590.728940
12835.4759230.740020
13844.3255880.237098
14847.2694180.391553
15845.8035470.326091
161258.98702360.974136
17717.6909715.430386
18752.9543712.009784
19796.6935381.301584
20753.3402641.072292
21797.1817660.834996
22820.5996401.053320
23833.9965420.431927
24820.9187151.116901
25835.5730210.803329
26843.0893190.637441
27847.0168330.648820
28843.3088460.433567
29846.9890570.523264
30846.0140080.479606
31844.4429690.509059
\n", "
" ], "text/plain": [ " mean std\n", "0 822.288275 26.684597\n", "1 1306.351748 9.930807\n", "2 701.677757 4.150210\n", "3 760.073196 1.276385\n", "4 704.437164 3.597779\n", "5 761.284339 1.384245\n", "6 801.467979 1.081480\n", "7 824.658905 0.864958\n", "8 801.973367 1.128040\n", "9 823.810900 0.598200\n", "10 836.367134 0.906975\n", "11 843.644259 0.728940\n", "12 835.475923 0.740020\n", "13 844.325588 0.237098\n", "14 847.269418 0.391553\n", "15 845.803547 0.326091\n", "16 1258.987023 60.974136\n", "17 717.690971 5.430386\n", "18 752.954371 2.009784\n", "19 796.693538 1.301584\n", "20 753.340264 1.072292\n", "21 797.181766 0.834996\n", "22 820.599640 1.053320\n", "23 833.996542 0.431927\n", "24 820.918715 1.116901\n", "25 835.573021 0.803329\n", "26 843.089319 0.637441\n", "27 847.016833 0.648820\n", "28 843.308846 0.433567\n", "29 846.989057 0.523264\n", "30 846.014008 0.479606\n", "31 844.442969 0.509059" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfr['axpby']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we compute the efficiency of the operations" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "base_bandwidth = dfr[('axpby','mean')].iloc[15] # base bandwidth at 3 256 256 128\n", "for name, mem in memops.items():\n", " dfr[(name,'eff')]= dfr[(name,'mean')]/base_bandwidth\n", " dfr[(name,'eff_err')]=dfr[(name,'std')]/base_bandwidth\n", "#now display all bandwidth results" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "cols=[(m,'eff') for m in memops.keys()]\n", "efficiency=dfr[['n','Nx','Ny','Nz','size']].join( dfr[cols])\n", "cols=[(m,'eff_err') for m in memops.keys()]\n", "efficiency=efficiency.join( dfr[cols])\n", "#dfr=dfr.sort_values(by='size')\n", "#efficiency=efficiency.set_index('size')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nNxNyNzsizescalaxpbypointwiseDotdotdx...scalaxpbypointwiseDotdotdxdydzarakawacgds
effeffeffeffeff...eff_erreff_erreff_erreff_erreff_erreff_erreff_erreff_erreff_erreff_err
033434161.330.670.971.160.020.59...9.52e-033.15e-022.72e-028.96e-043.68e-023.48e-024.16e-022.44e-027.07e-031.09e-03
1643434162.371.051.490.820.060.76...5.03e-027.21e-024.04e-031.08e-034.10e-023.38e-025.07e-021.96e-021.04e-023.35e-03
133434322.661.091.540.800.040.83...6.88e-031.17e-024.32e-031.34e-042.66e-032.06e-031.52e-021.71e-031.19e-039.24e-04
1743434324.731.630.850.860.100.73...7.63e-026.42e-034.02e-032.10e-031.02e-021.09e-025.82e-038.98e-039.05e-033.55e-03
233434645.331.500.830.870.050.74...1.74e-024.91e-032.85e-031.06e-033.79e-033.93e-033.24e-032.89e-039.53e-038.55e-03
436868165.331.580.830.870.110.76...7.86e-034.25e-034.29e-034.31e-033.37e-033.29e-034.00e-032.34e-036.19e-041.71e-03
1843434649.470.840.890.900.190.83...1.57e-032.38e-032.38e-033.37e-033.36e-034.24e-032.81e-032.60e-031.46e-034.64e-04
2046868169.470.840.890.910.190.83...5.64e-041.27e-032.07e-033.62e-041.72e-031.58e-032.51e-031.18e-033.81e-032.18e-04
33343412810.650.840.900.910.070.85...1.94e-031.51e-033.42e-031.09e-033.23e-035.60e-033.39e-032.34e-032.05e-031.28e-02
5368683210.650.840.900.910.200.85...1.39e-031.64e-032.59e-031.24e-033.05e-033.47e-033.94e-031.09e-031.25e-038.62e-04
194343412818.940.890.940.930.300.89...3.51e-031.54e-031.90e-037.73e-033.46e-032.67e-031.57e-038.30e-043.26e-037.32e-04
21468683218.940.890.940.940.310.90...2.52e-039.87e-041.99e-037.03e-043.43e-031.61e-031.77e-033.85e-047.96e-042.56e-04
831361361621.310.900.950.940.330.91...3.28e-031.33e-032.41e-038.94e-031.05e-032.58e-032.84e-039.49e-042.49e-031.39e-03
6368686421.310.900.950.940.320.91...2.59e-031.28e-031.93e-037.60e-031.47e-032.15e-032.54e-038.76e-043.24e-037.52e-04
22468686437.880.930.970.950.440.93...1.08e-031.25e-032.05e-031.09e-022.81e-033.05e-021.39e-032.58e-036.85e-042.92e-04
2441361361637.880.930.970.950.430.94...2.25e-031.32e-031.05e-038.98e-031.10e-031.14e-031.01e-036.63e-045.93e-04NaN
931361363242.610.930.970.950.470.94...1.12e-037.07e-041.04e-038.62e-038.72e-042.17e-032.05e-036.23e-041.08e-031.14e-03
73686812842.610.930.980.960.430.94...2.20e-031.02e-032.35e-031.25e-021.75e-031.65e-021.17e-031.48e-031.20e-034.71e-04
2541361363275.760.940.990.970.520.95...7.45e-049.50e-048.76e-041.00e-022.58e-032.97e-021.32e-035.42e-036.09e-04NaN
234686812875.760.940.990.960.560.95...2.11e-045.11e-041.13e-037.03e-031.04e-031.10e-031.12e-035.98e-044.75e-041.53e-04
\n", "

20 rows × 25 columns

\n", "
" ], "text/plain": [ " n Nx Ny Nz size scal axpby pointwiseDot dot dx ... \\\n", " eff eff eff eff eff ... \n", "0 3 34 34 16 1.33 0.67 0.97 1.16 0.02 0.59 ... \n", "16 4 34 34 16 2.37 1.05 1.49 0.82 0.06 0.76 ... \n", "1 3 34 34 32 2.66 1.09 1.54 0.80 0.04 0.83 ... \n", "17 4 34 34 32 4.73 1.63 0.85 0.86 0.10 0.73 ... \n", "2 3 34 34 64 5.33 1.50 0.83 0.87 0.05 0.74 ... \n", "4 3 68 68 16 5.33 1.58 0.83 0.87 0.11 0.76 ... \n", "18 4 34 34 64 9.47 0.84 0.89 0.90 0.19 0.83 ... \n", "20 4 68 68 16 9.47 0.84 0.89 0.91 0.19 0.83 ... \n", "3 3 34 34 128 10.65 0.84 0.90 0.91 0.07 0.85 ... \n", "5 3 68 68 32 10.65 0.84 0.90 0.91 0.20 0.85 ... \n", "19 4 34 34 128 18.94 0.89 0.94 0.93 0.30 0.89 ... \n", "21 4 68 68 32 18.94 0.89 0.94 0.94 0.31 0.90 ... \n", "8 3 136 136 16 21.31 0.90 0.95 0.94 0.33 0.91 ... \n", "6 3 68 68 64 21.31 0.90 0.95 0.94 0.32 0.91 ... \n", "22 4 68 68 64 37.88 0.93 0.97 0.95 0.44 0.93 ... \n", "24 4 136 136 16 37.88 0.93 0.97 0.95 0.43 0.94 ... \n", "9 3 136 136 32 42.61 0.93 0.97 0.95 0.47 0.94 ... \n", "7 3 68 68 128 42.61 0.93 0.98 0.96 0.43 0.94 ... \n", "25 4 136 136 32 75.76 0.94 0.99 0.97 0.52 0.95 ... \n", "23 4 68 68 128 75.76 0.94 0.99 0.96 0.56 0.95 ... \n", "\n", " scal axpby pointwiseDot dot dx dy dz \\\n", " eff_err eff_err eff_err eff_err eff_err eff_err eff_err \n", "0 9.52e-03 3.15e-02 2.72e-02 8.96e-04 3.68e-02 3.48e-02 4.16e-02 \n", "16 5.03e-02 7.21e-02 4.04e-03 1.08e-03 4.10e-02 3.38e-02 5.07e-02 \n", "1 6.88e-03 1.17e-02 4.32e-03 1.34e-04 2.66e-03 2.06e-03 1.52e-02 \n", "17 7.63e-02 6.42e-03 4.02e-03 2.10e-03 1.02e-02 1.09e-02 5.82e-03 \n", "2 1.74e-02 4.91e-03 2.85e-03 1.06e-03 3.79e-03 3.93e-03 3.24e-03 \n", "4 7.86e-03 4.25e-03 4.29e-03 4.31e-03 3.37e-03 3.29e-03 4.00e-03 \n", "18 1.57e-03 2.38e-03 2.38e-03 3.37e-03 3.36e-03 4.24e-03 2.81e-03 \n", "20 5.64e-04 1.27e-03 2.07e-03 3.62e-04 1.72e-03 1.58e-03 2.51e-03 \n", "3 1.94e-03 1.51e-03 3.42e-03 1.09e-03 3.23e-03 5.60e-03 3.39e-03 \n", "5 1.39e-03 1.64e-03 2.59e-03 1.24e-03 3.05e-03 3.47e-03 3.94e-03 \n", "19 3.51e-03 1.54e-03 1.90e-03 7.73e-03 3.46e-03 2.67e-03 1.57e-03 \n", "21 2.52e-03 9.87e-04 1.99e-03 7.03e-04 3.43e-03 1.61e-03 1.77e-03 \n", "8 3.28e-03 1.33e-03 2.41e-03 8.94e-03 1.05e-03 2.58e-03 2.84e-03 \n", "6 2.59e-03 1.28e-03 1.93e-03 7.60e-03 1.47e-03 2.15e-03 2.54e-03 \n", "22 1.08e-03 1.25e-03 2.05e-03 1.09e-02 2.81e-03 3.05e-02 1.39e-03 \n", "24 2.25e-03 1.32e-03 1.05e-03 8.98e-03 1.10e-03 1.14e-03 1.01e-03 \n", "9 1.12e-03 7.07e-04 1.04e-03 8.62e-03 8.72e-04 2.17e-03 2.05e-03 \n", "7 2.20e-03 1.02e-03 2.35e-03 1.25e-02 1.75e-03 1.65e-02 1.17e-03 \n", "25 7.45e-04 9.50e-04 8.76e-04 1.00e-02 2.58e-03 2.97e-02 1.32e-03 \n", "23 2.11e-04 5.11e-04 1.13e-03 7.03e-03 1.04e-03 1.10e-03 1.12e-03 \n", "\n", " arakawa cg ds \n", " eff_err eff_err eff_err \n", "0 2.44e-02 7.07e-03 1.09e-03 \n", "16 1.96e-02 1.04e-02 3.35e-03 \n", "1 1.71e-03 1.19e-03 9.24e-04 \n", "17 8.98e-03 9.05e-03 3.55e-03 \n", "2 2.89e-03 9.53e-03 8.55e-03 \n", "4 2.34e-03 6.19e-04 1.71e-03 \n", "18 2.60e-03 1.46e-03 4.64e-04 \n", "20 1.18e-03 3.81e-03 2.18e-04 \n", "3 2.34e-03 2.05e-03 1.28e-02 \n", "5 1.09e-03 1.25e-03 8.62e-04 \n", "19 8.30e-04 3.26e-03 7.32e-04 \n", "21 3.85e-04 7.96e-04 2.56e-04 \n", "8 9.49e-04 2.49e-03 1.39e-03 \n", "6 8.76e-04 3.24e-03 7.52e-04 \n", "22 2.58e-03 6.85e-04 2.92e-04 \n", "24 6.63e-04 5.93e-04 NaN \n", "9 6.23e-04 1.08e-03 1.14e-03 \n", "7 1.48e-03 1.20e-03 4.71e-04 \n", "25 5.42e-03 6.09e-04 NaN \n", "23 5.98e-04 4.75e-04 1.53e-04 \n", "\n", "[20 rows x 25 columns]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.set_option('precision',2)\n", "efficiency=efficiency.sort_values(by='size')\n", "#efficiency.loc[:,'size']\n", "efficiency.iloc[0:20]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us try and make our first plot" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig=plt.figure()\n", "#print(efficiency)\n", "toPlot=efficiency['dy'].join(efficiency['size'])\n", "ax = toPlot.plot(style='ro',x='size',y='eff',yerr='eff_err')\n", "toPlot=efficiency['dx'].join(efficiency['size'])\n", "ax = toPlot.plot(style='ro',x='size',y='eff',yerr='eff_err',ax=ax)\n", "toPlot=efficiency['dot'].join(efficiency['size'])\n", "ax = toPlot.plot(style='ro',x='size',y='eff',yerr='eff_err',ax=ax)\n", "plt.xscale('log')\n", "plt.yscale('log')\n", "ax.legend(['dy','dx','dot'])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax=plt.subplots(1,1,figsize=(8,5),dpi= 80, facecolor='w', edgecolor='k')\n", "plotlist = [('ds','eff')]\n", "stylelist = ['ro','bo','go','yo']\n", "#efficiency.iloc[8:24].plot(x=('size',''),y=[('cg','eff'),('arakawa','eff')],style=['ro','bo'],logx=True)\n", "efficiency[efficiency['n']==3].plot(ax=ax, x=('Nx',''),y=plotlist,style=stylelist[1])\n", "efficiency[efficiency['n']==4].plot(ax=ax, x=('Nx',''),y=plotlist,style=stylelist[2])\n", "#plt.loglog()\n", "plt.title(plotlist[0][0])\n", "plt.xscale('log')\n", "plt.yscale('log')\n", "plt.ylabel('efficiency')\n", "plt.xlabel('Nx')\n", "plt.legend(['n=3','n=4'])\n", "plt.show()\n", "#base_bandwidth" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 2 }