Commit 277eca3b authored by Martin Bauer's avatar Martin Bauer
Browse files

Improvements in tutorials/demos

- typos, more content
- added numba to benchmark comparison
parent 1c3e9880
This source diff could not be displayed because it is too large. You can view the blob instead.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from pystencils.session import * from pystencils.session import *
import timeit import timeit
%load_ext Cython %load_ext Cython
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# Demo: Benchmark numpy, cython, pystencils # Demo: Benchmark numpy, Cython, pystencils
In this benchmark we compare different ways of implementing a simple stencil kernel in Python. In this notebook we compare and benchmark different ways of implementing a simple stencil kernel in Python.
The benchmark kernel computes the average of the four neighbors in 2D and stores in a second array. To prevent out-of-bounds accesses, we skip the cells at the border and compute values only in the range `[1:-1, 1:-1]` Our simple example computes the average of the four neighbors in 2D and stores it in a second array. To prevent out-of-bounds accesses, we skip the cells at the border and compute values only in the range `[1:-1, 1:-1]`
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Implementations ## Implementations
The first implementation is a pure Python implementation: The first implementation is a pure Python implementation:
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def avg_pure_python(input_arr, output_arr): def avg_pure_python(src, dst):
for x in range(1, input_arr.shape[0] - 1): for x in range(1, src.shape[0] - 1):
for y in range(1, input_arr.shape[1] - 1): for y in range(1, src.shape[1] - 1):
output_arr[x, y] = (input_arr[x + 1, y] + input_arr[x - 1, y] + dst[x, y] = (src[x + 1, y] + src[x - 1, y] +
input_arr[x, y + 1] + input_arr[x, y - 1]) / 4 src[x, y + 1] + src[x, y - 1]) / 4
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Obviously, this will be a rather slow version, since the loops are written directly in Python. Obviously, this will be a rather slow version, since the loops are written directly in Python.
Next, we use *numpy* functions to delegate the looping to numpy. The first version uses the `roll` function to shift the array by one element in each direction. This version has to allocate a new array for each accessed neighbor. Next, we use *numpy* functions to delegate the looping to numpy. The first version uses the `roll` function to shift the array by one element in each direction. This version has to allocate a new array for each accessed neighbor.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def avg_numpy_roll(input_arr, output_arr): def avg_numpy_roll(src, dst):
neighbors = [np.roll(input_arr, axis=a, shift=s) for a in (0, 1) for s in (-1, 1)] neighbors = [np.roll(src, axis=a, shift=s) for a in (0, 1) for s in (-1, 1)]
np.divide(sum(neighbors), 4, out=output_arr) np.divide(sum(neighbors), 4, out=dst)
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Using views, we can get rid of the additional copies: Using views, we can get rid of the additional copies:
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def avg_numpy_slice(input_arr, output_arr): def avg_numpy_slice(src, dst):
output_arr[1:-1, 1:-1] = input_arr[2:, 1:-1] + input_arr[:-2, 1:-1] + \ dst[1:-1, 1:-1] = src[2:, 1:-1] + src[:-2, 1:-1] + \
input_arr[1:-1, 2:] + input_arr[1:-1, :-2] src[1:-1, 2:] + src[1:-1, :-2]
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
To further optimize the kernel we switch to Cython, to get a compiled C version. To further optimize the kernel we switch to Cython, to get a compiled C version.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
%%cython %%cython
import cython import cython
@cython.boundscheck(False) @cython.boundscheck(False)
@cython.wraparound(False) @cython.wraparound(False)
def avg_cython(object[double, ndim=2] input_arr, object[double, ndim=2] output_arr): def avg_cython(object[double, ndim=2] src, object[double, ndim=2] dst):
cdef int xs, ys, x, y cdef int xs, ys, x, y
xs, ys = input_arr.shape xs, ys = src.shape
for x in range(1, xs - 1): for x in range(1, xs - 1):
for y in range(1, ys - 1): for y in range(1, ys - 1):
output_arr[x, y] = (input_arr[x + 1, y] + input_arr[x - 1, y] + dst[x, y] = (src[x + 1, y] + src[x - 1, y] +
input_arr[x, y + 1] + input_arr[x, y - 1]) / 4 src[x, y + 1] + src[x, y - 1]) / 4
```
%% Cell type:markdown id: tags:
If available, we also try the numba just-in-time compiler
%% Cell type:code id: tags:
``` python
try:
from numba import jit
@jit(nopython=True)
def avg_numba(src, dst):
dst[1:-1, 1:-1] = src[2:, 1:-1] + src[:-2, 1:-1] + \
src[1:-1, 2:] + src[1:-1, :-2]
except ImportError:
pass
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
And finally we also create a *pystencils* version of the same stencil code: And finally we also create a *pystencils* version of the same stencil code:
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
src, dst = ps.fields("src, dst: [2D]") src, dst = ps.fields("src, dst: [2D]")
update = ps.Assignment(dst[0,0], update = ps.Assignment(dst[0,0],
(src[1, 0] + src[-1, 0] + src[0, 1] + src[0, -1]) / 4) (src[1, 0] + src[-1, 0] + src[0, 1] + src[0, -1]) / 4)
kernel = ps.create_kernel(update).compile() avg_pystencils = ps.create_kernel(update).compile()
def avg_pystencils(input_arr, output_arr):
kernel(src=input_arr, dst=output_arr)
``` ```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
all_implementations = { all_implementations = {
'pure Python': avg_pure_python, 'pure Python': avg_pure_python,
'numpy roll': avg_numpy_roll, 'numpy roll': avg_numpy_roll,
'numpy slice': avg_numpy_slice, 'numpy slice': avg_numpy_slice,
'Cython': None,
'pystencils': avg_pystencils, 'pystencils': avg_pystencils,
} }
if 'avg_cython' in globals(): if 'avg_cython' in globals():
all_implementations['Cython'] = avg_cython all_implementations['Cython'] = avg_cython
else: if 'avg_numba' in globals():
del all_implementations['Cython'] all_implementations['numba'] = avg_numba
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Benchmark functions ## Benchmark functions
We implement a short function to get in- and output arrays of a given shape and to measure the runtime. We implement a short function to get in- and output arrays of a given shape and to measure the runtime.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def get_arrays(shape): def get_arrays(shape):
in_arr = np.random.rand(*shape) in_arr = np.random.rand(*shape)
out_arr = np.empty_like(in_arr) out_arr = np.empty_like(in_arr)
return in_arr, out_arr return in_arr, out_arr
def do_benchmark(func, shape): def do_benchmark(func, shape):
in_arr, out_arr = get_arrays(shape) in_arr, out_arr = get_arrays(shape)
timer = timeit.Timer('f(a, b)', globals={'f': func, 'a': in_arr, 'b': out_arr}) func(src=in_arr, dst=out_arr) # warmup
timer = timeit.Timer('f(src=src, dst=dst)', globals={'f': func, 'src': in_arr, 'dst': out_arr})
calls, time_taken = timer.autorange() calls, time_taken = timer.autorange()
return time_taken / calls return time_taken / calls
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Comparison ## Comparison
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
plot_order = ['pystencils', 'Cython', 'numba', 'numpy slice', 'numpy roll', 'pure Python']
plot_order = [p for p in plot_order if p in all_implementations]
def bar_plot(*shape): def bar_plot(*shape):
names = tuple(all_implementations.keys()) names = plot_order
runtimes = tuple(do_benchmark(all_implementations[name], shape) for name in names) runtimes = tuple(do_benchmark(all_implementations[name], shape) for name in names)
for runtime, name in zip(runtimes, names): for runtime, name in zip(runtimes, names):
assert runtime >= runtimes[names.index('pystencils')], runtimes # assert that pystencils is the fastest
# if some change degrades performance of pystencils, we see this automatically in CI system
assert runtime >= runtimes[names.index('pystencils')], "pystencils is slower than " + name
speedups = tuple(runtime / min(runtimes) for runtime in runtimes) speedups = tuple(runtime / min(runtimes) for runtime in runtimes)
y_pos = np.arange(len(names)) y_pos = np.arange(len(names))
labels = tuple(f"{name} ({round(speedup, 1)} x)" for name, speedup in zip(names, speedups)) labels = tuple(f"{name} ({round(speedup, 1)} x)" for name, speedup in zip(names, speedups))
plt.text(0.5, 0.5, f"Size {shape}", horizontalalignment='center', fontsize=16, plt.text(0.5, 0.5, f"Size {shape}", horizontalalignment='center', fontsize=16,
verticalalignment='center', transform=plt.gca().transAxes) verticalalignment='center', transform=plt.gca().transAxes)
plt.barh(y_pos, runtimes, log=True) plt.barh(y_pos, runtimes, log=True)
plt.yticks(y_pos, labels); plt.yticks(y_pos, labels);
plt.xlabel('Runtime of single iteration') plt.xlabel('Runtime of single iteration')
plt.figure(figsize=(8, 8)) plt.figure(figsize=(8, 8))
plt.subplot(3, 1, 1) plt.subplot(3, 1, 1)
bar_plot(16, 16) bar_plot(32, 32)
plt.subplot(3, 1, 2) plt.subplot(3, 1, 2)
bar_plot(128, 128) bar_plot(128, 128)
plt.subplot(3, 1, 3) plt.subplot(3, 1, 3)
bar_plot(1024, 1024) bar_plot(2048, 2048)
``` ```
%%%% Output: display_data %%%% Output: display_data
![](data:image/png;base64,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dRd9+/albdu2PPzww0yaNIlrr70WgKlTp26td+qppzJr1ixatWpVbbG9/fbbPPDAA9xwww2Fyu+++27Wr1/PaaedVmr71atX853vfIcXXniBESNG8Pzzz3P77bez6667blM8c+bMYfLkybRp04bc3NxS606aNInu3buz55578vjjj/O3v/2N888/nw0bNmytc8QRR3DiiSdy3XXXbVM8ZrWJIqKmY7BqUr9V22g18I6aDsOsQneZtWnThiOPPJLx48cXO7dlyxbq1Km53+suueQSZs+ezauvvlqovCCut956i7Zt2zJmzJiMsz4XXHABzz77LIsWLaJJkybfOJ70n8e1117LLbfcQqa/4z/77DMOOOAABgwYwB13lP53wuTJk+nduzfvvvsue+211zeO0ay6SZoTEaX/hkCWzxBJypG0ODnOlXRXJfV7h6TuyXGepHckzU9enUpo00bSFElLJf1bUk4FxvujpLaVEbvZ9mbVqlXsueeeGc+lJ0NFl8wGDRqEpIyv6dOnb223YMECTj/9dHbbbTcaNmzIsccey4svvlhmXBs3bmTs2LEMGDCg1LhK8sUXX/CHP/yBwYMHV0oyVN5xAZ588klWrlzJpZdeWmbdk046iSZNmpS67Ge2I8jqhChdRORHxM+/aT+SdgeOjoiZacWXRUSn5DW/hKZ/AG6LiEOALsBHFRj2fuDybYvYbPvWpUsXHn30UW677TbeeOONcre77rrrmDVrVqHXscceS6NGjWjTpg0Ac+fO5ZhjjmHVqlU89NBD/PWvf6V58+b07NmTOXPmlNr/7NmzWbNmDd26ddum65ozZw7r169njz32oF+/fjRs2JBddtmFPn368M4772xTn+X10ksvsfvuu7No0SI6duxIvXr12GeffRg+fDibN28uVLdevXp8+9vfLrRfy2xHVOkJUTLrslTSQ5KWJLMeDZNz0yXlJsctJC1LjgdJelrSxGQ25WJJv5Q0T9LsJMkoaH+HpH9JWiypi6Q6kt6U1DKpU0fSW5JaFInru2mzNPMk7VrkfA9JzyTHu0gaI2mRpIWSfpiUnyRplqS5kp6UtEuGH0E/oEJ/c0hqD9SLiOcBIuLziFhXpE49Sa9K6pG8/7WkW5LTLwI9JflBm7bDGTVqFAceeCCXX345Bx10EC1atKB///5MmTKl1HYHHHAARx999NbXSy+9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E7nzzjt5++23Oe6441i+fHmF4/7kk0945JFHqFevHieeeGKJ9aZMmcK0adMYOHAgEydO5L777mPlypV07dqVOXPmFKo7ePBgbrvtNs4//3wmT57MiBEjmDlzJieccAKff/751no33ngjDz30EG+88UaF4zbbHigiajoGqyb1W7WNVgPvqOkwag1vqq5abdq04cgjj2T8+PHFzm3ZsoU6dWru97VLLrmE2bNn8+qrrxYqL4jrrbfeom3btowZM4ZBgwYVqrNmzRp22WUX6tX7+p6VTZs2ceihh7LHHnsUminaa6+96NGjB48//vjWstdee41DDjmEUaNG8dOf/rRCcUcEkgB44YUXOPHEE5k2bRo9evQoVO/jjz/eOstVYO3ateTk5PD973+fP/zhDwCsX7+eXXfdlcsvv5xf/epXW+s+99xzfO973+O5556jV69eW8u7dOlCbm4u9913X4XiNqtKkuZERG5Z9bJ6hkhSjqTFyXGupLsqqd87JHVPjsdJel3SYkmPSNqplHZNJL0v6Z4KjveCpN2+adxm1WnVqlXsueeeGc+lJ0NFl8wGDRqEpIyv9OWhBQsWcPrpp7PbbrvRsGFDjj32WF588cUy49q4cSNjx45lwIABpcZVkmbNmhVKhgDq1atHp06deP/99wuVf/nllzRp0qRYe0glXxWVnuCUpkWLFsXqNm3alHbt2hWKcdOmTWzevLncMf74xz9m3LhxrF+/vsKxm9W0rE6I0kVEfkT8/Jv2I2l34OiIKPg1cBxwMNARaAgMLqX5zcCMbRj2MeDCbWhnVmO6dOnCo48+ym233VahZZbrrruOWbNmFXode+yxNGrUiDZt2gAwd+5cjjnmGFatWsVDDz3EX//6V5o3b07Pnj2LLQkVNXv2bNasWUO3bt2+0fWl+/LLL5k1axaHHHJIofILL7yQsWPH8re//Y1PP/2U//znP1x44YXsvffenHHGGZU2fnmsWrWKxYsXF4px11135ayzzuKuu+5i2rRpfP755yxZsoTLLruMww8/nBNOOKFQH927d+fTTz9l1qxZ1Rq7WWWo9IQomXVZKukhSUskTZHUMDk3XVJuctxC0rLkeJCkpyVNlPSOpIsl/VLSPEmzkySjoP0dkv6VzLh0kVRH0puSWiZ16kh6S1KLInF9V9L85DVP0q5FzveQ9ExyvIukMZIWSVoo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D1EJmfHuAsqG3F/sMFZJfgdsM7OmzTNEZmZmVvKcEJmZmVnJc0JkZmZmJc8JkZnVu3vvvZc+ffqw/vrr06pVKzbddFMOPvhgHnrooaV1Ro0ahSTmzJnTqLGdccYZ/L//9/8qnTv//PPZd999ad++PZIYNWpUte1HjBjBVlttRYsWLdhyyy0ZNmxYpfLPP/+cP/zhD+y66660b9+edu3aseuuu3LvvfcWjOuzzz5jgw02QBKPPfbYcl3bF198wdlnn03fvn1Ze+21kcT48ePz1v3++++57LLLKCsro2XLlvTo0YO77767Up3333+f8847j169etG2bVvWW2899t57byZMmFAwjjfffJPWrVsjidmzZ1cq69+/P6eddtpyXZ9ZQ3JCZGb16pprruGQQw6hc+fO3Hzzzdx///387ne/A+CJJ55YWu8nP/kJEydOpGPHjo0W2xtvvMGNN97I73//+0rnr732WhYuXMiBBx5YsP2IESM46aSTOPTQQ3nooYc4/PDDOfXUU7nhhhuW1vnvf//L9ddfz5577sno0aO544476NKlC4cccgjXXXddtX2fe+65SFqh6/vkk08YOXIkzZs3Z5999ilY94ILLuCiiy7i9NNP58EHH2TnnXfm8MMP54EHHlhaZ/Lkydxxxx3079+fu+66i1GjRtGyZUv69u3LfffdV23fp556Km3bts1bdtFFFzFixAhee+215btIswaiiCh2DNZIWnTsHB2Pu6rYYayS/JTZMptssgk77LAD99xzT5Wy77//ntVWK97/w8444wwmTZrECy+8UOl8RVyzZ8+mc+fO3HLLLQwcOLBSncWLF7PhhhtywAEHcOutty49f/zxxzN27Fjef/99Vl99db766isk0bp160rt9957b15//XX++9//Vonr2WefZd999+Xaa69l0KBBPProo/Tr16/O1xcRS5Oqxx57jH322Ycnn3ySvn37Vqr30UcfsfHGGzNkyBAuvvjiSjHOmzeP6dOnA5lZqzXXXJPmzZc9kLx48WK22WYbfvCDH+SdKbrtttsYPHgw5513HoMHD+b1119niy22qFSnd+/e9OrVi+uvv77O12hWV5ImR0SvmuqV9AyRpDJJL6XjXpKuqad+r5LUJx2PkfSqpJckjZS0ejVt/iRppqRZkq5RHf6rKOkxSevUR+xmK2r+/PlssMEGecuy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) ![](data:image/png;base64,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IVG6GfiNpJeAnPIqZ/Fl0n44MDDt/BPANlT8rrC7gfqS5gIPAwMiYk05bYpMA/aXlD4r1Rd4qOS+I0mzKe5XZEmUkv5GAUMiYhGp6xuZtneqC/B8BWM0MzOzNMq8N7jukDSFVBJRkKEsH7g1IjJudt4EsdwOTIiIaklcJO0P/DYiTiuvbsPcdpHbv8KPaLItyMJhx9Z0CGZmVU7SzIjIL6/e5jCjtElIugJ4FLiyGof9E9CkGsfLAa6qxvHMzMzqlDr/wMmI6J7l/DBgWDXHspjUcl91jfdcdY1lZmZWF22xM0pmZmZm5XGiZGZmZpZFnV96s4rZZ8cWFHjTrpmZWTGeUTIzMzPLwomSmZmZWRZOlMzMzMyycKJkZmZmloU3cxsAcz9ZQd4VT9V0GHWSn2xtZrb58oySmZmZWRZOlMzMzMyycKJkZrXO448/Trdu3fjRj35E48aN2WWXXTjhhBN45pln1tcZM2YMkli4cGG1xjZo0CB+/vOfFzv3u9/9jiOPPJJWrVohiTFjxpRq9+mnn3LllVeSn59PixYtaN26NUcccQTTpk0rVXft2rXceuut7L333jRt2pTc3Fz69OnD66+/vkExf/XVVwwZMoTu3bvTvHlzJDFlypRS9d5++20uuugi9t13X7bZZhtyc3M5/vjjmTNnTqm63377LVdffTXt27encePG7Lzzzpx++uml/nv07t2b888/f4PiNqsNnCiZWa1yxx130KdPH9q1a8eoUaN46qmnGDp0KACTJk1aX+/YY49l+vTp5ObmVlts7733Hvfccw9XX311sfN//etfWbVqFccdd1zWtjNnzuThhx+md+/e/Otf/2LMmDE0atSI7t278+STTxare9VVVzFkyBBOOOEEJkyYwO233857773HYYcdxscff1zpuL/44gvuu+8+ttpqK3r27Jm13rPPPsvkyZPp378/EyZM4O6772bJkiV07tyZmTNnFqt71llncdNNN3H22WczceJErr/+eqZNm8YRRxzB119/vb7eNddcw7333svbb79d6bjNagNFRE3HYLVAw9x2kdv/tpoOo07yZu7KadOmDQceeCDjx48vVbZu3Trq1au53+8GDRrEjBkzePXVV4udL4rr3XffpV27dowePZoBAwYUq7N8+XK22WYbttrqh3toCgsL+clPfsKPf/zjYjNLO+ywA927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jz32WLnjvfbaa9SrVw9JrFlT8nur165dy2233UbHjh1p2rQpeXl5HHvsscyePXu9ru2f//wnp5xyCrvtthuNGzdmt91249xzz2XJkiVl6n777bdcfvnl5OXl0bhxY/bff38mT55cbv8PPfQQkthxxx3LnFuxYgWDBw+mXbt2NG7cmJ122onTTjutzPt79NFHc/7556/X9ZltTIqImo7BaoGGeW0jr//tNR2GrYdNZTP3HXfcwcUXX8wZZ5zBMcccQ9OmTfnggw+YMGEC7dq143e/+x0An332GR988AF77703DRs2rJbYPvjgA/bcc09ee+01unfvDsBll13GlClTOPnkk9lrr734+OOPufHGG1myZAkzZ85kp512Km5/9dVXM3z4cIYMGUK3bt14+OGHuffee3nqqac44ogjyoy3evVqunbtyueff84nn3zC6tWradDg+8/WXHXVVQwbNowrr7ySQw89lM8//5ybbrqJjz/+mFmzZmVMSMrzy1/+km+++Ybjjz+eXXfdlffee4/BgwfTsGFDZs+ezQ9+8IPiuieffDITJkzg1ltvZdddd+Wuu+7imWeeYcqUKXTp0qVM38uWLWOPPfZAEvXr12fRokUlzp900kk8/vjjXH/99XTv3p3//Oc/DB48mPr16zNr1qzisWfMmMG+++7L3LlzadeuXU7XZ7Y+JE2LiO4V1nOiZOBEaVO2qSRKO++8M926dWPcuHFlzq1bt4569WpugvvCCy9k6tSpvPnmm8Vln332Ga1atSpRb+HChbRp04ZrrrmGG264AYAlS5aw0047MWjQIK6//vriuocddhifffZZxlmgm2++mQcffJCjjz6am2++uUyitMMOO3DwwQfz4IMPFpe9/fbb7LnnnowYMYJf//rXOV1fpmuZPHkyBx10EH/9618544wzAJg1axZdunRh1KhRnH766QCsWbOGvfbai/bt2zN+/PgyfZ999tksXLiQvLw8XnzxxRKJ0sqVK2nWrBlXXHEFN998c3H5s88+y09/+lOeffZZDj/88OLyHj160L17d/785z/ndH1m66OyiZKX3jKQlC9pbnLcXdIdVdTv7ZJ6JccFkj6UNDP5KfNPNUldJE2RNE/SbEkn5Djew5LaVkXsZhtq6dKl/PCHP8x4Lj1JKr30NmDAACRl/Jk4cWJxu1mzZnHUUUex9dZb07hxYw488EBeeeWVCuNatWoVo0eP5qSTTipRXjqxANhll11o1aoVH3/8cXHZc889x3fffccpp5xSou4pp5zCnDlzyizVffDBBwwZMoQ///nPbLHFFhlj+u6772jevHmJsq222gpIJZW5ynQt++yzD0CJaxk/fjxbbLEFJ5zw/R81DRo04MQTT+S5555j1apVJfp49dVXGT16NHfddVfGcdesWcPatWsrfS0nnngiY8aMYeXKlTlcndnG5USpAhFRGBEXbWg/krYB9ouI9MX+yyOiS/IzM0OzFcBpEbEX0Be4XdJWOQx7N3DF+kdtVnV69OjB/fffz6233sq7775b6Xa//e1vmTJlSomfAw88sHjfEMD06dM54IADWLp0Kffeey+PPfYY2267Lb1792batGnl9j916lSWLVtGz549K4xl/vz5LFmyhD333LO4bN68eTRs2JDdd9+9RN299toLgLfeeqtE+bnnnstxxx1Hr169so5z3nnnMXr0aJ544gm++uor/v3vf3Peeeex4447lkhiNsSkSZMAylxLmzZtaNKkSZlr+e6773j//feLy1avXs3ZZ5/N5ZdfXubaizRr1oxTTz2VO+64g5dffplvvvmGefPmcfnll9O5c2cOO+ywEvV79erFV199xZQpU6rkGs2qQrUlSskszXxJ9yYzJM9Lapycmyipe3LcUtKC5HiApMclPZnMvlwg6TeSZkiamiQfRe1vl/SapLmSekiqJ+k9Sa2SOvUkvS+pZam4Dkqb1ZkhqVmp8wdLeio5/oGk+yTNSWZ4fpGU90lmfqZLGivpB5R1HPBshvKsIuLdiHgvOV4MLAFK/NNQUgNJb0o6OHl9i6QhyelXgN6S/GBRq3EjRoxg991354orrqB9+/a0bNmSfv368fzzz5fbbrfddmO//fYr/vnXv/7FlClTGDNmDLvuuisAl19+OTvvvDMvvfQSxx13HEcccQTjxo1j11135cYbbyy3/6lTpyKJH/3oR+XWW7NmDeeccw6tWrXizDPPLC5funQpW221FZJK1N9mm22KzxcZPXo0hYWF3HrrreWOdcMNN3DllVfy85//nBYtWrDbbrsxb948Jk6cWNzvhvj6668ZOHAge+65J8ccc0yJa9l6663L1M90LcOGDWPVqlVceeWV5Y513333ceyxx3LooYfSrFkzOnbsyOrVq3nhhRfYcsstS9Tt3Lkz9erVY+rUqRtyeWZVqrpnlNoCdyUzJMuAX1SiTUfgJKAHMARYERF7A1OA09LqNY2IA4DzgFERsQ4YDZycnO8NzIqIz0v1fxlwfkR0AXoC5c35/hZYHhGdIuJHwEtJ4nUN0DsiugKFwG8ytD0QKP1P2yFJwnWbpHJ3rUrqAWwJfJBeHhFrgAHA3ZJ+Qmrm6frk3DrgfaBzlj7PllQoqXDtiuXlDW+2wdq1a8eMGTOYNGkSV199NV26dGHcuHEcfvjh3HTTTZXq48knn+T//u//GDZsWPFf8CtXrmTSpEn88pe/pF69eqxZs4Y1a9YQEfTu3bvCT2wtXryY5s2bl/lLu7QLLriA1157jdGjR5dIJiKiTJJUVJ5u6dKlXHrppdx8881st9125Y519913c9NNN3HNNdfw8ssvM3bsWJo1a0afPn1YvHhxuW0rsmbNGvr168fHH3/Mww8/XGJvVGWv5f3332fIkCHceeedNGrUqNzxrrnmGkaPHs3w4cOZNGkSDzzwAF988QU//elP+d///lei7hZbbEGLFi02+BrNqlJ1zzR8mLbENA3Ir0SblyPia+BrScuBJ5PyOUD6PwEfAoiIyZKaJ0tUo4AngNuBM4D7MvT/KvAHSWOAf0TEokx/UCR6AycWvYiILyUdCXQAXk3abUkqiSstD/gs7fWVwCdJ/XuA/wNuyDSopDzgAaB/kvyUEBHzJD1A6nezf0R8l3Z6CbADZZM0IuKeZGwa5rX1rn7b6OrXr0+vXr2Kl50WL15M3759uf766zn//PMzzmYUmTVrFieddBJnnnkml112WXH50qVLWbt2LTfeeGPW2aPyNot/++23FX667sorr+See+7h/vvvp0+fPiXObbPNNnz55Zdlkowvv/yy+DykEobtt9+e448/nmXLlhWPDbB8+XIaNWpE06ZNWbp0KZdccgmXX355ic3hhx56KPn5+dx6663cdttt5cabzbp16+jfvz8vvvgiEyZMKDOLts022/Cf//ynTLvS13LRRRdx6KGHst9++xVfy3fffUdEsGzZMho2bEjjxo2ZN28eQ4cOZeTIkSVm4fbdd1/atWvHyJEjufjii0uM1bhxY+9RslqluhOl9J2Aa4HGyfEavp/dKv3Pk/Q269Jer6Nk/KX/oo+I+EjSp5IOBfbl+9ml9EpDJU0AjgCmSuoNfJslfmUYR8ALEdEvS5siK0m7toj4b3K4StJ9pGa2yg4oNQcmANdERHnz0Z1IzdJtX6q8EeXPkpnVmB122IFf/epXXHzxxbz33nv06NEjY71PP/2Uo446iv3226/MJ6K22mor6tWrx/nnn89pp52WsX15n6jbdtttixOBTIYMGcLQoUO54447OPXUU8uc32uvvVi1ahUffPBBib06RXuTOnToUPx6zpw5bLvttmX6aNmyJUcffTSPP/447777LqtWrSrebF1km222YbfddmP+/PlZY63IOeecwyOPPMKjjz5aZn9Q0bWMGzeOFStWlNin9NZbb7HlllsWX99bb73FwoULMya2W2+9NRdffDG33347c+bMAShzLW3btmWrrbbKeC1Lly6lZcuWZcrNakpt2buyAOgGvEFqL8/6OAF4WdKPSS2PFa0ljSS1BPdARKwt3UjSbhExB5gjaX9gDyDTxmqA54ELgIFJ262BqcBdknaPiPclNQF2jIjSu1XnA7sDE5O2eRHxX6X+CXoMMDdDbFsC44C/RcTYbBcu6efAtkAv4ClJPSJiWXK6HTAvW1uz6vLRRx+VePZQkbfffhsgrTe+NAAAFTtJREFU6yfivv32W44++miaNm3K2LFjSywVATRt2pSePXsya9YsunbtmvNjBvbYYw9Wr17NokWLyjyf6I477uCaa65hyJAhXHjhhRnb9+3bly233JIxY8YwePDg4vLRo0fTsWNH2rRpA8Dtt99ePPtSpKCggPvvv58XX3yR7bffvsTv4Y033uCoo44qrrt06VLef/99unbtmtP1Fbn00ksZOXIk999/f4l9SemOOuooBg8ezNixY+nfvz+QWqp75JFH6NOnT/HM28MPP1w8G1Zk6NChTJs2jbFjxxb/HtOvJX326t1332XZsmW0bt26RB+ffPIJ3377Le3bt1+vazTbGGpLojQc+LukU4GX1rOPLyW9BjQntcxWZDypJbdMy24AAyUdQmqG6y3gGVLLZJncRCopmpvUvz4i/iFpAPBQ2j6ja4DSidIE4NekEjeAMclGc5FKzM6B1OMIgHMi4lfA8aSSn22TMQAGpH9CLtkjNRQ4LJlBuxP4I9Bf0vbAyrTZK7Ma07FjRw455BCOPfZY2rRpw1dffcXTTz/NiBEjOP7444s/wVbawIEDmT59OgUFBcVJVZEOHTrQvHlz/vCHP9CrVy8OP/xwzjzzTPLy8vj888+ZPn06a9euZejQoVnjKloGfOONN0okSg8//DADBw6kb9++HHrooSU2GDdv3rx4pmi77bbjkksu4ZZbbqFZs2Z07dqVRx55hJdeeoknnniiuE2mhzUWPd7goIMOKk4A8/PzOfLII7n11lupV68eBx10EF988QW/+93vWLVqFeeee26J9occcgj33XcfAwYMyHqNw4YN4w9/+ANnnHEGbdu2LXEtrVq1YrfddiuO8YQTTmDgwIGsXr2aNm3acPfdd/Phhx8yZsyY4jb77bdfmTEKCgpo2LAhBx98cHFZz5496dy5M5deeilffvll8QMnb7rpJlq0aFGcjBV5/fXXAcr9RKBZdasTD5yUNBG4LCIKM5zrDtwWERV/9ncjk/Qv4Mi02Z6NPd4lwFcR8deK6vqBk5uuTeWBkyNGjODpp59m1qxZfPrpp9SvX5927drRr18/Bg4cWLyZuqCggNNPP50PP/yQ/Px8Dj744OKPspf28ssvF//FPH/+fK6//npeeuklli9fTqtWrejatSvnnHNOxqdjp9t3333p0KED9933/b+nBgwYwP3335+x/kEHHVTiGU5r167llltu4d577+WTTz6hffv2XHvttRx3XPkT5Ndddx3XX399mQdOrlixgt///vc89NBDLFy4kObNm9O1a1cGDx5cYnlywoQJHHnkkTzzzDP07ds36zjl/Q779+9PQUFB8euVK1dy9dVX8+CDD7Js2TI6d+7MsGHDSiRAmQwYMKDMAycBvvjiC26++WbGjx/PokWLaNmyJQcccAA33HBDmZmjs846ixkzZlBYWOaPcrMqp83pydzZEiVJg4BzgZMj4l81EVupePYlNcOzfl/YlPt4p5NaclxTUV0nSpuuTSVRqs0KCgq4+OKL+e9//1vmGUK12VVXXcX48eOZM2dOxk+rbUq+/fZb8vLyGD58eImN32YbS2UTpTrxwMmIODjTbFJEDI2IXWpDkgQQEa9XV5KUjHdfZZIks83dqaeeSuvWrTe5r86YNGkSV1111SafJAH85S9/YbvttiuzHGdW02rLHiUzsxpTv359Ro0axfTp02s6lJy8+uqrNR1ClWnYsCEFBQVlNuub1bQ6sfRmG85Lb5suL72ZmeWusktvTt0NgE6tW1Dov3DNzMxKqBN7lMzMzMw2BidK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)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
All runtimes are plotted logarithmically. Next number next to the labels shows how much slower the version is than the fastest one. For small arrays Cython produces faster code than *pystencils*. The larger the arrays, the better pystencils gets. All runtimes are plotted logarithmically. Numbers next to the labels show how much slower the version is than the fastest one.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment