diff options
Diffstat (limited to 'docs/examples/tutorial/parallelization/manual_work.py')
-rw-r--r-- | docs/examples/tutorial/parallelization/manual_work.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/docs/examples/tutorial/parallelization/manual_work.py b/docs/examples/tutorial/parallelization/manual_work.py new file mode 100644 index 000000000..d6b0167d9 --- /dev/null +++ b/docs/examples/tutorial/parallelization/manual_work.py @@ -0,0 +1,24 @@ +# tag: openmp + +from cython.parallel import parallel +from cython.cimports.openmp import omp_get_thread_num +import cython + +@cython.cfunc +@cython.nogil +def long_running_task1() -> cython.void: + pass + +@cython.cfunc +@cython.nogil +def long_running_task2() -> cython.void: + pass + +def do_two_tasks(): + thread_num: cython.int + with cython.nogil, parallel(num_threads=2): + thread_num = omp_get_thread_num() + if thread_num == 0: + long_running_task1() + elif thread_num == 1: + long_running_task2() |