xref: /llvm-project/openmp/libompd/test/openmp_examples/ompd_parallel.c (revision 2f1c942f806e7a616f81bdb61898ae1e6f8a8263)
1 // RUN: %gdb-compile 2>&1 | tee %t.compile
2 // RUN: %gdb-test -x %S/ompd_parallel.cmd %t 2>&1 | tee %t.out | FileCheck %s
3 
4 // REQUIRES: determinism
5 
6 #include <omp.h>
7 #include <stdio.h>
8 
main()9 int main() {
10   omp_set_max_active_levels(3);
11   omp_set_num_threads(7);
12 #pragma omp parallel
13   {
14     omp_set_num_threads(5);
15 #pragma omp parallel
16     {
17       omp_set_num_threads(3);
18 #pragma omp parallel
19       { printf("In nested level:3, team size = %d.\n", omp_get_num_threads()); }
20 
21       printf("In nested level:2, team size = %d.\n", omp_get_num_threads());
22     }
23     printf("In nested level:1, team size = %d.\n", omp_get_num_threads());
24   }
25 
26   return 0;
27 }
28 
29 // CHECK: Loaded OMPD lib successfully!
30 // CHECK: Nesting Level 3: Team Size: 3
31 // CHECK: ompd_parallel.c{{[ ]*}}:16
32 // CHECK: Nesting Level 2: Team Size: 5
33 // CHECK: ompd_parallel.c{{[ ]*}}:13
34 // CHECK: Nesting Level 1: Team Size: 7
35 // CHECK: ompd_parallel.c{{[ ]*}}:10
36 
37 // CHECK: Nesting Level 2: Team Size: 5
38 // CHECK: ompd_parallel.c{{[ ]*}}:13
39 // CHECK: Nesting Level 1: Team Size: 7
40 // CHECK: ompd_parallel.c{{[ ]*}}:10
41 
42 // CHECK: Nesting Level 1: Team Size: 7
43 // CHECK: ompd_parallel.c{{[ ]*}}:10
44 
45 // CHECK-NOT: Python Exception
46 // CHECK-NOT: The program is not being run.
47 // CHECK-NOT: No such file or directory
48