summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/parallelization/parallel_sin.py
diff options
context:
space:
mode:
authorda-woods <dw-git@d-woods.co.uk>2023-02-06 17:21:34 +0000
committerGitHub <noreply@github.com>2023-02-06 17:21:34 +0000
commitb24286d35aaaf1318cd2bebb10e3e16d72965a5b (patch)
treebb863a8ad56c0db793e0ade8187dba0dfe34e7b9 /docs/examples/tutorial/parallelization/parallel_sin.py
parentac6dd0a28b84f333f0203a63ff5fab4da32001b6 (diff)
downloadcython-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.py16
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)