Auto-Parallelizing Option
1
Auto-Parallelizing Option
2 Outline
3
Auto-Parallelizing Option
4 SGI
MIPSpro compilers
5 Syntax
6 Syntax
7 Link
8
Interprocedural Analysis (IPA)
9 Loop Nest
Optimization (LNO)
10 Sample
APO listing
11 Sample
source listing
12 Running
Your Program
13 Running
Your Program
14
Incomplete Optimization
15 Failing
to Parallelize Safe Loops
16 Function
Calls
17
Problematic Array Subscripts
18
Conditionally Assigned Temporary Nonlocal Variables
19
Unanalyzable Pointer Usage (C/C++)
20 Parallelizing
the Wrong Loop
21 Inner
Loops
22 Small
Trip Counts
23 Poor Data
Locality
24 Poor Data
Locality
25 Incurring
Unnecessary Parallelization Overhead
26 Unknown
Trip Counts
27 Nested
Parallelism
28
Strategies for Assisting APO
29 Compiler
Directives for Automatic Parallelization
30 Compiler
Directives
31 C*$* NO
CONCURRENTIZE
32 C*$*
ASSERT DO (CONCURRENT)
33 C*$*
ASSERT DO (SERIAL)
34 C*$*
ASSERT CONCURRENT CALL
35 C*$*
ASSERT PERMUTATION
36 C*$*
ASSERT DO PREFER
37 C*$*
ASSERT DO PREFER
38 Example
1: AddOpac.f
39 Example
1: AddOpac.f
40 Example
2:BiDiag.f
41 Example
2:BiDiag.f
42 Example
3: ContRate.f
43 Exercises