jeremiedbb / Nested_OpenMP

Tests of nested parallelism with different OpenMP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

We expect 3 threads for outer parallelism and 2 threads for inner

outer ICC / inner GCC

outer_tid outer_tnum outer_get_max_threads inner_tid inner_tnum inner_get_num_threads inner_get_max_threads
[18076] [0] [3] [18076] [0] [1] [3]
[18078] [1] [3] [18078] [0] [1] [3]
[18079] [2] [3] [18079] [0] [1] [3]

3 threads for outer as expected (3 unique values for outer_num)
Only 1 for inner. Seems that gnu openmp is aware it's in nested parallelism which is disable by default.

outer GCC / inner ICC

outer_tid outer_tnum outer_get_max_threads inner_tid inner_tnum inner_get_num_threads inner_get_max_threads
[18158] [0] [3] [18158] [0] [2] [2]
[18158] [0] [3] [18162] [1] [2] [2]
[18160] [2] [3] [18160] [0] [4] [4]
[18160] [2] [3] [18164] [2] [4] [4]
[18160] [2] [3] [18163] [1] [4] [4]
[18160] [2] [3] [18165] [3] [4] [4]
[18159] [1] [3] [18168] [3] [4] [4]
[18159] [1] [3] [18167] [2] [4] [4]
[18159] [1] [3] [18166] [1] [4] [4]
[18159] [1] [3] [18159] [0] [4] [4]

3 threads for outer as expected.
In master thread of outer: 2 inner threads as expected
In other threads: as many as possible (4 is the value returned by omp_get_max_threads before entering the parallel region)

About

Tests of nested parallelism with different OpenMP


Languages

Language:C 82.5%Language:Shell 17.5%