diff options
author | da-woods <dw-git@d-woods.co.uk> | 2023-02-06 17:21:34 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-06 17:21:34 +0000 |
commit | b24286d35aaaf1318cd2bebb10e3e16d72965a5b (patch) | |
tree | bb863a8ad56c0db793e0ade8187dba0dfe34e7b9 /docs/examples/tutorial/parallelization/parallel_sin.py | |
parent | ac6dd0a28b84f333f0203a63ff5fab4da32001b6 (diff) | |
download | cython-b24286d35aaaf1318cd2bebb10e3e16d72965a5b.tar.gz |
[docs] Parallelization tutorial (#5184)
Parallelization tutorial to try to explain prange/parallel in a little more user-friendly way
Diffstat (limited to 'docs/examples/tutorial/parallelization/parallel_sin.py')
-rw-r--r-- | docs/examples/tutorial/parallelization/parallel_sin.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/examples/tutorial/parallelization/parallel_sin.py b/docs/examples/tutorial/parallelization/parallel_sin.py new file mode 100644 index 000000000..be6cbc030 --- /dev/null +++ b/docs/examples/tutorial/parallelization/parallel_sin.py @@ -0,0 +1,16 @@ +from cython.parallel import prange +import cython +from cython.cimports.libc.math import sin + +import numpy as np + +@cython.boundscheck(False) +@cython.wraparound(False) +def do_sine(input: cython.double[:,:]): + output : cython.double[:,:] = np.empty_like(input) + i : cython.Py_ssize_t + j : cython.Py_ssize_t + for i in prange(input.shape[0], nogil=True): + for j in range(input.shape[1]): + output[i, j] = sin(input[i, j]) + return np.asarray(output) |