source: CIVL/doc/omp/simplifier.txt@ 0e052af2

1.23 2.0 main test-branch
Last change on this file since 0e052af2 was 013d113, checked in by Matthew B. Dwyer <matthewbdwyer@…>, 12 years ago

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@1424 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 1.3 KB
Line 
1Key concept is one of independence of code executed in "omp parallel" scopes
2 - "for" can be independent if loop is dependence-free
3 - "single" is implicitly independent, but what about inside/outside?
4 - "critical" is implicitly independent
5 - "barrier" ?
6 - "parallel" is independent if ALL subconstructs are independent
7
8Strategies for computing independence
9 - overapproximate dependence - if there is none then its independent
10 - precise dependence tracking, e.g., symbolic execution
11 - note that this really should be demand-driven and targetted at
12 shared data
13
14Systematic analysis of constructs
15 - "omp for"
16 - sync -> breaks regions into before and after
17 - "omp for nowait"
18 - "omp master", "omp single", "omp atomic"
19 - a single thread executes within block
20 - no sync on entry or exit
21 - atomic has a very restricted form
22 - "omp critical"
23 - one thread at a time in the block
24 - no sync on entry or exit
25 - "omp barrier"
26 - sync -> breaks regions into before and after
27 - "omp sections"
28 - "omp section"
29
30Clauses
31 - "if", "num_threads"
32 - these can be ignored, we check unconditional independence of workshares
33 - privacy-related
34 - must be processed to accurately compute dependences
35
36Deferred until later
37 - "omp taskwait"
38 - "omp taskgroup"
39 - "omp flush"
40 - "omp ordered"
Note: See TracBrowser for help on using the repository browser.