|
Data Dependence Analysis
- Check whether program can be restructured
- GCD test
- Banerjee’s Test
- I-test
- Omega test
- Architectural specific tests
Program Restructurer
- Loop restructuring
- Statement reordering
- Loop (distribution) fission
- Breaking dependence cycle: Node splitting
- Loop interchanging
- Loop skewing
- Loop jamming
- Handling while loops
Technique to Improve Detection of Parallelism: Interactive Compilation
- Back-end to user
- Compiler directives
- Force Parallel
- No Parallel
- Max-trips count
- Task identification
- No side effects
- Incremental Analysis
Scalar Processors
- Machines use standard CPUs
- Main memory is in hierarchy: RAM and cache
- Most programs exhibit locality of reference
- Same items are referred very close in time (temporal)
- Nearby locations are referred frequently (spatial)
- Programmers do not have control over memory
- Programmers can take advantage of cache
|