{ "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", "Nx | \n", "Ny | \n", "Nz | \n", "size | \n", "scal | \n", "axpby | \n", "pointwiseDot | \n", "dot | \n", "dx | \n", "dy | \n", "dz | \n", "arakawa | \n", "cg | \n", "ds | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "3 | \n", "34 | \n", "34 | \n", "16 | \n", "1.331712 | \n", "565.098871 | \n", "815.663472 | \n", "994.850609 | \n", "18.589593 | \n", "486.771832 | \n", "459.585042 | \n", "565.270776 | \n", "586.360973 | \n", "235.847749 | \n", "316.798019 | \n", "
1 | \n", "3 | \n", "34 | \n", "34 | \n", "32 | \n", "2.663424 | \n", "912.816119 | \n", "1292.299033 | \n", "675.544433 | \n", "31.128767 | \n", "701.571854 | \n", "630.998586 | \n", "846.392151 | \n", "694.594862 | \n", "376.351386 | \n", "324.455509 | \n", "
2 | \n", "3 | \n", "34 | \n", "34 | \n", "64 | \n", "5.326848 | \n", "1267.241109 | \n", "702.697863 | \n", "734.297077 | \n", "44.476202 | \n", "626.926478 | \n", "576.321979 | \n", "637.147209 | \n", "726.479659 | \n", "481.203567 | \n", "345.178187 | \n", "
3 | \n", "3 | \n", "34 | \n", "34 | \n", "128 | \n", "10.653696 | \n", "708.840533 | \n", "758.232401 | \n", "775.601137 | \n", "58.219145 | \n", "719.576914 | \n", "662.569380 | \n", "721.584904 | \n", "808.996295 | \n", "611.891793 | \n", "346.698020 | \n", "
4 | \n", "3 | \n", "68 | \n", "68 | \n", "16 | \n", "5.326848 | \n", "1328.508634 | \n", "700.747380 | \n", "730.525796 | \n", "98.461174 | \n", "637.154830 | \n", "566.768360 | \n", "645.989142 | \n", "723.435624 | \n", "465.815601 | \n", "395.980783 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
315 | \n", "4 | \n", "136 | \n", "136 | \n", "128 | \n", "303.038464 | \n", "812.203658 | \n", "845.869714 | \n", "815.569563 | \n", "587.642580 | \n", "811.094609 | \n", "641.785895 | \n", "490.845936 | \n", "849.575165 | \n", "707.081431 | \n", "NaN | \n", "
316 | \n", "4 | \n", "272 | \n", "272 | \n", "16 | \n", "151.519232 | \n", "804.942901 | \n", "842.836421 | \n", "818.300412 | \n", "528.102582 | \n", "815.363290 | \n", "646.935659 | \n", "502.502461 | \n", "848.898992 | \n", "711.141864 | \n", "NaN | \n", "
317 | \n", "4 | \n", "272 | \n", "272 | \n", "32 | \n", "303.038464 | \n", "812.433382 | \n", "847.889305 | \n", "817.590251 | \n", "586.051547 | \n", "811.478320 | \n", "646.693597 | \n", "491.257054 | \n", "850.451732 | \n", "706.570674 | \n", "NaN | \n", "
318 | \n", "4 | \n", "272 | \n", "272 | \n", "64 | \n", "606.076928 | \n", "815.403147 | \n", "846.834918 | \n", "813.728145 | \n", "610.509225 | \n", "802.417886 | \n", "654.138677 | \n", "490.859187 | \n", "850.715055 | \n", "NaN | \n", "NaN | \n", "
319 | \n", "4 | \n", "272 | \n", "272 | \n", "128 | \n", "1212.153856 | \n", "813.018623 | \n", "844.247626 | \n", "813.565209 | \n", "622.292310 | \n", "786.717832 | \n", "663.653274 | \n", "489.922111 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
320 rows × 15 columns
\n", "\n", " | mean | \n", "std | \n", "
---|---|---|
0 | \n", "822.288275 | \n", "26.684597 | \n", "
1 | \n", "1306.351748 | \n", "9.930807 | \n", "
2 | \n", "701.677757 | \n", "4.150210 | \n", "
3 | \n", "760.073196 | \n", "1.276385 | \n", "
4 | \n", "704.437164 | \n", "3.597779 | \n", "
5 | \n", "761.284339 | \n", "1.384245 | \n", "
6 | \n", "801.467979 | \n", "1.081480 | \n", "
7 | \n", "824.658905 | \n", "0.864958 | \n", "
8 | \n", "801.973367 | \n", "1.128040 | \n", "
9 | \n", "823.810900 | \n", "0.598200 | \n", "
10 | \n", "836.367134 | \n", "0.906975 | \n", "
11 | \n", "843.644259 | \n", "0.728940 | \n", "
12 | \n", "835.475923 | \n", "0.740020 | \n", "
13 | \n", "844.325588 | \n", "0.237098 | \n", "
14 | \n", "847.269418 | \n", "0.391553 | \n", "
15 | \n", "845.803547 | \n", "0.326091 | \n", "
16 | \n", "1258.987023 | \n", "60.974136 | \n", "
17 | \n", "717.690971 | \n", "5.430386 | \n", "
18 | \n", "752.954371 | \n", "2.009784 | \n", "
19 | \n", "796.693538 | \n", "1.301584 | \n", "
20 | \n", "753.340264 | \n", "1.072292 | \n", "
21 | \n", "797.181766 | \n", "0.834996 | \n", "
22 | \n", "820.599640 | \n", "1.053320 | \n", "
23 | \n", "833.996542 | \n", "0.431927 | \n", "
24 | \n", "820.918715 | \n", "1.116901 | \n", "
25 | \n", "835.573021 | \n", "0.803329 | \n", "
26 | \n", "843.089319 | \n", "0.637441 | \n", "
27 | \n", "847.016833 | \n", "0.648820 | \n", "
28 | \n", "843.308846 | \n", "0.433567 | \n", "
29 | \n", "846.989057 | \n", "0.523264 | \n", "
30 | \n", "846.014008 | \n", "0.479606 | \n", "
31 | \n", "844.442969 | \n", "0.509059 | \n", "
\n", " | n | \n", "Nx | \n", "Ny | \n", "Nz | \n", "size | \n", "scal | \n", "axpby | \n", "pointwiseDot | \n", "dot | \n", "dx | \n", "... | \n", "scal | \n", "axpby | \n", "pointwiseDot | \n", "dot | \n", "dx | \n", "dy | \n", "dz | \n", "arakawa | \n", "cg | \n", "ds | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | eff | \n", "eff | \n", "eff | \n", "eff | \n", "eff | \n", "... | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "eff_err | \n", "
0 | \n", "3 | \n", "34 | \n", "34 | \n", "16 | \n", "1.33 | \n", "0.67 | \n", "0.97 | \n", "1.16 | \n", "0.02 | \n", "0.59 | \n", "... | \n", "9.52e-03 | \n", "3.15e-02 | \n", "2.72e-02 | \n", "8.96e-04 | \n", "3.68e-02 | \n", "3.48e-02 | \n", "4.16e-02 | \n", "2.44e-02 | \n", "7.07e-03 | \n", "1.09e-03 | \n", "
16 | \n", "4 | \n", "34 | \n", "34 | \n", "16 | \n", "2.37 | \n", "1.05 | \n", "1.49 | \n", "0.82 | \n", "0.06 | \n", "0.76 | \n", "... | \n", "5.03e-02 | \n", "7.21e-02 | \n", "4.04e-03 | \n", "1.08e-03 | \n", "4.10e-02 | \n", "3.38e-02 | \n", "5.07e-02 | \n", "1.96e-02 | \n", "1.04e-02 | \n", "3.35e-03 | \n", "
1 | \n", "3 | \n", "34 | \n", "34 | \n", "32 | \n", "2.66 | \n", "1.09 | \n", "1.54 | \n", "0.80 | \n", "0.04 | \n", "0.83 | \n", "... | \n", "6.88e-03 | \n", "1.17e-02 | \n", "4.32e-03 | \n", "1.34e-04 | \n", "2.66e-03 | \n", "2.06e-03 | \n", "1.52e-02 | \n", "1.71e-03 | \n", "1.19e-03 | \n", "9.24e-04 | \n", "
17 | \n", "4 | \n", "34 | \n", "34 | \n", "32 | \n", "4.73 | \n", "1.63 | \n", "0.85 | \n", "0.86 | \n", "0.10 | \n", "0.73 | \n", "... | \n", "7.63e-02 | \n", "6.42e-03 | \n", "4.02e-03 | \n", "2.10e-03 | \n", "1.02e-02 | \n", "1.09e-02 | \n", "5.82e-03 | \n", "8.98e-03 | \n", "9.05e-03 | \n", "3.55e-03 | \n", "
2 | \n", "3 | \n", "34 | \n", "34 | \n", "64 | \n", "5.33 | \n", "1.50 | \n", "0.83 | \n", "0.87 | \n", "0.05 | \n", "0.74 | \n", "... | \n", "1.74e-02 | \n", "4.91e-03 | \n", "2.85e-03 | \n", "1.06e-03 | \n", "3.79e-03 | \n", "3.93e-03 | \n", "3.24e-03 | \n", "2.89e-03 | \n", "9.53e-03 | \n", "8.55e-03 | \n", "
4 | \n", "3 | \n", "68 | \n", "68 | \n", "16 | \n", "5.33 | \n", "1.58 | \n", "0.83 | \n", "0.87 | \n", "0.11 | \n", "0.76 | \n", "... | \n", "7.86e-03 | \n", "4.25e-03 | \n", "4.29e-03 | \n", "4.31e-03 | \n", "3.37e-03 | \n", "3.29e-03 | \n", "4.00e-03 | \n", "2.34e-03 | \n", "6.19e-04 | \n", "1.71e-03 | \n", "
18 | \n", "4 | \n", "34 | \n", "34 | \n", "64 | \n", "9.47 | \n", "0.84 | \n", "0.89 | \n", "0.90 | \n", "0.19 | \n", "0.83 | \n", "... | \n", "1.57e-03 | \n", "2.38e-03 | \n", "2.38e-03 | \n", "3.37e-03 | \n", "3.36e-03 | \n", "4.24e-03 | \n", "2.81e-03 | \n", "2.60e-03 | \n", "1.46e-03 | \n", "4.64e-04 | \n", "
20 | \n", "4 | \n", "68 | \n", "68 | \n", "16 | \n", "9.47 | \n", "0.84 | \n", "0.89 | \n", "0.91 | \n", "0.19 | \n", "0.83 | \n", "... | \n", "5.64e-04 | \n", "1.27e-03 | \n", "2.07e-03 | \n", "3.62e-04 | \n", "1.72e-03 | \n", "1.58e-03 | \n", "2.51e-03 | \n", "1.18e-03 | \n", "3.81e-03 | \n", "2.18e-04 | \n", "
3 | \n", "3 | \n", "34 | \n", "34 | \n", "128 | \n", "10.65 | \n", "0.84 | \n", "0.90 | \n", "0.91 | \n", "0.07 | \n", "0.85 | \n", "... | \n", "1.94e-03 | \n", "1.51e-03 | \n", "3.42e-03 | \n", "1.09e-03 | \n", "3.23e-03 | \n", "5.60e-03 | \n", "3.39e-03 | \n", "2.34e-03 | \n", "2.05e-03 | \n", "1.28e-02 | \n", "
5 | \n", "3 | \n", "68 | \n", "68 | \n", "32 | \n", "10.65 | \n", "0.84 | \n", "0.90 | \n", "0.91 | \n", "0.20 | \n", "0.85 | \n", "... | \n", "1.39e-03 | \n", "1.64e-03 | \n", "2.59e-03 | \n", "1.24e-03 | \n", "3.05e-03 | \n", "3.47e-03 | \n", "3.94e-03 | \n", "1.09e-03 | \n", "1.25e-03 | \n", "8.62e-04 | \n", "
19 | \n", "4 | \n", "34 | \n", "34 | \n", "128 | \n", "18.94 | \n", "0.89 | \n", "0.94 | \n", "0.93 | \n", "0.30 | \n", "0.89 | \n", "... | \n", "3.51e-03 | \n", "1.54e-03 | \n", "1.90e-03 | \n", "7.73e-03 | \n", "3.46e-03 | \n", "2.67e-03 | \n", "1.57e-03 | \n", "8.30e-04 | \n", "3.26e-03 | \n", "7.32e-04 | \n", "
21 | \n", "4 | \n", "68 | \n", "68 | \n", "32 | \n", "18.94 | \n", "0.89 | \n", "0.94 | \n", "0.94 | \n", "0.31 | \n", "0.90 | \n", "... | \n", "2.52e-03 | \n", "9.87e-04 | \n", "1.99e-03 | \n", "7.03e-04 | \n", "3.43e-03 | \n", "1.61e-03 | \n", "1.77e-03 | \n", "3.85e-04 | \n", "7.96e-04 | \n", "2.56e-04 | \n", "
8 | \n", "3 | \n", "136 | \n", "136 | \n", "16 | \n", "21.31 | \n", "0.90 | \n", "0.95 | \n", "0.94 | \n", "0.33 | \n", "0.91 | \n", "... | \n", "3.28e-03 | \n", "1.33e-03 | \n", "2.41e-03 | \n", "8.94e-03 | \n", "1.05e-03 | \n", "2.58e-03 | \n", "2.84e-03 | \n", "9.49e-04 | \n", "2.49e-03 | \n", "1.39e-03 | \n", "
6 | \n", "3 | \n", "68 | \n", "68 | \n", "64 | \n", "21.31 | \n", "0.90 | \n", "0.95 | \n", "0.94 | \n", "0.32 | \n", "0.91 | \n", "... | \n", "2.59e-03 | \n", "1.28e-03 | \n", "1.93e-03 | \n", "7.60e-03 | \n", "1.47e-03 | \n", "2.15e-03 | \n", "2.54e-03 | \n", "8.76e-04 | \n", "3.24e-03 | \n", "7.52e-04 | \n", "
22 | \n", "4 | \n", "68 | \n", "68 | \n", "64 | \n", "37.88 | \n", "0.93 | \n", "0.97 | \n", "0.95 | \n", "0.44 | \n", "0.93 | \n", "... | \n", "1.08e-03 | \n", "1.25e-03 | \n", "2.05e-03 | \n", "1.09e-02 | \n", "2.81e-03 | \n", "3.05e-02 | \n", "1.39e-03 | \n", "2.58e-03 | \n", "6.85e-04 | \n", "2.92e-04 | \n", "
24 | \n", "4 | \n", "136 | \n", "136 | \n", "16 | \n", "37.88 | \n", "0.93 | \n", "0.97 | \n", "0.95 | \n", "0.43 | \n", "0.94 | \n", "... | \n", "2.25e-03 | \n", "1.32e-03 | \n", "1.05e-03 | \n", "8.98e-03 | \n", "1.10e-03 | \n", "1.14e-03 | \n", "1.01e-03 | \n", "6.63e-04 | \n", "5.93e-04 | \n", "NaN | \n", "
9 | \n", "3 | \n", "136 | \n", "136 | \n", "32 | \n", "42.61 | \n", "0.93 | \n", "0.97 | \n", "0.95 | \n", "0.47 | \n", "0.94 | \n", "... | \n", "1.12e-03 | \n", "7.07e-04 | \n", "1.04e-03 | \n", "8.62e-03 | \n", "8.72e-04 | \n", "2.17e-03 | \n", "2.05e-03 | \n", "6.23e-04 | \n", "1.08e-03 | \n", "1.14e-03 | \n", "
7 | \n", "3 | \n", "68 | \n", "68 | \n", "128 | \n", "42.61 | \n", "0.93 | \n", "0.98 | \n", "0.96 | \n", "0.43 | \n", "0.94 | \n", "... | \n", "2.20e-03 | \n", "1.02e-03 | \n", "2.35e-03 | \n", "1.25e-02 | \n", "1.75e-03 | \n", "1.65e-02 | \n", "1.17e-03 | \n", "1.48e-03 | \n", "1.20e-03 | \n", "4.71e-04 | \n", "
25 | \n", "4 | \n", "136 | \n", "136 | \n", "32 | \n", "75.76 | \n", "0.94 | \n", "0.99 | \n", "0.97 | \n", "0.52 | \n", "0.95 | \n", "... | \n", "7.45e-04 | \n", "9.50e-04 | \n", "8.76e-04 | \n", "1.00e-02 | \n", "2.58e-03 | \n", "2.97e-02 | \n", "1.32e-03 | \n", "5.42e-03 | \n", "6.09e-04 | \n", "NaN | \n", "
23 | \n", "4 | \n", "68 | \n", "68 | \n", "128 | \n", "75.76 | \n", "0.94 | \n", "0.99 | \n", "0.96 | \n", "0.56 | \n", "0.95 | \n", "... | \n", "2.11e-04 | \n", "5.11e-04 | \n", "1.13e-03 | \n", "7.03e-03 | \n", "1.04e-03 | \n", "1.10e-03 | \n", "1.12e-03 | \n", "5.98e-04 | \n", "4.75e-04 | \n", "1.53e-04 | \n", "
20 rows × 25 columns
\n", "